地理位置:按邻近度过滤

Posted

技术标签:

【中文标题】地理位置:按邻近度过滤【英文标题】:Geolocation: filter by proximity 【发布时间】:2013-01-24 01:31:32 【问题描述】:

我有一份来自世界各地的 JSON 格式的用户列表。列表中的每个项目都有一个位置信息。

    如何将这些位置转换为正确的经度和纬度? 如何过滤这些位置以仅获取当前位置 50 英里范围内的位置(假设我知道如何获取当前经度和纬度)。

有我可以使用的服务吗?

我真的需要将这些位置转换为经度和纬度吗?基本上我想做的就是找到距离当前位置 50 英里的位置并忽略其他位置。

【问题讨论】:

【参考方案1】:

您可以为此使用免费的geonames.org webservice。有一个search method 可用,您可以在其中提供位置名称并获取任何位置的纬度和经度。请注意,可能有多个具有相同名称的位置可用。请参阅此处的示例:http://api.geonames.org/searchJSON?q=london&maxRows=10&username=demo

对于第二个问题,有多种方法。 this question 中概述了基本算法,但可能最简单的方法是使用 Google Maps API(参见 this question 的第二个答案)。

【讨论】:

【参考方案2】:

我过去做过这件事,因为这不是仅使用 javascript 和 JSON 就能完成的事情。最好的方法是创建一个使用空间Point 命令的 mysql 数据库。如果您想要 JavaScript 和 JSON,那么您必须创建一个 Web 服务(例如使用 php)来管理 JavaScript 和 MySQL 数据库之间的查询。一开始似乎令人生畏,但一旦你掌握了它,它就会很酷。我推荐reading this site 了解基础知识。

【讨论】:

非常感谢,我希望 node.js 有一些 nosql 解决方案?无论如何要利用这个docs.mongodb.org/manual/core/geospatial-indexes 似乎是在 MongoDB 中做类似事情的一种新方法,但我总是更喜欢使用更稳定和受支持的 MySQL 方法。也许 MongoDB 会成为一个标准,但它还没有。祝你好运!

以上是关于地理位置:按邻近度过滤的主要内容,如果未能解决你的问题,请参考以下文章

表示位置和基于邻近度查询的有效方法?

黑莓缓存反向地理编码地址信息与邻近度

如何使用 R 使用地理邻近度填充缺失的分类值?

我可以使用一个暴露的过滤器来过滤不同页面上的多个块视图吗?

保存在服务器上的位置的接近警报

如何在城市周围添加半径/邻近度以估算流量(Google Adwords)?