#grid #reference #national #string #precision #osi #osgb

gridish

处理英国和爱尔兰国家网格字符串的库

3个版本

0.1.2 2024年4月22日
0.1.1 2024年4月3日
0.1.0 2024年3月27日

#664 in 算法

MIT/Apache

55KB
1K SLoC

gridish

CI Pipeline Status

一个用于处理英国和爱尔兰国家网格(OSGB和OSI)的Rust库。它提供了一个简单的接口,用于将有效的网格参考转换为东西坐标/南北坐标,反之亦然,以及重新计算网格参考到新精度的功能。此crate故意不提供在不同坐标系之间转换的功能,因为已经存在几个库可以执行此操作;它仅存在于填补东西坐标/南北坐标和它们的文本表示之间的差距。

示例

use gridish::{OSGB, Precision};
use geo_types::coord;

// Parse grid reference from a 6 figure (100m) string.
let gridref_100m: OSGB = "SO892437".parse().unwrap();

// Recalculate grid reference to 2 figures (10km)
let gridref_10k = gridref_100m.recalculate(Precision::_10Km);
assert_eq!("SO84".to_string(), gridref_10k.to_string());

// Get the eastings / northings at the gridref's south west corner
assert_eq!(gridref.sw(), coord! {x: 389_200, y: 243_700 }.into());

功能

  • serde:提供使用serde进行(反)序列化的支持。
  • tetrads:提供对DINTY格式下的四元组网格参考的支持,这在生物调查中常用。
use gridish::{OSGB, Precision};
use geo_types::coord;

// Parse grid reference from a 6 figure (100m) string.
let gridref_2k: OSGB = "SN24R".parse().unwrap();

// Get the eastings / northings at the gridref's south west corner
assert_eq!(gridref_2k.sw(), coord! {x: 226_000, y: 242_000 }.into());

许可证

以下任一许可证下许可:

任选其一。

贡献

除非你明确声明,否则根据Apache-2.0许可证定义的任何有意提交以包含在你的作品中的贡献,将按照上述方式双许可,不附加任何额外的条款或条件。

依赖

~0.7–1MB
~18K SLoC