javascript - 用于用户提供坐标的通用 JavaScript 解析器

标签 javascript parsing geocoding latitude-longitude

有没有JavaScript库可以帮助解析用户提供的各种格式的坐标?

我有一个带有搜索框的 map 站点,可用于搜索地名,但通过查看统计数据我发现很多人试图直接使用各种格式的坐标,就像他们能够做到的那样在谷歌地图上。

我看到的纬度和经度的典型变化是:

-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的各种新西兰格式。

理想情况下,我想找到一个库,有人可能已经开始使用一些基本的纬度和经度,然后扩展功能以支持我看到的其他格式。

有人知道那里有什么吗?

最佳答案

要从原始文本输入中解析数字坐标,有 npm 包 coordinate-parser通过 otto-dev . 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 - 用于用户提供坐标的通用 JavaScript 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15285644/

相关文章:

javascript - Youtube Media API无法正确加载。

c - 如何在C中解析一行整数

google-maps - google maps api,提供的API key 无效

opengl - 我想使用 openStreetMap 数据在 openGL 中渲染道路,我应该从哪里开始?

mapbox - 如何使用 Mapbox 的 Geocoder API 搜索靠近用户当前位置的地址?

javascript - 如何将类属性应用于 HTML 字符串(未呈现在文档上)

JavaScript ES6 : import destructuring not working

java - 哪个 rdfa 解析器支持当前使用的 rdfa 属性?

java - 用 Java 设计智能自定义类 csv 解析器

javascript - jQgrid:多列行标题