地理编码如何仅在边界区域中搜索地址

时间:2018-10-18 19:20:38

标签: php laravel geocoding

我正在尝试使用Google Maps API在特定边界区域内搜索街道地址。例如,我希望Google Maps仅在罗马尼亚城市Iasi的边界内进行搜索。我正在使用php来调用API,并且像这样在URL中传递参数:

$address = urlencode($address.','.config('maps.state').','.config('maps.country'));
$geocode = file_get_contents('https://maps.google.com/maps/api/geocode/json?address='. $address . '&sensor=true&components=country:RO&key='. env('GOOGLE_MAPS_API_KEY'));

当我尝试搜索一条不存在的街道(例如玩具)时,它只是在边界区域之外给了我一个随机的地址。我尝试用html / javascript实现它,看看我是否也能在其中获得成功,但仍然超出了范围。有什么方法可以使用geoJson来实现吗?

1 个答案:

答案 0 :(得分:0)

从Google Maps API文档中:

  

在地址解析请求中,您可以指示地址解析服务执行以下操作:   通过使用region返回偏向特定区域的结果   参数。此参数采用ccTLD(国家/地区代码顶级   域)参数,指定区域偏差。大多数ccTLD代码是   与ISO 3166-1代码相同,但有一些明显的例外。

因此,只需在网址中添加&region=ro即可添加罗马尼亚的国家/地区偏见。