目标C:如何列出具有最近地理位置的位置集

时间:2011-05-06 05:51:53

标签: objective-c ios geolocation geocoding

我编制了一份包含纬度和经度信息的地点列表。我可以根据当前位置检查过滤和填充表格和mapview中“最近”地理位置列表的最佳方法是什么? (或用户输入的目的地)。还有可能指出我感兴趣的半径是多少?例如只选择离我所在地5公里范围内所有最近的书店

感谢您对此的建议

Zhen Hoe

3 个答案:

答案 0 :(得分:4)

也许我错过了什么,但为什么不把你的位置添加到mapView,并将地图置于用户当前位置或他们想要的位置? MapKit将为您完成所有计算,并仅显示靠近中心的计算。用户可以通过放大和缩小来设置自己的半径。 MapKit针对此目的进行了高度优化,您可以实时看到“针脚下雨”。

更新: 您也可以采用其他方式:在地图上注释后,您可以在地图中查询可见区域中的注释:

- (NSSet *)annotationsInMapRect:(MKMapRect)mapRect

来自文档:

  

此方法提供了一种快速检索地图特定部分中的注释对象的方法。这个方法比自己在注释属性中对对象进行线性搜索要快得多

答案 1 :(得分:3)

答案 2 :(得分:1)

haversine formula经常用于导航以计算坐标之间的距离。 This是用于距离计算的相当不错的资源,甚至还有针对hasrsine的代码示例(尽管它是在Javascript中)。

如果您的位置列表相对较小(数百,甚至),您可以只迭代整个列表并计算每个地点与当前位置之间的距离。