yandex / mapkit-ios-demo

MapKit iOS demo
Other
84 stars 27 forks source link

Как мне удалять с карты только полилинии, не трогая остальные объекты? #226

Closed calibrator33 closed 8 months ago

calibrator33 commented 8 months ago

Я рисую при поступлении новых координат полилинию трека, но перед этим, хочу удалить ранее созданную полилинию и вместо неё создать новую, более длинную (не поверх старой). Как при этом удалить только полилинии, не трогая метки и другие объекты? Проблема в том, что mapObjects.clear() удаляет ВСЕ объекты.

extension ViewController: CLLocationManagerDelegate {
   func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
***
   //...... Здесь формируется растущий массив точек полилинии (не показано)
***
     let mapObjects = mapView.mapWindow.map.mapObjects
     mapObjects.clear()
     let polyline = mapObjects.addPolyline(with: YMKPolyline(points: polylinePoints))
  }
}
YandexMapKit commented 8 months ago

У PolylineMapObject есть метод hide, который позволяет скрыть часть маршрута.

2024-03-12 15:37:24, calibrator33 devnull@yandex.ru:

Я рисую при поступлении новых координат полилинию трека, затем, хочу удалить старые полилинии и построить новую, более длинную. Как при этом удалить только полилинии, не трогая метки и другие объекты? Проблема в том, что mapObjects.clear() удаляет ВСЕ объекты. Можно ли полилинии собирать в отдельную коллекцию объектов и как это делается? Или полилинию можно удалить как-то ещё?

let mapObjects = mapView.mapWindow.map.mapObjects
mapObjects.clear()
let polyline = mapObjects.addPolyline(with: YMKPolyline(points: polylinePoints))