2017-02-14 98 views
0

今天,我醒了,想我的代码运行(这是工作的罚款),但我得到了几个错误 - 未定义的偏移误差,同时通过包含若干起点和终点的请求后获得的JSON响应循环已发出:Google距离矩阵api不再支持多个起源?

$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

valid HTML

两个起源已发出: 1.希尔顿+毛里求斯+酒店+ & +温泉+海岸+路+的Flic + EN + FLAC,+毛里求斯 2.LAventure +杜+苏克雷,+ B18 +庞普勒穆斯, +毛里求斯

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

+0

我有点发现这个奇怪的因为我只是互换了起源,它似乎工作正常。我不确定要发布什么,也无法在文档中找到任何内容。尝试向Google报告此问题 – Coder

+0

我很抱歉,我忘记写我找到了解决方案,我也互换了起源,发现它工作正常。然后,我花了1个多小时才发现:'&'在:希尔顿+毛里求斯+度假村+&+水疗中心+海岸+路+弗利+ en +弗拉克+毛里求斯导致此错误我删除&和它工作正常。应该没有在网址 – Elliott08

回答

0

我删除了“&”中:

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

和它的作品“因为这些参数已使用在源的名称和目的地的名称&” &“符号fine.There不应该是任何与这可能会导致一些问题。

+0

很高兴知道这一点。但是,原点互换仍然包含'&',它看起来很完美 – Coder

+0

你能否更新答案,因为有人可能会误导你的最后一行。当你发送这些参数,即起源和目的地时,你的请求URL中会有'&' – Coder

+0

对不起,回答更新 – Elliott08