Геокод Google Maps [Invalid_request], но действительный URL

Я использую эту функцию, чтобы получить Lat en Lng для некоторых адресов в базе данных:

function geocode($street,$city,$country) {
$straat = preg_replace('/ /', '+', $street);
$stad = preg_replace('/ /', '+', $city);
$land = preg_replace('/ /', '+', $country);
$addr = $straat . '+' . $stad . '+' . $land;

$apiuri = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . $addr;
$geocode=file_get_contents($apiuri);

$output= json_decode($geocode);

$lat = $output->results[0]->geometry->location->lat;
$long = $output->results[0]->geometry->location->lng;

$LatLng['lat'] = $lat;
$LatLng['long'] = $long;

return $LatLng;
}

С большинством адресов это работает отлично, но с некоторыми я получаю { "results" : [], "status" : "INVALID_REQUEST" } но $ apiuri отлично работает при копировании.

Я старался rawurlencode а также utf8_encode на $ straat, $ stad и $ land, но без эффекта.

Рабочая ссылка: https://maps.googleapis.com/maps/api/geocode/json?address= Широка + 5 + Прага + Чехия + Республика (как указано в приведенной выше функции)

Ошибка, вероятно, с кодировкой адреса, но я не вижу, где и как.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]