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

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

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

有我可以使用的服务吗?

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

【问题讨论】:

    标签: javascript json geolocation geocoding


    【解决方案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 会成为一个标准,但它还没有。祝你好运!
      猜你喜欢
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 2013-11-27
      • 2019-08-31
      • 1970-01-01
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      相关资源
      最近更新 更多