我会尽量简明扼要。
我的数据库中有1000个定点地理位置(英国邮政编码)。
我有一位可以在英国任何地方的用户,他希望执行一项归结为以下内容的操作:
我在[当前位置] - 显示距离我5英里范围内的所有邮政编码(来自数据库)。
到目前为止,我能想到的唯一方法是在我的数据库中针对Google Maps API运行每个邮政编码与用户的当前位置,将所有结果粘贴到一个数组中,然后仅显示距离为低于定义的搜索半径(例如5英里)。
我认为必须有更好的方法来做到这一点。每次用户查询应用程序时,我都不想进行1000多次Api调用。
答案 0 :(得分:0)
您可以下载Zip代码及其坐标作为csv文件,例如来自geonames。
然后在数据框中读取它们并应用vincenty函数以获得到达您的点的距离
之后,您只需使用最大半径进行过滤。
答案 1 :(得分:0)
通常情况下,即使昨晚我正在考虑这个问题几个小时,我在发布这个问题后立即找到了解决方案。
我可以做的是将我的位置直接添加到Google地图中,并使用唯一的标识符标记它们,只有我的应用才能看到。
然后,当我(或用户)正在搜索时,我会将其位置,搜索范围和过滤结果传入API调用我的唯一地点ID: