2010-02-23 63 views
17

我想使用MKMapView来显示用户当前位置使用默认呼吸蓝色引脚,我想同时记录用户移动。当我们启用它来显示用户位置时,有什么方法可以使用GPS管理器(不知道这是否是CLLocationManager)MKMapView使用的吗?MKMapView和CLLocationManager

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

我已经探讨了以下思路没有成功:

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

有没有人有任何想法,我可以如何实现这一目标,仍然受益于蓝色的针脚或是我唯一的解决方案使用CLLocationManager并创建自己的PIN?

回答

18

CLLocationManager跨所有实例使用相同的数据。 MKMapView内部使用CLLocationManager's数据。这表示解决方案做你想做的事情就是让MKMapViewshowUserLocation:做它自己的事情。同时,创建CLLocationManager及其代表的实例。

代表消息会给你MKMapView's蓝色引脚的GPS坐标位置。一切都将彼此同步。

+1

感谢Giao。我想“CLLocationManager跨所有实例使用相同的数据”是我需要听到的;) – Patrice 2010-02-23 22:42:21

+1

+1给我温暖的模糊 – scord 2012-03-13 05:09:04

+3

你确定CLLocationManager跨所有实例使用相同的数据吗?如果是这样的话,Apple会不会让它像UIApplication一样成为单身人士? – 2012-09-19 03:44:24

相关问题