用于用户提供坐标的通用JavaScript解析器
Generic JavaScript parser for user supplied coordinates
是否有一个JavaScript库可以帮助解析用户提供的各种格式的坐标?
我有一个地图网站,有一个搜索框,可以用来搜索地名,但通过统计数据,我看到很多人试图直接使用各种格式的坐标,就像他们能够在谷歌地图上做的那样。
我看到的经纬度的典型变化如下:
-43 02 42.845 S 172 38 33.790 E
n 19°49'2.30e 41°51'29.20
41°46'57.90"S
172° 1'20.39"E 43 02 42.845 S
42.897S 172.720E
42.31.303 172.23.379
19.817306°, 41.858111°
有很多变化,这只是一个样本。还有用户尝试各种基于NZTM和NZMG的新西兰格式。
理想情况下,我想找到一个库,有人可能已经开始与一些基本的纬度和经度,然后扩展功能,以支持其他格式,我看到通过。
有谁知道外面有什么吗?
要从原始文本输入中解析数字坐标,有由otto-dev创建的npm package coordinate-parser。对于WGS84经纬度对及其分钟和十进制表示,它感觉很健壮。
const CoordinateParser = require('coordinate-parser')
const text = `60 40' 31.35" N, 23 50' 55.75" E`
const pos = new CoordinateParser(text)
const lat = pos.getLatitude() // 60.675374
const lng = pos.getLongitude() // 23.848819
虽然适合WGS84,但坐标解析器不处理UTM坐标,例如NZTM或ETRS89 TM35FIN上的坐标,例如N 6730758, E 327874
。解析器将大数视为毫秒或密集格式化的DDMMSS。XXX而不是米,从而产生无效的结果。
对于UTM坐标,有UTM -coordinate-parser。它可以识别常见的东西对,如6730758 N 327874 E
和x-y对x:327874 y:6730758
。免责声明:我是这个包的作者。
const utmp = require('utm-coordinate-parser')
const text = 'N 6730758; W -327874'
const pos = utmp.parse(text)
const x = pos.x // 327874
const y = pos.y // 6730758
我实际上刚刚发布了我的JavaScript库Magellan,它处理纬度/经度坐标的格式和验证,就像上面列出的那样。看看它是不是你想要的。
链接:https://dbarbalato.github.io/magellan/
作为一个简短的说明,它不会处理你上面列出的所有格式,但如果有足够的兴趣,我愿意扩展功能。
一般格式为:
var m;
if( m = input.match(/format regex here/)) { /* do stuff with m */ }
else if( m = input.match(/another format/)) { /* do stuff with m */ }
...
else {throw new Error("Format not recognised!");}
这将取决于您构建您需要的正则表达式,但它们应该太难了,因为它们是相对简单的格式
- 从 DOM 中删除/删除 Javascript 用户定义的数组
- Ajax/Javascript用户状态更新
- javascript用户输入最多的20个数字
- Javascript 用户 ID 代码
- PHP/JavaScript 用户信息收集
- hta文件中的javascript用户配置文件相对路径
- 使用Javascript用户输入修改CSS
- 如何将Javascript用户的用户数据返回到Django
- 跨域javascript用户验证
- JavaScript用户脚本本身不运行
- HTML Imagemap与PHP和Javascript /用户可以选择颜色
- 为非JavaScript用户嵌入Youtube视频
- JavaScript用户输入URL不持有我的域
- 表单动作改变javascript用户选项选择
- Asp.net: c#/javascript用户在提交之前需要确认
- 非javascript用户的非javascript弹出窗口
- JavaScript -用户的安全覆盖变量
- 我如何保护我的PHP cookie从JavaScript用户的页面
- Javascript用户代理按浏览器版本号重定向
- Javascript用户的输入验证