谷歌地理编码API

时间:2018-03-15 22:38:55

标签: api geocoding geocode

我的Google地理编码API存在问题。

事实上,我正在使用坐标(纬度和经度)来寻找城市和国家。因此,我使用这个谷歌地理编码API。

另一方面,这是我遇到问题的地方,有时它可以工作,但最常见的是没有恢复城市和国家我得到NULL值。

我还检查了Google API信息中心(我保存了密钥编号),我发现很多调用都出错:出现403错误。他经过,这是我不明白的地方。

如果我只在浏览器中直接获取URL,那么我会得到正确的值。 我不明白为什么有时它会起作用,而其他时候(但更常见的是)我会得到NULL。

这是我使用的PHP代码:

$latitude = (isset($_GET["lat"])) ? $_GET["lat"] : NULL;
$longitude = (isset($_GET["long"])) ? $_GET["long"] : NULL;

if ($latitude && $longitude) {
$url = "http://maps.googleapis.com/maps/api/geocode/json?       latlng=".$latitude.",".$longitude."&key=NUMCLE";
$data = @file_get_contents($url);
$jsondata = json_decode($data,true);
if(is_array($jsondata) && $jsondata['status'] == "OK")
{
    $city = $jsondata['results']['0']['address_components']['2']   ['long_name'];
    $country = $jsondata['results']['0']['address_components']['5']['long_name'];
    $street = $jsondata['results']['0']['address_components']['1']['long_name'];
?>

如果你可以帮我解决这个问题,那就太酷了。 提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Google Web服务需要SSL / TLS。

更改

$url = "http://maps.googleapis.com/maps/api/geocode/json?       latlng=".$latitude.",".$longitude."&key=NUMCLE";

$url = "https://maps.googleapis.com/maps/api/geocode/json?       latlng=".$latitude.",".$longitude."&key=NUMCLE";