polyline 编码器 / 解码器

把坐标编码为 Google polyline 字符串,或把它解码回 lat/lng 和 GeoJSON,就在你的浏览器中。你的路线留在你的设备上。

你粘贴的坐标和 polyline 字符串在你的浏览器本地完成编码和解码,绝不会被上传;你输入的任何内容都不会被存储在服务器上。

想在地图上看到这条路线?打开坐标地图查看器。

关于 polyline 编码器

这款 polyline 编码器和解码器完全在你的浏览器中处理 Google 的 Encoded Polyline Algorithm Format。在编码模式下,每行粘贴一对「lat, lng」——或一个 GeoJSON LineString——即可得到 Directions API 为一条路线返回的那种紧凑编码字符串。在解码模式下,粘贴一个编码后的 polyline,即可读回坐标列表,以及一个可直接投入地图使用的 GeoJSON LineString。一个精度开关在 5(Google Maps 默认)和 6(OSRM、Valhalla 和 Mapbox 使用)之间切换,而这正是解码后的路线落错位置的常见原因。polyline 把整条路径压进一个简短的 ASCII 字符串,因此当某个 API 给你一条编码路线、而你需要纯坐标(或反之)时,它非常实用。一切都在你的设备上计算,你粘贴的路线绝不会被上传。

功能特性

如何使用 polyline 编码器

  1. 选择「编码」以把坐标变成 polyline,或选择「解码」以展开一个 polyline。
  2. 挑选精度 5(Google)或 6(OSRM/Valhalla)以匹配你的数据源。
  3. 粘贴坐标(每行一对「lat, lng」或一个 GeoJSON LineString),或一个编码后的 polyline。
  4. 在结果中读取编码后的字符串,或坐标列表和 GeoJSON LineString。
  5. 为你的地图、API 请求或数据文件复制任意输出。

示例

输入

38.5, -120.2
40.7, -120.95
43.252, -126.453

输出

_p~iF~ps|U_ulLnnqC_mqNvxq`@

来自 Google 文档的标准三点路线,以精度 5 编码。

常见错误与故障排除

常见问题

什么是 Google encoded polyline?
它是一条经纬度点路径的紧凑 ASCII 编码,由 Google 的 Encoded Polyline Algorithm Format 定义。Directions 和 Roads API 以这种方式返回路线,因为该字符串远比一整份坐标列表短,并且能解码回精确的各个点。
我的 polyline 该用精度 5 还是 6?
为 Google Maps 和 Google Directions API 使用 5,为 OSRM、Valhalla、GraphHopper 和 Mapbox 使用 6。精度 6 多保留一位小数,因此以 6 编码却以 5 解码的字符串会落错约十倍——请始终与创建该 polyline 的工具相匹配。
我如何把一个编码后的 polyline 转成 GeoJSON?
切换到「解码」,粘贴 polyline,工具便会在纯坐标列表旁输出一个 GeoJSON LineString Feature。该 GeoJSON 已使用 [longitude, latitude] 顺序,因此你可以把它直接粘贴进 geojson.io、Leaflet 或某个制图库。
我能把一个 GeoJSON LineString 编码成 polyline 吗?
可以。在编码模式下,你可以粘贴一个 GeoJSON LineString,或包裹它的一个 Feature 或 FeatureCollection,工具会读取其坐标并返回编码后的字符串。如果你没有 GeoJSON,也可以粘贴纯「lat, lng」行。
我在编码或解码时,路线数据会被发送到任何地方吗?
不会。编码和解码完全在你的浏览器中、使用标准算法运行,因此你粘贴的坐标和 polyline 都在你的设备上处理,绝不会被上传到服务器。

相关工具

全部 ArrayKit 工具