地理定位:按距离过滤

时间:2013-01-24 01:31:33

标签: javascript json geolocation geocoding

我有一个JSON格式的全球用户列表。列表中的每个项目都有一个位置信息。

  1. 如何将这些位置转换为适当的经度和纬度?
  2. 如何过滤这些位置以仅获取距当前位置50英里范围内的位置(假设我知道如何获得当前的经度和纬度)。
  3. 我可以使用服务吗?

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

我过去曾经这样做过,因为只有JavaScript才能做到这一点。 JSON。最好的方法是创建一个使用空间Point命令的MySQL数据库。如果你想要JavaScript& JSON,然后你必须创建一个web服务 - 例如使用PHP - 来管理JavaScript和...之间的查询。 MySQL数据库。起初看起来令人生畏,但是一旦掌握了它,它就会非常酷。我建议您reading this site了解基础知识。