【发布时间】:2011-06-04 05:35:20
【问题描述】:
在我的 iPhone 应用中,我有以下逻辑:
启动 CLLocationManger(用户可以向 locationmanager 提供精度和距离过滤器参数,因为在我的情况下不需要最佳精度,100-300 米就可以了,我想节省电池电量) .
在 LocationManager 获得 GPS 定位后(并且仅在获得此定位时),我创建并显示地图。 CLLocationManager 和 MKmapView 都是同一个 ViewController 的一部分。为了显示当前位置,我设置了 mapView.showsUserLocation:YES,以显示蓝点。我启动的 locationManager 仍在继续工作,获取 GPS 更新。
Apple 文档在 MKMapView 显示用户位置上这么说:
将此属性设置为 YES 会导致地图视图使用核心位置框架来查找当前位置。只要此属性为 YES,地图视图就会继续跟踪用户的位置并定期更新。
没有关于 MKMapView 的当前位置使用哪种精度或距离过滤器的消息。在我看来,此时,我拥有自己启动的 locationManager 和 mapView 自己的 locationManager 都在更新位置!
还记得,我想通过设置精度和距离过滤器来节省一些电池吗? mapView 的 locationManager 会遵守这些参数吗?
另外,这两个位置管理器是否会彼此同步?我更新地图以使用我原来的 locationManager 获得的新 GPS 坐标居中。但我也希望蓝点在地图中心可见。由于我将 mapView 的 showsUserLocation 设置为 TRUE,它是否也会每次都更新?
如果有人对此有任何线索,我将不胜感激。
【问题讨论】:
标签: iphone gps mkmapview cllocationmanager