调用谷歌地图geocode api适用于本地但在实时服务器上失败

时间:2014-07-31 20:00:50

标签: php google-maps

我有一个函数,它接受一个地址数组,将它们传递到谷歌地图geocode api并返回纬度/经度坐标列表,然后保存到数据库。

它在我的环境中完美运行(php 5.4)但我最近推出了网站(服务器安装了php 5.3),我发现我的lat / lng数据库还没有得到更新。

作为一项测试,我提取了一段代码并独立运行,一次是从我的本地环境运行,一次是在我的服务器上运行。实时代码不会产生任何结果,我的本地代码会继续产生正确的结果。我不确定导致问题的是什么,因为实时网站是我本地网站的精确副本。

这是代码

$addr = '210 west 103rd street, ny 10025';

$addrencode = urlencode($addr);

$url = "http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=".$addrencode;
$json_txt = file_get_contents($url);
if (! $json_txt)
    return FALSE;
$json_arr = json_decode($json_txt, TRUE);
if ($json_arr["status"] != "OK")
    return FALSE;

$result = $json_arr["results"][0];
$ret = array(
    "addr" => $addr,
    "faddr" => $result["formatted_address"],
    "lat" => $result["geometry"]["location"]["lat"],
    "lng" => $result["geometry"]["location"]["lng"]
);

print_r($ret);

知道在线上运行时可能会导致这种情况发生的原因吗?如果我实际上在浏览器中访问带有编码地址的URL,我也可以收集结果。

在本地我收到:

Array ( [addr] => 210 west 103rd street, ny 10025 [faddr] => 210 West 103rd Street, New York, NY 10025, USA [lat] => 40.7986924 [lng] => -73.9678981 ) 

现场直播我收到空白页

0 个答案:

没有答案