API Карт Google возвращает «Недействительный запрос» в действительном запросе

Я пытаюсь изменить геокодирование связки адресов для моей базы данных. У меня около 200 адресов, а половина из них работает как шарм. Я поставил запрос карты Google в цикл, и он сработал. Было около 100 адресов, которые вернули сообщение «INVALID REQUEST». Я повторил URL-адрес запроса и поместил его в свой браузер, и он вернул «Статус: ОК» и все данные. Почему мой скрипт возвращает недопустимый запрос, а другая вкладка браузера возвращает OK?

Это функция, которую я использовал:

function getLatLon($strasse, $plz) { $inhalt = simplexml_load_file('http://maps.googleapis.com/maps/api/geocode/xml?address='.$strasse.',+'.$plz.'&sensor=true'); $geo['lat'] = $inhalt->result->geometry->location->lat; $geo['lon'] = $inhalt->result->geometry->location->lng; return $geo; } 

URL-адрес запроса выглядит следующим образом: http://maps.googleapis.com/maps/api/geocode/xml?address=Dreik%C3%B6nigstra%C3%9Fe+12,+Erlangen&sensor=true

Было бы здорово, если бы кто-то мог мне помочь или обнаружил ошибку 🙂 С уважением, Филипп

Related of "API Карт Google возвращает «Недействительный запрос» в действительном запросе"

Я уверен, что ошибка вызвана немецкими символами, которые вы отправляете unencoded. Когда вы сделаете это браузером, URL-адрес будет закодирован автоматически, но не автоматически вашим PHP-скриптом.

Используйте rawurlencode для этого:

 $inhalt = simplexml_load_file('http://maps.googleapis.com/maps/api/geocode/xml?'. 'address='.rawurlencode($strasse).',+'. rawurlencode($plz).'&sensor=true');