4 个版本

0.1.3 2021 年 1 月 24 日
0.1.2 2020 年 4 月 24 日
0.1.1 2020 年 4 月 23 日
0.1.0 2020 年 4 月 23 日

#1335 in 解析器实现

每月 43 次下载
2 crates 中使用

MIT 许可证

53KB
1K SLoC

latlon

从字符串中解析地理坐标。

支持广泛的常用格式。请参阅单元测试以获取完整参考。

如果您需要的格式缺失,请提交合并请求(包括单元测试)。

使用方法

// parse a coord
let coord : geo::Point = latlon::parse("N 50°5.30385', E 14°26.94732'").unwrap();

// individual lat/lng parsing
let lat : f64 = latlon::parse_lat("N 50°5.30385'").unwrap();
let lng : f64 = latlon::parse_lng("E 14°26.94732'").unwrap();

支持格式

支持格式的示例

  • 40°26' 46"N 79° 58' 56"W
  • N40°26' 46"W 79° 58' 56"
  • 40°26.767'N79°58.933'W
  • 40° 26' 46" 79° 58' 56", 40° 26' 46", 79° 58' 56", ...
  • N40°26.767'W79°58.933'
  • 40° 26.767' 79° 58.933', 40° 26.767', 79° 58.933', ...
  • N40.446° W79.982°
  • 40.446° N79.982° W
  • 40.446° 79.982°, 40.446,79.982, 等。

解析规则

  • 所有格式都支持负度数(由负号前导)。纬度正值表示北,经度正值表示东。
  • 空白字符是可选的,并且被忽略,除了会使格式变得不可解析的格式。
  • 度、分和秒的符号可以省略。
  • 逗号(,)可以用作可选的十进制分隔符。
  • 支持 Unicode 引号(例如 )用于分钟和秒。
  • 两个坐标可以用逗号(,)、分号(;)、空白字符或什么都不用,如果不产生歧义。

依赖

~2.7–4MB
~68K SLoC