ZERO_RESULTS在尝试使用谷歌地图API

时间:2016-12-04 13:41:04

标签: php google-maps-api-3

我使用给定的代码来获取某个地方的经度和纬度。

function get_coordinates($city, $street, $province)
{
  $address = urlencode($city.','.$street.','.$province);
  $url = "http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false&region=Poland&key=******";
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
 $response = curl_exec($ch);
 curl_close($ch);
 $response_a = json_decode($response);
 $status = $response_a->status;
 if ( $status == 'ZERO_RESULTS' )
{
   return FALSE;
}
else
{
  $return = array('lat' => $response_a->results[0]->geometry->location->lat, 'long' => $long = $response_a->results[0]->geometry->location->lng);
return $return;
}

这项工作适用于某些地方和某些地方,它显示ZERO_RESULTS。我使用谷歌API从谷歌地方获得这个地方。 示例:迪拜硅绿洲 - 迪拜 - 阿拉伯联合酋长国(不工作)。 我将此函数称为get_coordinates($ from,$ from,'Śląskie'); 其中$来自迪拜硅绿洲 - 迪拜 - 阿拉伯联合酋长国 这有什么不对吗?如果是这样,我如何从我所在的地方获得城市,街道和省份?网址有什么问题吗?我正在使用此代码将应用程序用于阿联酋。我需要更改网址中的区域吗?

我检查了$地址,看起来不对。迪拜硅绿洲 - 迪拜 - 阿拉伯联合酋长国$地址显示%2C%2C%C5%9Al%C4%85skie。和迪拜购物中心 - 迪拜 - 阿拉伯联合酋长国$地址是+迪拜+购物中心+ - +迪拜+ - +联合+阿拉伯+阿联酋航空+ 2C +迪拜+购物中心+ - +迪拜+ - +联合+阿拉伯+阿联酋航空%2C%C5% 9AL%C4%85skie(正确的)。为什么会这样呢?任何人请帮忙。

由于

1 个答案:

答案 0 :(得分:1)

获取"地点"的经度和纬度。 (比如"迪拜硅绿洲 - 迪拜 - 阿拉伯联合酋长国",这不是邮政地址)使用Places API。

有关详细信息,请参阅geocoding "best practices" page

从该链接:

  

自动化系统中的模糊查询(例如,地址不完整或格式不正确)

使用:

  

放置API文字搜索服务以获取地点ID,然后使用地理编码API将地点ID地理编码为latlng。