如何检查其中一个位置是否在预定距离内 - Google Maps API

时间:2017-04-05 12:01:46

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

我会尽量简明扼要。

我的数据库中有1000个定点地理位置(英国邮政编码)。

我有一位可以在英国任何地方的用户,他希望执行一项归结为以下内容的操作:

我在[当前位置] - 显示距离我5英里范围内的所有邮政编码(来自数据库)。

到目前为止,我能想到的唯一方法是在我的数据库中针对Google Maps API运行每个邮政编码与用户的当前位置,将所有结果粘贴到一个数组中,然后仅显示距离为低于定义的搜索半径(例如5英里)。

我认为必须有更好的方法来做到这一点。每次用户查询应用程序时,我都不想进行1000多次Api调用。

2 个答案:

答案 0 :(得分:0)

您可以下载Zip代码及其坐标作为csv文件,例如来自geonames
然后在数据框中读取它们并应用vincenty函数以获得到达您的点的距离 之后,您只需使用最大半径进行过滤。

答案 1 :(得分:0)

通常情况下,即使昨晚我正在考虑这个问题几个小时,我在发布这个问题后立即找到了解决方案。

我可以做的是将我的位置直接添加到Google地图中,并使用唯一的标识符标记它们,只有我的应用才能看到。

然后,当我(或用户)正在搜索时,我会将其位置,搜索范围和过滤结果传入API调用我的唯一地点ID:

https://developers.google.com/places/web-service/add-place