如何从纬度/经度获取附近的位置?

Posted

技术标签:

【中文标题】如何从纬度/经度获取附近的位置?【英文标题】:How to get nearby locations from latitude/longitude? 【发布时间】:2011-06-21 13:33:41 【问题描述】:

我在数据库(Sqlite3)中存储了不同位置的各种纬度和经度。现在我有当前的纬度和经度。我怎样才能知道离当前位置最近的位置。 请提出建议。

【问题讨论】:

究竟什么是“位置”?纬度/经度对?街道地址?附近的店名?我的意思是,可以通过将 .00000000001 添加到纬度来获得非常接近纬度/经度对的位置。 【参考方案1】:

我假设您说的是反向地理编码。为此提供了一个 Apple 类,MKReverseGeocoder。也有很多关于此的操作方法讨论,例如here、here 等。

【讨论】:

【参考方案2】:

语法可能需要更改,但请查看this question that uses mysql。本质上,您想创建一个以当前点为中心的矩形(很可能)。使用这个新框的边界,您可以运行 SQL 查询。

【讨论】:

【参考方案3】:

我敢说@Kongress 的回答是这里最好的 - 但我只是要把这个扔进戒指,因为这个概念本身就是我以前处理过的一个。

我不能告诉你如何在 Objective-c 中构建一个,但是对于我们的经纬度反向查找,我从我们数据库中的经纬度 (> 250,000) 中构建了一个 K-DTree,它给了我们低于 100 - 在桌面硬件上进行纳秒查找。在 iphone 上它仍然可能非常快 - 内存可能是一个问题,因为您确实需要能够将实例缓存在内存中,以便真正有用;构建它需要一点时间(我们的构建大约需要 1.5 秒)。

只是一个想法。

【讨论】:

感谢重播。我找到了以下查询的解决方案,但 ACOS 函数在 sqlite3 中不起作用。选择 Lat, Lon, acos(sin($lat)*sin(radians(Lat)) + cos($lat)*cos(radians(Lat) )cos(radians(Lon)-$lon))$R As dist From MyTable ORDER BY dist DESC

以上是关于如何从纬度/经度获取附近的位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何在弹性搜索中使用纬度经度搜索位置附近的区域

从 lastKnownLocation() 获取经度和纬度?

K-means 如何确定特定纬度和经度附近的大多数位置 [关闭]

给定两个位置,如何从谷歌地图获取所有纬度和经度

如何使用纬度和经度坐标从某个位置获取时区?

如何使用纬度和经度坐标从某个位置获取时区?