大家好,所有的iPhone开发者,
我正在开发一个iPhone应用程序。
在这个应用程序中,我想找到与我从iPhone设备上获得的当前CLLocation相关的最近地方。
我目前在不同的服务器上有一个数据库。
我通过.NET Web服务访问它。
在用于测试目的的数据库中,我创建了一些记录,其中包含我从谷歌地图中获取的纬度和经度字段。
现在,我的问题是:
如何确定数据库中的位置是否接近当前位置(在一定的千米范围内)?
我有以下选项:
如果
否则如果
其他
或者这个解决方案是完全的 逻辑,如果有人有解决方案 然后重新编写它或教程 将是有用的。
答案 0 :(得分:3)
确实,有很多反向地理编码服务(Google,Yahoo!,GeoNames等)可以从一对/偶然转换为街道地址。
但是如果你的数据库中已经有lat / lon对,那么我认为你不需要转换为街道地址。如果您的所有点都由纬度/经度表示,则计算距离会更容易,您可以使用Haversine formula。
事实上,如果您的数据库本身支持空间类型(例如,MS SQL 2008 appears to),那么您可以将该计算推送到数据库层而不必担心它。这对我来说似乎是正确的方法:让你的iPhone应用程序向你的网络服务发送lat / lon并让数据库计算最近的兴趣点。