根据用户的当前位置查询位置数据库

时间:2014-07-07 03:17:50

标签: javascript python mysql html5 geolocation

我有一个位置数据库,其中两个字段是经度和纬度。当用户到达索引页面时,我想要检索它们的位置,然后在距离用户一定距离半径内获得数据库内的每个点。

到目前为止,我认为我可以尝试测量数据库中每个点的距离,但如果我有很多条目,可能需要一段时间。

我使用Python构建我的应用,但我使用Javascript和Google Maps API来检索位置。

有谁知道我应该用它做什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您的距离将转换为您可以添加的某个角度,并减去您的经度和纬度。然后,您可以根据该范围过滤数据库,即找到经度为+ - 角度等的元素。我希望这应该是合理的。

请注意,如果你有[lat_min,lat_max]和[long_min,long_max],你绘制的是一个矩形而不是一个圆圈,可能会或可能不适合你。如果您需要更高的准确度,则可以开始计算这个较小子集的实际距离,该距离应该比计算数据库中每个点的距离更快。

修改

@dandavis让我看...... MySQL和MongoDB似乎都支持地理空间查询,这非常酷! Here's一个关于MySQL功能的博客,其中包括开发站点的link。可以找到Mongodb的地理空间查询文档here

答案 1 :(得分:1)

如果您在关系数据库中寻找基于位置的查询,与mysql相比,postgresql更加成熟。

如果你对NoSQL感到满意的话,Mongodb的远程查询非常好。

参考文献:

Mongo's geospacial indexes

Mysql spatial data types docs