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 中使用
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