相关疑难解决方法(0)

Google Maps网站和API:结果不同

为什么对Google Maps Geocoder API的调用返回的结果与我在浏览器中看到的结果不同?

这个会返回许多项目:http:
//maps.google.fr/maps?q = McDonald,+ paris

这个返回ZERO_RESULT:http://maps.googleapis.com/maps/api/geocode/xml?McDonald,+ paris&senns = false

api google-maps request geolocation

13
推荐指数
1
解决办法
5286
查看次数

对特定地址进行地理编码无法通过PHP进行操作,也可以通过使用相同URL的浏览器进行工作

我正在使用以下代码段通过Google Geolocation API对地址进行地理编码:

<?php
$address = "Frazione Levà - 16030 Sori (GE)";
$url = 'http://maps.google.com/maps/api/geocode/xml?address='.urlencode($address).'&sensor=false';
echo $url."\n";
$xml = file_get_contents($url);
var_dump($xml);
?>
Run Code Online (Sandbox Code Playgroud)

echo命令显示调用的URL为:

http://maps.google.com/maps/api/geocode/xml?address=Frazione+Lev%C3%A0+-+16030+Sori+%28GE%29&sensor=false
Run Code Online (Sandbox Code Playgroud)

并且var_dump命令显示结果为:

string(107) "<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
 <status>ZERO_RESULTS</status>
</GeocodeResponse>
"
Run Code Online (Sandbox Code Playgroud)

因此,似乎无法对地址进行地理位置定位。

如果我使用我上面的完全相同的网址( http://maps.google.com/maps/api/geocode/xml?address=Frazione+Lev%C3%A0+-+16030+Sori+%28GE%29&sensor=false)浏览器,我得到一个完全不同的结果(地址已正确定位):

<?xml version="1.0" encoding="UTF-8"?>
 <GeocodeResponse>
  <status>OK</status>
...
Run Code Online (Sandbox Code Playgroud)

这怎么可能?我该如何解决?我需要从PHP定位地址。

请注意,我每天在循环中使用相同的代码段来对数百个地址进行地理位置定位,并且在大多数地址上都可以正常工作;仅在某些地址上,它会显示类似的问题。

php google-geocoding-api

4
推荐指数
1
解决办法
828
查看次数