【问题标题】:Google distance matrix api no longer support several origins?Google 距离矩阵 api 不再支持多个来源?
【发布时间】:2017-02-14 09:02:53
【问题描述】:

今天我醒来并想运行我的代码(运行正常),但我遇到了几个错误 - 循环遍历包含多个来源和目的地的请求后获得的 json 响应时出现未定义的偏移错误:

$request = file_get_contents("https://maps.googleapis.com/maps/api/distancematrix/json?origins=$OriginUrl&destinations=$DestinationUrl&mode=driving");
$resultdistance = json_decode($request, true);

for($i=0;$i<count($LocationDetails);$i++){

        $distanceM = $resultdistance['rows'][$i]['elements'][$i]['distance']['value'];
        $distanceKM = $distanceM / 1000;
        $TravelDistance = round($distanceKM,1); // Distance from Act 1 and Act 2
        $DistanceText = $resultdistance['rows'][$i]['elements'][$i]['distance']['text'];
        $TimeToTravelSec =  $resultdistance['rows'][$i]['elements'][$i]['duration']['value'];
        $TimeToTravelText = $resultdistance['rows'][$i]['elements'][$i]['duration']['text'];

}

然后,我在地址栏中手动输入具有多个来源的 http 请求,并注意到该请求仅以一个来源发送:

https://maps.googleapis.com/maps/api/distancematrix/json?origins=Hilton+Mauritius+Resort+&+Spa,+Coastal+Road,+Flic+en+Flac,+Mauritius|LAventure+du+Sucre,+B18,+Pamplemousses,+Mauritius&destinations=Cascavelle,+Riviere+Noire+District|Mauritius+Aquarium,+B38,+Camp+Bestel,+Pamplemousses+District,+Mauritius|Blue+Safari+Submarines,+B36,+Trou-aux-Biches,+Mauritius|&mode=driving

已发送两个来源: 1. Hilton+Mauritius+Resort+&+Spa,+Coastal+Road,+Flic+en+Flac,+毛里求斯 2.LAventure+du+Sucre,+B18,+Pamplemousses,+毛里求斯

但只考虑了第一个(见上图或点击链接发送请求并查看结果)!几天前,我使用了大约 5 个来源,它正在工作,请帮助!

【问题讨论】:

  • 我觉得这很奇怪,因为我只是互换了起源,它似乎工作正常。我不确定要发布什么,也无法在文档中找到任何内容。尝试向 Google 报告有关此问题的错误
  • 对不起,我忘了写我找到了解决方案,我也互换了起源,发现它工作正常。然后我花了 1 个多小时才发现:Hilton+Mauritius+Resort+&+Spa,+Coastal+Road,+Flic+en+Flac,+Mauritius 中的“&”导致了这个错误,我删除了 & 和它工作正常。 url中应该没有&

标签: json google-distancematrix-api


【解决方案1】:

我删除了 :

Hilton+Mauritius+Resort+&+Spa,+Coastal+Road,+Flic+en+Flac,+Mauritius 

它工作正常。起点名称和目的地名称中不应有任何'&,因为参数已经使用'&'符号,这可能会导致一些问题。

【讨论】:

  • 很高兴知道这一点。但仍然互换的起源包含&amp;,它似乎工作完美
  • 您能否更新答案,因为有人可能会被您的最后一行误导。在您的请求 URL 中将有 &amp; 作为您发送这些参数,即来源和目的地
  • 是的,当您交换起源名称的顺序时它可以工作,我不知道如何。但最好不要在起点和终点中使用 &。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
  • 2012-03-27
  • 2019-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多