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

2024-04-27 00:31:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我使用Python构建我的应用程序,但是我使用Javascript和googlemapsapi来检索位置。在

有人知道我应该用什么来做这个吗?在

谢谢你的帮助!在


Tags: 用户数据库应用程序距离半径条目javascript纬度
2条回答

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

如果您熟悉NoSQL,Mongodb的goespactical查询非常好。在

参考文献:

Mongo's geospacial indexes

Mysql spatial data types docs

你的距离会转化成一个角度,你可以对经度和纬度进行加减。然后你可以根据这个范围过滤你的数据库,即找到经度是+-角度的元素,等等。我希望这应该是合理的快速。在

注意,如果你有[lat_min,lat_max]和[long_min,long_max],你画的是一个长方形,而不是一个圆形,这可能对你来说不合适。如果您需要更高的精度,您可以开始计算这个较小子集的实际距离,这仍然比计算数据库中每个点的距离要快。在

编辑

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

相关问题 更多 >