【问题标题】:Overview path and php $_POST概述路径和 php $_POST
【发布时间】:2015-07-24 08:48:29
【问题描述】:

在谷歌地图响应中,有一个数组,其键名为overview_path,并带有一个编码值,例如ioffIbei@GzvFez@p_@uMjjBdhAvo@gBvdCp|@jgEpuBxpMyrCf}@oyDhjCcqAdb@}~

使用 jQuery,我已将此值放入输入文本字段并使用 post 方法提交表单。我想在帖子页面上显示静态地图,但显示的是完全不同的地图。

    $polyline = $_POST['polyline'];
   echo "<img src='http://maps.googleapis.com/maps/api/staticmap?size=400x400&path=enc:".$polyline."&sensor=false' />";

当我在浏览器中测试 url 时,正确的地图显示但不在 POST 页面上。我假设编码已更改。我该如何解决这个问题?

完整的折线是ioffIbei@GzvFez@p_@uMjjBdhAvo@gBvdCp|@jgEpuBxpMyrCf}@oyDhjCcqAdb@}~@qPuaCzs@k~@{l@suClDqo@c@cnA|BaBvc@oh@oTke@o}Bqz@q^wdDfHk{Auo@{NfOk_@vnA{yAtBet​​Bv_@y@9876 cBy~@hmAgeAtr@_cAtw@sp@pYms@sm@kuBh]orAvd@k{CjM}aBzt@woBfnDsI~Xbo@qwAbxAmbClhBai@rkCaE~gAjRppAbvCh~@hnIkArmDg@|[hg@dCf~@|lAda@ laAzfA~wE~DttCxPf|Blc@rcBnbAfWxyAf~AhyB~mBrqA|w@pnAiCfqCvtD~Y~_AvXeo@tfAxeBfzBjeFhxBhnHhxAoOffG|\dtChfCd{Bs]noBpjAv{KrzJnfAhzCrGzdHzq@lbBsAwaB|yBoyCtCqBhiDomBjw@syA~eAoXd{@wPnaAurArqBe{@dfBe@pmCfE|pB_mHto@sgDzcBuFjr@etAxhAei@tDswDnbC{vFryCk|BfvAeWpyBzu@faAlSp{@mb@ryBk{DhlCu|AveA|WfdAfv@hoAeo@roCmm@vyA|E~w@qy@ry@q}Cde@qvChh@e{AaBgo@h}A~EndCsr@vmAwtAxb@ guAj}Ai_BpaB{TdcEvKtvCqzBj}GyLlvHatBzlD}HgCkgDfxByhCbeAebDdbBstDrrCssCljA_m@l@_qAh{@egDxa@y{CbhCaaDhbC}hCzcAcQjkAmq@biB_AbtIejBfwGizA|xEyNtuDud@pxApjAfsAzNoCj^~uDvxDf}@~c@h|@e[lgBn\zi@b]x@eEfxBaKjyEsR{Am_BnmByv@tAyZlh@k_DfyIghFvfAsi@v~AqItkBmMrz@vj@wb@||@ge@hMbT|eApa@xdAqa@ydAkU{dA~[gI~i@sdA|t@vq@v_EvfAxy@lc@noAog@ldCwpBlsB}g@~{@yAlwA~y@viAn]dcAfwAvnAlTpeBqTjjArVreBhBllC{s@ p{@_cAvt@}Bvm@sXf_AhWflCxlAbaEniBtCzDb@wfApcAaUj|A_lFenBsiIiCweChp@uhAlr@m{@zhBoi@hXeUeQeq@nAyuAz}@}wA|_B_fAwC}j@xWst@vyAoeBnAeBn~Ayi@@zup_hSpf338@h@987hSpf38 w@g]jbAsQi{Bzo@qVxhBoj@jk@yOnLaTbDcZtt@cv@z}AoT|sBgbAdvCc_@~dCg@r{C_j@hH

【问题讨论】:

  • var_dump $polyline 变量以查看值。比较一下,看看值是否改变以及如何改变,一旦你弄清楚模式只是把它编码回来?也许,将其添加到您的问题中,以便有人会帮助您。
  • 通过发布数据,它将对数据进行 urlencode,因此您应该使用 urldecode 进行解码

标签: php google-maps google-static-maps


【解决方案1】:

编码的折线包含​​在 url 中使用它们时需要进行 urlencoded 的字符(例如,您的示例中的 @)。

   echo '<img src="http://maps.googleapis.com/maps/api/staticmap?'
          .http_build_query(array(
            'size'=>'400x400',
            'path'=>'enc:'.$_POST['polyline'],
            'sensor'=>'false'
          ),'','&amp;').'" />';

【讨论】:

  • 我试过了,但仍然显示不正确的地图。我在挠头。这绝对与发布有关,因为我可以在表单页面上正确显示地图。
  • 请张贴完整的折线
  • 检查主帖的编辑,我已经添加了完整的折线。当我通过 $_POST 传递它时,会显示不同的地图。
  • 我刚刚比较了一下,似乎 POST 方法似乎在字符串的某些部分添加了第二个反斜杠。
【解决方案2】:

解决了第二个反斜杠被添加到字符串中。我使用了stripslashes,并且显示了正确的地图。

【讨论】:

  • 更好的方法是对折线进行 URL 编码。这不仅可以避免双黑斜线,还可以确保带有这些折线的 HTTP 请求有效并且在所有浏览器中都能正常工作。
猜你喜欢
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-25
  • 2010-12-17
相关资源
最近更新 更多