我的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'];
?>
如果你可以帮我解决这个问题,那就太酷了。 提前感谢您的帮助。
答案 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";