Google Geocoder会忽略搜索地址中的国家/地区

时间:2012-03-09 14:28:39

标签: php geocoding

问题在于:用户选择酒店名称,城市和国家/地区,并使用Google商家信息找到该位置,以便可以将标记添加到Google地图。

城市和国家/地区连接成名为$code的变量(以逗号分隔),以这种方式搜索:

function getLatLong($code){
$code=str_replace(" ", "+", $code);
$query = "http://maps.googleapis.com/maps/api/geocode/json?address=".$code."&sensor=false";
$data = file_get_contents($query);
// if data returned
if($data){
    // convert into readable format
    $data = json_decode($data);
    $long = $data->results[0]->geometry->location->lat;
    $lat = $data->results[0]->geometry->location->lng;
    return array('Latitude'=>$lat,'Longitude'=>$long);
}
else{
    return false;
}
}

然后,返回的lat / lng对用于将搜索区域置于酒店名称的中心。然而,Geocoder似乎完全无视这个国家,所以如果$code="San Jose, Costarica"它只搜索'San Jose'并返回加利福尼亚州圣何塞!

这是一个巨大的问题,因为有许多城市共享名称,特别是在南美洲。

由于这是一项全球搜索,因此无法为每个国家/地区创建坐标多边形。

任何人都有解决此问题的方法吗?

0 个答案:

没有答案