如何更新MKPolyline/MKPolylineView?

adr*_*aan 15 iphone objective-c mapkit ios4

我正在尝试创建一个定期更新的折线(MKPolyline)叠加层,以模拟对象的移动.我可以通过删除旧的叠加层,更新折线并再次添加叠加层来实现此目的,但这会导致闪烁.

对于一个点注释(MKPointAnnotation),你可以简单地改变其坐标,视图将无需拆卸和重新添加注释,可以自动地更新顺利.

这也可能以某种方式覆盖?

Ato*_*iot 15

是的,您必须添加一个额外的叠加层,其中包含从您的上一个点到下一个点的点集.一旦用你的点创建MKPolyline,你就无法在绘制MKPolylineView时更改它而不删除旧的并添加新创建的MKPolyline.

您可以使用所有点(包括新点)创建新的折线视图,并将其添加到地图中,但不要删除旧的.然后一旦添加新的,你可以删除较旧的较短的一个.它可能不是很好实现,但它应该摆脱更新闪烁.你可以用标签来区分旧的和新的.也许是一个点数,因为标签可以工作.


Sor*_*ohi 10

所有MapKit叠加都是不可变的,因此为了获得可变性,您需要构建自定义叠加层并仅重绘需要更新的区域.

您可以在Apple的Breadcrumb示例应用程序示例中找到示例. 面包屑链接