在iPhone找到最近的地方

时间:2009-10-10 09:40:44

标签: iphone geolocation core-location

大家好,所有的iPhone开发者,

我正在开发一个iPhone应用程序。

在这个应用程序中,我想找到与我从iPhone设备上获得的当前CLLocation相关的最近地方。

我目前在不同的服务器上有一个数据库。

我通过.NET Web服务访问它。

在用于测试目的的数据库中,我创建了一些记录,其中包含我从谷歌地图中获取的纬度和经度字段。

现在,我的问题是:

如何确定数据库中的位置是否接近当前位置(在一定的千米范围内)?

我有以下选项:

  • 如果

    • 我必须得到一个基于地址和currentLocation.latitude和 currentLocation.longitude并传递它 到我比较它的服务 可用的地址(我有 阅读某处“地理编码”)。

    否则如果

    • 我可以将纬度和经度直接传递给网络服务 并做(我想要什么类型的一些 一些建议,如果有人知道的话 在那里计算并回馈 最近的地方数据回到iPhone。

    其他

    或者这个解决方案是完全的 逻辑,如果有人有解决方案 然后重新编写它或教程 将是有用的。

1 个答案:

答案 0 :(得分:3)

确实,有很多反向地理编码服务(Google,Yahoo!,GeoNames等)可以从一对/偶然转换为街道地址。

但是如果你的数据库中已经有lat / lon对,那么我认为你不需要转换为街道地址。如果您的所有点都由纬度/经度表示,则计算距离会更容易,您可以使用Haversine formula

事实上,如果您的数据库本身支持空间类型(例如,MS SQL 2008 appears to),那么您可以将该计算推送到数据库层而不必担心它。这对我来说似乎是正确的方法:让你的iPhone应用程序向你的网络服务发送lat / lon并让数据库计算最近的兴趣点。