我实际上是在尝试渲染从Google Map Directions API获得的编码折线。
例如,当我请求Directions API生成从巴黎(法国)到里尔(法国)的行程时,我会得到一条概述折线,它是描述行程的编码折线。
编码的折线值为:
<?php
$encodedPolyline = '_meiHkmjMuF|X{LqFqm@}XaUqK_PuHyE`AsFxEaHhGwAA{@eFkAwHeFsBiIoDkMiDqIOu\wAoa@|BkZQoQzB}tBnHqWdA_IyD_GuX}DcVeMmu@sD}_@wAst@i@ag@_Fcn@iCoQcQwlAuS}vAmJs`@miBgeEyeAijB{Ymg@qe@my@yVq`@uj@eo@gEqEm[m^_a@s]yEoCoNaGse@mRcXwK}aAw`@_~@iXuYgKoZyNmM}Cam@qMe_@yLuP}Aq{@zB{l@zBy_BrF_Le@k_AuKw`@iOs^iI{g@}Fs[qPmZo^qwCc~D}KcIiPmFgi@sDeTmKiPuKgTsFwOAcOrC{PtEqOj@gTkE{XqP_`@wWsUiVcZoi@kIo^iQw_@um@odB}QaZkVaW{o@yt@_v@_rAs\}Z{qB}hAeSmGsOo@mHj@kXrHk]rL_\jFsa@hG}JdDyOfLsIbGgVfFk]cE}^iH_l@yQayCodA_iAuPaoAmAuo@~GkvAv^if@rMs[hFoj@m@asDgN}e@{Hqa@iOupA{p@{[}K_a@sFqkBsUc`CkZqgAeNon@oPaiBkg@owB{w@oeAs`@s`AkZ}h@}Nwk@uJ_cBwAep@gBeu@iMedAqVigB_k@qi@qO_YkBo\Vw|BnBiVU_TwCuaAi^qx@i\c|@iXebCoq@o`Bq\ykAeVk\gJub@sX{a@c`@oVyOe]qN}pAyg@_l@cS}h@}HqgAqKwhBcQcn@}Fs_AkLab@wRua@qYue@eRu_@yD{f@{BuvAgGsp@d@}l@_Cgc@oDsn@eHiSoHug@i[eh@qV}u@i\u|@g]q[yDup@_Eyg@}Psa@mRcYsIae@{BqOjAq_@nKur@d^sl@fMkyBzTee@lEm`@l@ek@{D_k@aBmrAKaeBMobBoC{pCcIif@yAqp@K}TzAui@`L_o@zRm}@bYwaBph@oj@vMaa@lDuk@}Awf@iKoo@cY{gC_uAybB_~@gw@mb@sXcReOoOkYa]mXc\{vAwaB_c@mh@mmAecC{Py[s^mg@k`@u^mQmMm_Acr@{TqOwU}JuNaDce@wDmrAmI_r@oEw^^mY`GcPzGoIdFgl@hd@e\|PuObEuW`CgR_@uYeGwkBgf@qi@qOk^{SoUsVep@gnAwXal@uU}p@o^ecAcNcVs\g_@_hAcs@ghB_hA{hAqt@_~As{AyfAseA_aA_~@qI}HuJuDaOUmTzI{]|j@qXze@aNfUkJlSrA|`@KpXy@dv@eDIFfCi@zEU`JcAtb@iAfUaEwAqJoHuIcIsOyJkNqKaBPoCzC';
如果我尝试使用Interactive Polyline Encoder Utility渲染它,则会正确渲染折线。因此,Google Map Directions API已正确请求。
要渲染编码折线,我使用以下代码:
<?php
$polyline = sprintf('var polyline = Polyline({"map":map,"path":google.maps.geometry.encoding.decodePath("%s")});', $encodedPolyline);
在Chrome上,我得到了折线,但这绝对不是我想要的。
在Firefox中,我得到一个JS错误malformed Unicode character escape sequence
。
可以肯定的是,问题来自渲染,但我不知道出了什么问题......
答案 0 :(得分:0)
我在这个愚蠢的问题上度过了我的下午,我决定创建一个问题&amp; 5分钟后,我找到了解决方案。这是个玩笑!
所以,如果你想使用编码的折线值,你需要转义所有需要转义的字符(“)(')(\)(NULL)。
对于PHP中的那个,您只需使用:addSlashes
。