17

我想使用 MKMapView 使用默认的蓝色呼吸针显示用户当前位置,并且我想同时记录用户运动。当我们启用它以显示用户位置时,有什么方法可以使用 MKMapView 使用的 GPS 管理器(不确定这是否是 CLLocationManager)?

我知道我可以创建自己的 CLLocationManager。但这感觉就像给我的应用程序增加了开销,我希望地图和我的跟踪保持同步。

我已经探索了以下想法但没有成功:

  • 使用并在字段[MKMapView showUserLocation:YES]上添加 KVO 。userLocation这不起作用,我想知道这是否是由于该userLocation字段是只读的。
  • 当请求用户位置的注释视图时,使用[MKMapView showUserLocation:YES]、创建和添加跟踪。MKMapViewDelegate这不起作用,因为注释视图显然只请求一次???
  • 使用 aCLLocationManager并尝试手动添加蓝色引脚。不幸的是,我没有在可用的引脚类型中找到蓝色引脚,因此我尝试手动创建用户注释但没有成功。

有谁知道我如何实现这一目标并且仍然从蓝色引脚中受益,或者是我使用 aCLLocationManager并创建自己的引脚的唯一解决方案?

4

1 回答 1

18

CLLocationManager在其所有实例中使用相同的数据。MKMapView在内部使用CLLocationManager's数据。也就是说,做你想做的事情的解决方案是MKMapViewshowUserLocation:. 同时,创建一个实例CLLocationManager及其委托。

代表消息将为您提供MKMapView's蓝色大头针的 GPS 坐标位置。一切都将彼此同步。

于 2010-02-23T16:08:47.507 回答