Google Directions API编码折线

时间:2014-03-14 01:08:11

标签: google-maps encoding google-direction

我正在尝试绘制与Google地图街道网络相匹配的路线。

我知道如何从Google Maps Directions API序列化JSON结果。

我现在正在考虑从各个路由步骤对多段线进行编码。

我在stackoverflow上找到了一些解码器算法,但首先测试了谷歌自己的Interactive Polyline Encoder。我希望编码的行与谷歌地图匹配,但它没有。

屏幕截图显示左侧交互式折线编码器中编码段的结果以及右侧Google地图路径的结果。

enter image description here

编码折线是" uxhuBxrc | QPA @?@?B?B @@ B @ D @ HDFD @ B @ H @ JBB @ DBFJ"

Google的交互式折线编码器中的算法是否有可能错误?

是否有人测试Jeffrey Sambells algorithm并知道结果是否与Google的交互式解码器的结果相符?

干杯, 丹尼斯

编辑:问题在于返回的折线段而不是编码算法。即使是Google在Directions API页面上的示例响应中提供的示例细分也非常不适合基础道路几何体。

enter image description here

4 个答案:

答案 0 :(得分:2)

我也很难过。我设法提出的唯一解决方案(尽管效果很好)是使用Google的快速路径API。将不准确的折线的坐标发送到API,它将返回更正后的坐标。

希望这有帮助。

答案 1 :(得分:0)

几个月后,我终于得到了Google的回复。不幸的是,他们无法理解问题和帮助。我再次看了解码算法,我现在能够自己回答这个问题。

算法将坐标舍入为1e5。

Google Polyline algorithm

因此,无法编码适合底层道路网络渲染的折线,该折线在最高缩放级别具有更高的精度。

此图像显示最大位置精度,坐标舍入为1e5。

enter image description here

答案 2 :(得分:0)

enter image description here

您也可以从

下载示例项目

https://github.com/xomena-so/so47492459

不要忘记用你的API替换API密钥。

我希望这有帮助!

答案 3 :(得分:0)

您可以尝试以下操作:http://zevross.com/blog/2014/09/23/convert-google-directions-to-geojson-points-or-polylines/?subscribe=success#blog_subscription-3

您可以尝试执行以下步骤(如果您使用的是Node.js):

npm install polyline

然后:

var polyline = require('polyline');

// returns an array of lat, lon pairs
polyline.decode('_p~iF~ps|U_ulLnnqC_mqNvxq`@')

其中的字符串“ _p〜iF〜ps | U_ulLnnqC_mqNvxq` @”是从Google Maps API的响应中提取的:根>路线> Overview_polyline>点

enter image description here

地图中的结果点可以这样显示:

enter image description here

相关问题