从Google方向获取的概述路径显示在静态地图上的错误位置

时间:2017-03-21 22:24:57

标签: google-maps google-maps-api-3 google-static-maps google-maps-direction-api

我从两点之间的Google方向获取概述折线,然后将其传递为" enc:"参数到静态地图。

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

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

我还尝试将静态地图geodesic参数设置为" true"但有同样的问题。

请参阅:

https://maps.googleapis.com/maps/api/staticmap?markers=color:green%7Clabel:A%7C21.0453333,-86.78226990000002&markers=color:red%7Clabel:B%7C21.038007,-86.869206&size=640x320&path=weight:6%7Ccolor:blue%7Cenc:%7Dkm_CpytpOcJTqBCyDOiAECDCF?H@FjCL%7CBFjEIL[lEQpBCv@?xAHdBN%7C@LBZBf@nBt@%7CDrBzBnAbBz@vAd@nBX~AFpACxACAJtAd@j@%5Ch@h@%5Cr@R%7C@Dv@EdAMf@s@BoCxFaErIoC%7CFOZk@t@]t@]dA[BGv@Ap@HjEHERrJHzCHz@TnA%5CfAn@rAtHjPpAtCv@xBjBnFZp@Vh@b@n@hBnBfB~B%7CLvQ~AxB@d@z@l@v@b@vAd@nCz@Ct@zBr@tAv@t@r@j@z@h@vAPv@F@DhACAKA%7B@nDQf@cJ~_@wKle@kEReDvNiLvf@[pAm@zAu@~Aa@lAIb@QxAQzBMhAm@lCoAnFcAjEGr@C%5EBdAB%5EN~@Vt@Zp@%5Ef@%7C@z@hEpD%7C@z@d@n@%5Ev@Pt@LlAAx@GlA@JC%5ECZKrBUvCUpAa@lAcAhBg@ASXOJEFsAdCe@z@aCpEoBfD%7BCjFw@zAiEnIyFtK%7BOzY%7DFzKGVoCdFYAIb@@j@FT%5Eh@zD~BzDCXD%5CFRCVUh@aAxAwCvBgDJQbC%7DEd@UVIh@IX@%5EOHBZEbAYPSLWn@kA&key=AIzaSyDdFa0XLRwG7iR24xU8849VSpV-iBWY6U0

https://maps.googleapis.com/maps/api/staticmap?markers=color:green%7Clabel:A%7C21.038007,-86.869206&markers=color:red%7Clabel:B%7C21.0880741,-86.77087180000001&size=640x320&path=weight:6%7Ccolor:blue%7Cenc:o~k_CpseqOh@iA@@IWg@@YOWCODMNaBtCYJc@F%7BANe@Ag@E%7BBwAyCoBg@O_@o@EMCk@FWRk@nDyG~Sm@r@mABcDbBaDzKsSFY@o@z@aBp@uA%5EwALaAXeFHeAFGFw@AsBIw@Ss@[s@iA%7BAqE%7DDk@c@a@g@i@%7B@Qk@YuAGaA@u@JeAjCcL%7C@sD~@_Cb@aAJYPo@PaAPcCP%7DAP%7B@tGaYfJ%7B@b@cBz@mCxBkGZkAnAiJPeAlAuFxCqMbBoGp@%7DCh@iCd@%7BAd@_AlAkBj@cANg@Hi@d@iDr@_GHuBAw@I%7D@U_Ag@oAu@cA%7D@y@yAq@uA[cJq@oAQkAa@wAkAkTm%5C_CuDcAcBm@iAcB%7DDkG_NsBmEc@cA[kASgAIy@IcCUqIQuJDeBJy@Ny@V%7B@v@iBfA_ChDiHrFoLBaDd@gANy@AaAS%7B@OYa@g@qA%7BAc@[w@Yu@KcABaBNaAB_CMkBYiA_@mDiBmDoBwBeB_Ag@q@_@%7B@OuASmB?iIZ_JZ_GNoC?iHWkPo@%7DI]%7DBQcCG_CCuCa@%7D@QyJgBcASq@Us@[c@e@gBmBwAcBy@m@w@a@sAc@qBa@mB[BI%7B@?y@HoAPsBXcJnAwNtBk@F@?mAWuA_@uDcAcBi@eA_@s@]uDuBcIqEm@c@i@Uw@QsDe@eHyAsLeCcEeAqDk@cO_FoL%7DCaD%7D@oAm@gBm@iAWsAk@?OCe@Li@Pe@d@w@h@y@NU&key=AIzaSyDdFa0XLRwG7iR24xU8849VSpV-iBWY6U0

我通过电子邮件发送最终的静态地图网址。

1 个答案:

答案 0 :(得分:0)

我只是想通了。

问题:

从Google方向获取“overview_polyline”JSON响应包含许多在URL通过邮件服务器时被转义错误的特殊字符。

我将静态地图网址与PHP中的“overview_path”连接起来,所以为了确保所有字符都被很好地转义,我使用了 rawurlencode 函数({{3} }):

$revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')');
$wellEscapedString = strtr( rawurlencode($original_string), $revert );

现在这条线路完美匹配了道路。