Skip to main content

jismeshcode/
lib.rs

1#![cfg_attr(not(feature = "std"), no_std)]
2#![doc = include_str!("../README.md")]
3
4//! # jismeshcode
5//!
6//! 日本標準地域メッシュコード(JIS X 0410)を扱うRustライブラリ
7//!
8//! ## 主な機能
9//!
10//! - 座標とメッシュコードの相互変換
11//! - メッシュの階層操作(親子関係)
12//! - 隣接メッシュの計算
13//! - 空間範囲検索
14//!
15//! ## クイックスタート
16//!
17//! ```rust
18//! use jismeshcode::prelude::*;
19//!
20//! // 座標からメッシュコードへ変換
21//! let coord = Coordinate::new(35.6812, 139.7671).unwrap();
22//! let mesh = coord_to_mesh(coord, MeshLevel::Third).unwrap();
23//! println!("メッシュコード: {}", mesh);
24//!
25//! // メッシュの中心座標を取得
26//! let center = mesh_to_center(mesh);
27//! println!("中心座標: ({}, {})", center.lat(), center.lon());
28//! ```
29
30/// 座標とメッシュコードの変換機能
31pub mod convert;
32/// エラー型の定義
33pub mod error;
34/// メッシュの操作機能(階層、隣接など)
35pub mod operations;
36/// 空間検索機能
37pub mod spatial;
38/// 基本的な型定義
39pub mod types;
40/// ユーティリティ機能
41pub mod utils;
42
43/// よく使う型と関数を一括でインポートするためのprelude
44pub mod prelude;
45
46pub use convert::{coord_to_mesh, mesh_to_bounds, mesh_to_center};
47pub use error::{CoordinateError, MeshCodeError, Result};
48pub use operations::{bounds, center, children, contains, neighbor, neighbors, parent, to_level};
49pub use spatial::{
50    mesh_codes_in_bbox, mesh_codes_in_radius, mesh_codes_in_radius_from_mesh, MeshCodeIterator,
51    MeshCodeRadiusIterator,
52};
53pub use types::{BoundingBox, Coordinate, Direction, MeshCode, MeshLevel};
54pub use utils::distance::haversine_distance;