使用边界搜索坐标

时间:2017-06-22 14:04:16

标签: google-maps google-maps-api-3

我尝试创建一个搜索特定边界地址的Google Maps API调用。

所以在我的测试中我想搜索" 8670"这是比利时一个村庄的邮政编码。这个村庄: https://www.google.com/maps/place/8670+Koksijde,+Belgium/@51.1129798,2.6459201,13z/data=!3m1!4b1!4m5!3m4!1s0x47dcba8d702c832d:0x10129f1eb06df0d2!8m2!3d51.117577!4d2.6744402

在API调用中使用country-parameter可以给出正确的答案: https://maps.googleapis.com/maps/api/geocode/json?address=8670|country:BE

但是使用bounds-parameter会让我回到美国的一个城市: https://maps.googleapis.com/maps/api/geocode/json?address=8670&bounds=53.6014224,7.0979623|49.4057287,2.4896213

我知道边界不是一个严格的过滤器,但因为有一个城市在该邮政编码的范围范围内留下了一个问题,为什么谷歌找不到它并让我回到一个远离我界限的城市? / p>

我想使用bounds而不是country-parameter的原因是因为搜索是针对3个国家(NL,BE,LU)的,并且据我所知,不可能在country-parameter中使用OR。

1 个答案:

答案 0 :(得分:1)

文档说边界参数定义了此边界框的西南角和东北角的纬度/经度坐标。

https://developers.google.com/maps/documentation/geocoding/intro#Viewports

因此,第一个坐标应该是西南坐标,第二个坐标应该是东北坐标。在您的示例中,您以相反的顺序NE | SW定义边界。只需在bounds参数中交换值,您就可以得到'8670 Koksijde,Belgium'(地址ID为ChIJLYMscI263EcR0v​​BtsB6fEhA):

https://maps.googleapis.com/maps/api/geocode/json?address=8670&bounds=49.4057287%2C2.4896213%7C53.6014224%2C7.0979623&key=YOUR_API_KEY

https://maps.googleapis.com/maps/api/geocode/json?components=postal_code%3A8670&bounds=49.4057287%2C2.4896213%7C53.6014224%2C7.0979623&key=YOUR_API_KEY

我希望这有帮助!