地理位置:按邻近度过滤
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 会成为一个标准,但它还没有。祝你好运!以上是关于地理位置:按邻近度过滤的主要内容,如果未能解决你的问题,请参考以下文章