带有编码折线的Google Static Maps API [英] Google Static Maps API with encoded polyline

本文介绍了带有编码折线的Google Static Maps API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我向google方向API发出了请求,并收到了以下JSON指示:

(文件大到可以在这里复制)
https://gist.githubusercontent.com/crooksey/9930819/raw/947e4d17a93ca94b78216d92fbd94b281966dede/directions_api



最后,我得到编码的折线数据:

  ecduHxqrE | RFS {SlW_w @ ZDC {@ IG @ cVlK}ž@Ĵ} AOG @ Z {AuGbdDibAfkGaBpcG}〜@ vrGy_AhhCoi @ FEB {bBxu @ kxAsSus @ | @ eAcLdyBci @ dcByi LY @`GrgC_S〜d @ e\\ wBugA_uBwuAusAoaCidAs〜Dq的{DiaAu`CuwAweAevBi @} dDwgCsrAwfBuqFkmBwzEu〜DenAa | Bi_BcuDmrAghF_ {B_hGa {@chAocAl [M_ @ pXwk @ {Z @} ZC〜A_hAmn @ mdAinBg_ @ ED {ö@ MOA {_ @ KZ @ SN @ CA @ oWmcCoQsUue @ `德{@yH {OA〜I @ meAliA} WAA] IJ @ QG @}ö@ W_ @ yVrT_k @ | Y {oCi` @ E_ @ RqEjOvUx\\`TjDv @义@ TTA〜的Gr} @`FXI @广告@ v] YJ | gAxlAjsAz_ @ | L @ oYzbBatAn_CdJdSv_B〜F @ rlAhk @`Ĵ@ F_ @`rAhpAfs @ F` @`kAfg @`Nr_AbgBtNt〜@ NB @ vRlc @ gXry @} WD ^ iIdv @zfCvgCj {GlcAzxEnkDfkGlgGtpE | EEF {AvzBx {BzvA | _B〜\\yAjyBxJzwA | WA〜_AznBlgAt_AbhBpsB`xChzAxsA | uAxVnxBnPb} AzCx`EnhA`qDwCnpG〜SvrCbmA | LCD {B〜jFdZzbCn {@ b`EhqA | aBb_Ad} BdkBxjEx [ VGC | HluEfUnkBtfB`eF〜mAzjD`V〜q因子@ Y_ @ pnEtv @ byChn @ TV @`dBjoFz_ @ KdbElc @ F] |?我@ BC @哒@ mKptA`Nhj @水性@ fHlAbK-M Z_UyOw ^ @纪苏@菊| @`qEX`cBnw @ | @ lAsRjlD_q〜nHgA`vH} M @ hvEs] gL的〜AzkCt [hiCcJlvFuAzzE`a @ jbDnlBxyG ||ç|〜B`d @ juCaiAf`DoQf`HhS | jBLpmBuLd`Dma @ zsBc [ ftGcx @ T | H {TnyGxTzdA_Bn [kPysBhZm`HvvAk`Rdb @ ehBoBypCdF} hB_YgcAzMqx @ nEohGriAi〜CA_ @ mpCopCkoBwpC_iIaKegKlIu {EuX_ {CGD {PBS ^ oXuu @ kpEqZmzDymBmwDt` @ qkEhEmzCjCiyBqSonCmKm | @rRweC {R} CBW {@ {fDeo @} U @q | @g} Cx_ @ quEqdBcyEs} Ba_HoQ {dJysDyvIiiBejDup @ E {d {mAuxDes @ a_BcoBkdGgEweJp |的Akt1 {@ U_ @ LG @_ {法新社@ suDzBmgAmLyp @ QW @ SX @ wdAafA_〜BukA`bAmeBfl @ orEtn @} F到@ xkAbVptAgk @ xv @ {} A | p @ cyAhjAsiHpEkyFbaAceHvLe〜Dli @ a〜Ary @ eeBx} @ lUbb @ jVzf @ _NhKs ^ yH {I 

现在理论上我应该可以在地图上显示这条路线,就像..

  https://maps.googleapis.com/maps/api/staticmap?size=4 00x400&安培;路径=重量:10%7Ccolor:橙%7Cenc:ecduHxqrE | RFS {SlW_w @ ZDC {@ IG @ cVlK}ž@Ĵ} AOG @ Z {AuGbdDibAfkGaBpcG}〜@ vrGy_AhhCoi @ FEB {bBxu @ kxAsSus @ | eAcLdyBci @ dcByi @ LY @`GrgC_S〜d @ e\\wBugA_uBwuAusAoaCidAs〜Dq的{DiaAu`CuwAweAevBi @} dDwgCsrAwfBuqFkmBwzEu〜DenAa | Bi_BcuDmrAghF_ {B_hGa {@chAocAl [M_ @ pXwk @ {Z @} ZC〜A_hAmn @ mdAinBg_ @ ED { Ø@ MOA {_ @ KZ @ SN @ CA @ oWmcCoQsUue @`德{{@yH OA〜我@ meAliA} WAA] IJ @ QG @}Ø@ W_ @ yVrT_k @ | Y {oCi` @ E_ @ RqEjOvUx\ \`TjDv @易建联@ TTA〜}的Gr @`FXI @广告@ v] YJ | gAxlAjsAz_ @ | L @ oYzbBatAn_CdJdSv_B〜F @ rlAhk @`Ĵ@ F_ @`rAhpAfs @ F` @`kAfg @`Nr_AbgBtNt〜@ NB @ vRlc @ gXry @} WD ^ iIdv @ zfCvgCj {GlcAzxEnkDfkGlgGtpE | EEF {AvzBx {BzvA | _B〜\\yAjyBxJzwA | WA〜_AznBlgAt_AbhBpsB`xChzAxsA | uAxVnxBnPb} AzCx`EnhA`qDwCnpG〜SvrCbmA | LCD {B〜jFdZzbCn {@ b`EhqA | aBb_Ad} BdkBxjEx [VGC | HluEfUnkBtfB`eF〜mAzjD`V〜q因子@ Y_ @ pnEtv @ byChn @ TV @`dBjoFz_ @ KdbElc @ F] |我@ BC @哒@ mKptA`Nhj @ @水溶液fHlAbK  -  M Z_UyOw ^ジス@ @鞠|?@`qEX`cBnw @ | @ lAsRjlD_q〜nHgA`vH} M @ hvEs] gL的〜AzkCt [hiCcJlvFuAzzE`a @ jbDnlBxyG ||ç|〜B`d @ juCaiAf` DoQf`HhS | jBLpmBuLd`Dma @ zsBc [ftGcx @ T | H {TnyGxTzdA_Bn [kPysBhZm`HvvAk`Rdb @ë hBoBypCdF} hB_YgcAzMqx @ nEohGriAi〜CA_ @ mpCopCkoBwpC_iIaKegKlIu {EuX_ {CGD {PBS ^ oXuu @ kpEqZmzDymBmwDt` @ qkEhEmzCjCiyBqSonCmKm | @rRweC {R} CBW {@ {fDeo @} U @ Q | @g} Cx_ @ quEqdBcyEs} Ba_HoQ {dJysDyvIiiBejDup @ E {d {mAuxDes @ a_BcoBkdGgEweJp |的Akt1 {@ U_ @ LG @_ {法新社@ suDzBmgAmLyp @ QW @ SX @ wdAafA_〜BukA`bAmeBfl @ orEtn @} F到@ xkAbVptAgk @ XV @ {}甲| p @ cyAhjAsiHpEkyFbaAceHvLe〜DLI @ a〜ary @ eeBx} @ lUbb @ jVzf @ _NhKs ^ yH {I& sensor = true 

但是唉,这不起作用,任何人有什么想法为什么?这应该是一个相当基本的练习。因为它只是使用Google自己的API。

解决方案

似乎折线概述使用了很多\\所以我用\替换了所有\\的实例。



使用python替换字符串进行排序。

  string_new = string.replace(\\\\,\\)


I have made a request to google directions API and recived the following JSON directions:

(file to large to copy here) https://gist.githubusercontent.com/crooksey/9930819/raw/947e4d17a93ca94b78216d92fbd94b281966dede/directions_api

At the bottom, I get the encoded polyline data:

ecduHxqrE|RfS{SlW_w@zDc{@ig@cVlK}z@j}Aog@z{AuGbdDibAfkGaBpcG}~@vrGy_AhhCoi@feB{bBxu@kxAsSus@|eAcLdyBci@dcByi@ly@`GrgC_S~d@e\\wBugA_uBwuAusAoaCidAs~Dq{DiaAu`CuwAweAevBi@}dDwgCsrAwfBuqFkmBwzEu~DenAa|Bi_BcuDmrAghF_{B_hGa{@chAocAl[m_@pXwk@{z@}Zc~A_hAmn@mdAinBg_@eD{o@moA{_@kz@sn@ca@oWmcCoQsUue@`De{@yH{oA~i@meAliA}wAa]ij@qg@}o@w_@yVrT_k@|Y{oCi`@e_@RqEjOvUx\\`TjDv@yi@ttA~Gr}@`Fxi@ad@v]yJ|gAxlAjsAz_@|l@oYzbBatAn_CdJdSv_B~f@rlAhk@`j@f_@`rAhpAfs@f`@`kAfg@`Nr_AbgBtNt~@nb@vRlc@gXry@}Wd^iIdv@zfCvgCj{GlcAzxEnkDfkGlgGtpE|eEf{AvzBx{BzvA|_B~\\yAjyBxJzwA|wA~_AznBlgAt_AbhBpsB`xChzAxsA|uAxVnxBnPb}AzCx`EnhA`qDwCnpG~SvrCbmA|lCd{B~jFdZzbCn{@b`EhqA|aBb_Ad}BdkBxjEx[vgC|HluEfUnkBtfB`eF~mAzjD`V~q@y_@pnEtv@byChn@tv@`dBjoFz_@KdbElc@f]|My@bc@da@mKptA`Nhj@aq@fHlAbK~M?Z_UyOw^ji@su@Ju|@`qEX`cBnw@|lAsRjlD_q@~nHgA`vH}m@hvEs]gL~AzkCt[hiCcJlvFuAzzE`a@jbDnlBxyG||C|~B`d@juCaiAf`DoQf`HhS|jBLpmBuLd`Dma@zsBc[ftGcx@t|H{TnyGxTzdA_Bn[kPysBhZm`HvvAk`Rdb@ehBoBypCdF}hB_YgcAzMqx@nEohGriAi~Ca_@mpCopCkoBwpC_iIaKegKlIu{EuX_{CgD{pBs^oXuu@kpEqZmzDymBmwDt`@qkEhEmzCjCiyBqSonCmKm|@rRweC{R}cBw{@{fDeo@}u@q|@g}Cx_@quEqdBcyEs}Ba_HoQ{dJysDyvIiiBejDup@e{D{mAuxDes@a_BcoBkdGgEweJp|AkTl{@u_@lg@_{Afp@suDzBmgAmLyp@qw@sx@wdAafA_~BukA`bAmeBfl@orEtn@}f@xkAbVptAgk@xv@{}A|p@cyAhjAsiHpEkyFbaAceHvLe~Dli@a~Ary@eeBx}@lUbb@jVzf@_NhKs^yH{I

Now In theory I should be able to display this route on a map, as easy as..

https://maps.googleapis.com/maps/api/staticmap?size=400x400&path=weight:10%7Ccolor:orange%7Cenc:ecduHxqrE|RfS{SlW_w@zDc{@ig@cVlK}z@j}Aog@z{AuGbdDibAfkGaBpcG}~@vrGy_AhhCoi@feB{bBxu@kxAsSus@|eAcLdyBci@dcByi@ly@`GrgC_S~d@e\\wBugA_uBwuAusAoaCidAs~Dq{DiaAu`CuwAweAevBi@}dDwgCsrAwfBuqFkmBwzEu~DenAa|Bi_BcuDmrAghF_{B_hGa{@chAocAl[m_@pXwk@{z@}Zc~A_hAmn@mdAinBg_@eD{o@moA{_@kz@sn@ca@oWmcCoQsUue@`De{@yH{oA~i@meAliA}wAa]ij@qg@}o@w_@yVrT_k@|Y{oCi`@e_@RqEjOvUx\\`TjDv@yi@ttA~Gr}@`Fxi@ad@v]yJ|gAxlAjsAz_@|l@oYzbBatAn_CdJdSv_B~f@rlAhk@`j@f_@`rAhpAfs@f`@`kAfg@`Nr_AbgBtNt~@nb@vRlc@gXry@}Wd^iIdv@zfCvgCj{GlcAzxEnkDfkGlgGtpE|eEf{AvzBx{BzvA|_B~\\yAjyBxJzwA|wA~_AznBlgAt_AbhBpsB`xChzAxsA|uAxVnxBnPb}AzCx`EnhA`qDwCnpG~SvrCbmA|lCd{B~jFdZzbCn{@b`EhqA|aBb_Ad}BdkBxjEx[vgC|HluEfUnkBtfB`eF~mAzjD`V~q@y_@pnEtv@byChn@tv@`dBjoFz_@KdbElc@f]|My@bc@da@mKptA`Nhj@aq@fHlAbK~M?Z_UyOw^ji@su@Ju|@`qEX`cBnw@|lAsRjlD_q@~nHgA`vH}m@hvEs]gL~AzkCt[hiCcJlvFuAzzE`a@jbDnlBxyG||C|~B`d@juCaiAf`DoQf`HhS|jBLpmBuLd`Dma@zsBc[ftGcx@t|H{TnyGxTzdA_Bn[kPysBhZm`HvvAk`Rdb@ehBoBypCdF}hB_YgcAzMqx@nEohGriAi~Ca_@mpCopCkoBwpC_iIaKegKlIu{EuX_{CgD{pBs^oXuu@kpEqZmzDymBmwDt`@qkEhEmzCjCiyBqSonCmKm|@rRweC{R}cBw{@{fDeo@}u@q|@g}Cx_@quEqdBcyEs}Ba_HoQ{dJysDyvIiiBejDup@e{D{mAuxDes@a_BcoBkdGgEweJp|AkTl{@u_@lg@_{Afp@suDzBmgAmLyp@qw@sx@wdAafA_~BukA`bAmeBfl@orEtn@}f@xkAbVptAgk@xv@{}A|p@cyAhjAsiHpEkyFbaAceHvLe~Dli@a~Ary@eeBx}@lUbb@jVzf@_NhKs^yH{I&sensor=true

But alas, this does not work, anyone have any ideas as to why? It should be a fairly basic exercise. As it's just using googles own API.

解决方案

It seems the polyline overview used a lot of "\\" which causes the problem, so I replaced all instance of "\\" with "\".

Used python replace on the string to sort it.

string_new = string.replace("\\\\", "\\")

这篇关于带有编码折线的Google Static Maps API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆