我尝试创建一个搜索特定边界地址的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。
答案 0 :(得分:1)
文档说边界参数定义了此边界框的西南角和东北角的纬度/经度坐标。
https://developers.google.com/maps/documentation/geocoding/intro#Viewports
因此,第一个坐标应该是西南坐标,第二个坐标应该是东北坐标。在您的示例中,您以相反的顺序NE | SW定义边界。只需在bounds参数中交换值,您就可以得到'8670 Koksijde,Belgium'(地址ID为ChIJLYMscI263EcR0vBtsB6fEhA):
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
我希望这有帮助!