gpt4 book ai didi

java - 检索最接近用户给定的地理点(纬度/经度)的最佳方法,我有存储在 MySQL 数据库中的所有地理点的列表

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:00 26 4
gpt4 key购买 nike

我正在尝试创建一个移动应用程序,它捕获用户当前的地理点(纬度/经度)并将其发送到网络服务,网络服务从一长串列表中返回最近的 5 个地理点。我不清楚的是如何获得最近的 5 个地理点(我最初的方法是,从数据库中获取所有点,然后计算每个地理点与用户地理点之间的距离,并提供离他最近的 5 个)不是那么昂贵的处理明智。关于我该怎么做的任何建议?如果需要更多信息,请告诉我,以便我重新发布。

最佳答案

有多种方法可以做到这一点,您需要将其优化到何种程度可能取决于您拥有的点数(因此它可以很好地扩展)。

对于空间查询,您应该使用支持空间索引的数据库,这样可以加快搜索速度。 PostGIS 就是一个例子,MySQL 有 GIS 扩展 http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html .

这是 PostGIS 中 k 最近邻问题的示例解决方案 http://www.bostongis.com/?content_name=postgis_nearest_neighbor_generic

编辑:您还可以使用使用 geohashing 的技术(http://en.wikipedia.org/wiki/Geohash),但请务必仔细阅读本文中的限制。

关于java - 检索最接近用户给定的地理点(纬度/经度)的最佳方法,我有存储在 MySQL 数据库中的所有地理点的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com