我试图在用户路径之后在 MKMapView 上创建一条线。
我发现这个相当老的帖子,我正试图让它按照接受的答案中的解释工作:
Does anyone have any examples on how to create a path using MKOverlayPathView?
没有得到的是如何“提取”提到的 CLLocation 对象数组。现在我已经设置了 mapView setShowsUserLocations:YES,它更新了我的 Action 非常好,所以我想我可以以某种方式获取 CLLocations 对象,并不断地画线?
我现在还很喜欢 iOS,所以要温柔。
最佳答案
查看 Apple's BreadCrumb sample app 的源代码有关如何使用 MKOverlayView 绘制用户路径的示例。它完全符合您的要求,并且非常有效。这是一个很好的示例应用程序,用于在 iOS 中开始使用核心位置和 mapkit。
这个想法是有一个符合 MKOverlay 协议(protocol)的对象,该对象具有用户记录的坐标数组的属性。当用户记录一个新位置时,您将向该数组添加一个坐标。然后,您的 MKMapViewDelegate 负责为您的叠加层提供 MKOverlayView。然后,您的 MKOverlayView 类负责在用户记录的坐标数组中的点之间绘制线条。这发生在 MKOverlayView 的 drawMapRect:zoomScale:inContext
方法。请注意,您必须特别注意 drawMapRect:zoomScale:inContext
将被多个线程调用。如果您在添加新坐标时没有锁定 MKOverlay 的坐标数组,您几乎肯定会遇到崩溃。请参阅面包屑代码以有效地留住您drawMapRect
方法线程安全。一个效率较低但更简单的替代方法是不直接从您的 MKOverlayView 访问 MKOverlay 的数组,而是传递它的副本。
关于ios - MKMapView。在移动中创建路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18321388/