我从CLLocationManager和MKMapView获取用户的位置。我应该使用哪一个来设置地图的中心坐标?
此外,模拟器中的两种方法的答案不同。 CLLocationManager返回正确的位置,而MKMapview的didUpdateUserLocation返回cupertino中的Apple办公室。
答案 0 :(得分:2)
在使用地图时我会使用MapKit位置。
地图例程旨在用于处理地图;而CoreLocation例程无论地图如何都可以使用。 MapKit将报告影响地图的位置更改(如果showUserLocation为YES或跟踪模式为MKUserTrackingModeFollowWithHeading,则调用didUpdateUserLocation)。 CoreLocation的服务能够在应用程序处于后台时报告更改。
最重要的是你应该使用适合你所做的选项。在我的应用程序中,我使用两种服务:显示地图时使用MapKit,每当地图未显示或应用程序背景时使用CoreLocation。
有趣的是,自iOS 5发布以来,模拟器支持多种位置选项;查看模拟器应用程序的Debug菜单,我还在https://stackoverflow.com/a/8175468/338468处描述了其中一些选项。
答案 1 :(得分:0)
我使用CLLocationManager
,正是因为它集中于1个无限循环Dr.它还为您提供了更多选项,您可以使用startMonitoringSignificantChanges ......等。
答案 2 :(得分:0)
如果您正在处理中国大陆的地点,我会推荐MapKit位置。它为您处理GPS偏移的计算(由于国家安全原因而由法律添加)。有关此问题的更多信息,请访问https://en.wikipedia.org/wiki/Restrictions_on_geographic_data_in_China