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