Google maps 从google directions获得的概览路径显示在静态地图的错误位置

Google maps 从google directions获得的概览路径显示在静态地图的错误位置,google-maps,google-maps-api-3,google-static-maps,google-directions-api,Google Maps,Google Maps Api 3,Google Static Maps,Google Directions Api,我从google directions获取两点之间的概览多段线,然后将其作为“enc:”参数传递给静态地图 渲染图像后,多段线将遵循道路的实际形状,但它会移动数百米或一公里 标记设置为与传递给方向API的坐标相同,但标记显示正确 我还尝试将静态贴图测地线参数设置为“true”,但遇到了相同的问题 见: 或 我正在通过电子邮件发送最终的静态地图URL。我刚刚找到了答案 问题是: 从Google Directions JSON响应中获得的“overview_polyline”包含许多特殊字符,这

我从google directions获取两点之间的概览多段线,然后将其作为“enc:”参数传递给静态地图

渲染图像后,多段线将遵循道路的实际形状,但它会移动数百米或一公里

标记设置为与传递给方向API的坐标相同,但标记显示正确

我还尝试将静态贴图测地线参数设置为“true”,但遇到了相同的问题

见:

我正在通过电子邮件发送最终的静态地图URL。

我刚刚找到了答案

问题是:

从Google Directions JSON响应中获得的“overview_polyline”包含许多特殊字符,这些字符在URL通过邮件服务器时被错误转义

我将静态映射url与PHP中的“overview_path”连接在一起,因此为了确保所有字符都转义良好,我使用了rawurlencode函数():


现在,线条与道路完美匹配。

方向服务中的原始多边形线条是什么样子的(或者您为获得它而提出的请求是什么)?@geocodezip@geocodezip适用于两种情况:案例1:案例2:这样您就可以得到一个json,我取“概述”\u折线->“点”字符串
$revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')');
$wellEscapedString = strtr( rawurlencode($original_string), $revert );