Google Maps Geocode [Invalid_request],但有效的网址

时间:2014-11-12 15:18:44

标签: php google-maps google-geocoder

我正在使用此功能获取数据库中某些地址的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工作正常。

我在$ straat,$ stad和$ land上尝试rawurlencodeutf8_encode但没有效果。

工作链接:https://maps.googleapis.com/maps/api/geocode/json?address =Široká+ 5 +布拉格+捷克+共和国(由上述功能输出)

错误可能与地址的编码有关,但我看不到在哪里或如何。

0 个答案:

没有答案