当我试图通过谷歌服务将地址转换为纬度和经度时,我遇到了一个问题。我的地址是1456 sok。编号:10/1 kat:8 Alsancak。问题是,当我把这个地址写到url时,会返回正确的结果,但当我使用下面的php代码时,我得到的结果为零。
结果没有问题:
http://maps.google.com/maps/api/geocode/json?address=1456%20sok.%20no:%2010/1%20kat:8%20Alsancak&传感器=真实
php:问题
<?php
header('Content-Type: text/html; charset=utf-8');
getGoogleAddressCoordinates("1456 sok. no: 10/1 kat:8 Alsancak");
function getGoogleAddressCoordinates($address)
{
//$address = urlencode($address);
$address = str_replace(" ", "%20", $address);
$request = file_get_contents('http://maps.google.com/maps/api/geocode/json?address=' . $address . '&sensor=true');
$json = json_decode($request, true);
print_r ($json);
}
?>
地址1456 sok. no: 10/1 kat:8 Alsancak
无效。如果你在谷歌地图上尝试,你也不会得到任何结果。
尝试使用:1456 sok. 10/1 Alsancak
,取消对行$address = urlencode($address);
的注释并清除行$address = str_replace(" ", "%20", $address);
。
url应该看起来像:
http://maps.google.com/maps/api/geocode/json?address=1456%20sok.%2010%2F1%20Alsancak&传感器=真实