Я использую этот фрагмент кода для геокодирования адреса с помощью 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);
?>
Команда echo показывает, что вызываемый URL-адрес:
http://maps.google.com/maps/api/geocode/xml?address=Frazione+Lev%C3%A0+-+16030+Sori+%28GE%29&sensor=false
и команда var_dump показывает результат:
string(107) "<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
<status>ZERO_RESULTS</status>
</GeocodeResponse>
"
Таким образом, кажется, что адрес не может быть геолоцирован.
Если я вызову точно такой же URL-адрес выше ( 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>
...
Как это возможно и как я могу это исправить? Мне нужно геолоцировать адреса из PHP.
Обратите внимание, что я использую один и тот же фрагмент кода в цикле для геолокации сотен адресов каждый день, и на большинстве из них он работает нормально; только на некоторых адресах он показывает такие проблемы.
ZERO_RESULTS
. - person elixenide   schedule 10.06.2015