2017-06-22 61 views
0

我尝试创建一个Google地图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调用中使用国家的参数给我正确的答案: https://maps.googleapis.com/maps/api/geocode/json?address=8670|country:BE

但使用范围参数返回我在美国的城市: https://maps.googleapis.com/maps/api/geocode/json?address=8670&bounds=53.6014224,7.0979623|49.4057287,2.4896213

我知道范围并不是一个严格的过滤器,但是因为有一个城市在范围内,那个邮政编码让我想到了为什么谷歌找不到它,并且让我离开了一个远离我的边界的城市?

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

回答

1

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

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

因此,第一坐标应该是西南地区的协调和第二坐标应为东北坐标。在你的例子中,你以相反的顺序定义边界NE | SW。只是交换值范围参数,你将有预期的结果“8670科克赛德,比利时(地点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

我希望这有助于!

+0

这有助于很多,因为它看起来像我完全监督坐标的顺序。 (这导致我另一个“问题”,从我的应用程序的API调用给出了另一个结果,然后当我采取相同的调用(从我的应用程序打印API调用字符串,所以它的100%相同的调用)。但这两个位置都在边界,所以它没有错,只是奇怪从我的应用程序调用给出了另一个结果 – nbar