Google Geocode在2018年的任何人都可以使用吗?

时间:2018-01-31 17:17:55

标签: php google-maps geocode

谷歌地理编码用于为我工作,但现在不再。我试过的一切都是假的。它甚至没有提供原因的线索。我试过更改API密钥,我尝试了不同的连接方法(我更喜欢使用simplexml_load_file)。如果我直接在浏览器窗口中输入URL而不是从我的网站甚至从我的localhost输入URL,它确实有效。有没有人建议下一步尝试什么或替代谷歌地理编码服务?

以下是我一直在使用Json / XML结果的一些代码。

//URL SAVE ADDRESS
date_default_timezone_set("America/Chicago");
$address = "1600 Amphitheatre Parkway, Mountain View, CA 94043";
$address = urlencode($address);

// GOOGLE URL
$url = "https://maps.googleapis.com/maps/api/geocode/xml?address=". $address ."&sensor=false&key=AIzaSyDrGe_qr4ofea8WhZFhnPGsXNQtTiQwGhw";
echo $url; //TEMP
$xml = simplexml_load_file($url) OR $ex['tblx'] = "Unable to load XML from Googleapis.";
if(empty($xml)) {
    $ex['tblx'] = "Googleapis return no values.";
} elseif("" == $xml) {
    $ex['tblx'] =  "Geocode problem with address, revise and retry.";
} elseif("OK" != $xml->status) {
    $ex['tblx'] = "Geocode: " . ("ZERO_RESULTS" == $xml->status? "Not Found": substr($xml->status,0,30));
} else{ 
        $dvtby0 = $uca['y0'] = (double)$xml->result->geometry->location->lat;  //x
        $dvtbx0 = $uca['x0'] = (double)$xml->result->geometry->location->lng;
        $dvtby1 = $uca['y1'] = (double)$xml->result->geometry->viewport->southwest->lat;  //a
        $dvtbx2 = $uca['x1'] = (double)$xml->result->geometry->viewport->southwest->lng;
        $dvtbx1 = $uca['x2'] = (double)$xml->result->geometry->viewport->northeast->lng;  //b       
        $dvtby2 = $uca['y2'] = (double)$xml->result->geometry->viewport->northeast->lat;        
}//endif

if($ex) {
    var_dump($ex);
}
die("did it work?");

2 个答案:

答案 0 :(得分:1)

北美洲的geocoder.ca opencage或geocode.xyz为世界 pelias独立

2018年有很多选择

答案 1 :(得分:0)

这里的问题原来是PHP的版本。这真的很奇怪,很难排除故障。 simplexml_load_file($ url)未返回对象。它甚至没有返回虚假。这是其他代码问题的唯一线索。升级到5.6版,它可以正常工作。