iphone应用程序:有关CLLocationmanager与MKMapView(显示当前用户位置)之间的交互的问题

| 在我的iPhone应用程序中,我具有以下逻辑: 启动CLLocationManger(用户可以将精确度和距离过滤器参数提供给locationmanager,因为在我的情况下不需要最高精确度,所以100-300米就可以了,我想为此节省电池)。 通过LocationManager获得GPS修复后(并且仅在获得此修复后),我创建并显示地图。 CLLocationManager和MKmapView都是同一ViewController的一部分。为了显示当前位置,我将mapView.showsUserLocation:YES设置为显示蓝点。我启动的locationManager仍然保持工作,获取GPS更新。 苹果文档在MKMapView showsUserUser上这样说: 将此属性设置为YES会导致地图视图使用“核心位置”框架来查找当前位置。只要此属性为“是”,地图视图就会继续跟踪用户的位置并定期进行更新。 没有关于MKMapView当前位置使用的精度或距离过滤器的信息。在我看来,这时,我已经启动了locationManager和mapView自己的locationManager都在更新位置! 还记得我想通过设置精度和距离过滤器来节省一些电池吗?这些参数是否会受到mapView的locationManager的尊重? 另外,这两个位置管理器是否会彼此同步?我更新了地图,以使用我原来的locationManager获得的新GPS坐标对中。但我也希望蓝点在地图中心可见。由于我将mapView的showsUserLocation设置为TRUE,因此每次也会更新吗? 任何对此有线索的人,我将不胜感激。     
已邀请:
        我的理解(基于我所看到的,而不是基于文档,因为我似乎无法找到涵盖此内容的任何文档)是
showsUserLocation
属性导致mapView使用精度最高的设置(1m距离过滤器,准确性),然后在该位置管理器返回更新时更新其蓝色圆圈注释视图。它还根据位置更新的水平精度更新圆形叠加层。我相信
CLLocationManager
的实例与您可能会开始的任何实例都是分开的,因为我还并行运行
CLLocationManager
,并且看不到地图视图当前位置更新的任何干扰。 因此,如果您不希望
MKMapView
运行其自己的高精度位置管理器实例,请禁用
showsUserLocation
,并根据
CLLocationManager
的位置更新来创建并手动更新自己的当前位置
MKAnnotationView
。您还可以根据需要缩放到新更新。 我知道这本质上是在重新发明轮子,但是我相信这是基于Apple提供的工具获得所需功能的唯一方法。如果没有其他人知道,请加入,因为我也有兴趣。     

要回复问题请先登录注册