问题在于:用户选择酒店名称,城市和国家/地区,并使用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'并返回加利福尼亚州圣何塞!
这是一个巨大的问题,因为有许多城市共享名称,特别是在南美洲。
由于这是一项全球搜索,因此无法为每个国家/地区创建坐标多边形。
任何人都有解决此问题的方法吗?