我在地图上有两条折线:
var polylineRoute : MKGeodesicpolyline! var polylineFlight : MKGeodesicpolyline!
我为每个人分配了一个标题,并将它们添加到地图中(使用不同的方法):
let polyline = MKGeodesicpolyline(coordinates: &routeCoordinates,count: routeCoordinates.count) polyline.title = "route" self.mapView.addOverlay(polyline) self.polylineRoute = polyline
和
let polyline = MKGeodesicpolyline(coordinates: &routeCoordinates,count: routeCoordinates.count) polyline.title = "flight" self.mapView.addOverlay(polyline) self.polylineFlight = polyline
现在,当触发特定操作时,我只想删除航班覆盖,并保持路线覆盖不变.
这根本不起作用:
func removeFlightPath() { self.mapView.removeOverlay(self.polylineFlight) self.polylineFlight = nil }
以下工作但删除了两条折线:
func removeFlightPath() { var overlays = mapView.overlays mapView.removeOverlays(overlays) }
有没有办法只删除一条折线?我搜索了论坛,只有一个回复说可以使用标题.但是,它没有具体说明如何完成.
非常感谢!
编辑:
这解决了这个问题:
func removeFlightPath() { if self.polylineFlight != nil { // Overlays that must be removed from the map var overlaysToRemove = [MKOverlay]() // All overlays on the map let overlays = self.mapView.overlays for overlay in overlays { if overlay.title! == "flight" { overlaysToRemove.append(overlay) } } self.mapView.removeOverlays(overlaysToRemove) } }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。