Я пытаюсь показать одно место назначения для двух или более разных местоположений контактов, но проблема в том, что когда я меняю местоположение вывода, маршруты не сбрасываются. Например, когда я начал приложение и установил местоположение, он показывает маршрут, но когда я добавляю или изменяю местоположение на карте, предыдущий маршрут не исчезает.Как показать полилинии двух или более разных контактов для одного пункта назначения?
Первый взгляд Directions http://i.hizliresim.com/kGOvy9.png
Второй Вид Directions http://i.hizliresim.com/pX6Ppn.png
// Добавление или изменение местоположения назначения штифтом
@IBAction func longpress(_ sender: UILongPressGestureRecognizer) {
let location = sender.location(in: self.map)
let locCoordinate = self.map.convert(location, toCoordinateFrom: self.map)
annotation.coordinate = locCoordinate
annotation.title = "Store"
annotation.subtitle = "Location of Store"
self.map.addAnnotation(annotation)
annotationLat = annotation.coordinate.latitude
annotationLong = annotation.coordinate.longitude
for item in arr {
let dic = item as? [String: Any]
pinDestinations(lat: dic?["lat"] as! CLLocationDegrees, long: dic?["long"] as! CLLocationDegrees)
}
let directions = MKDirections(request: request)
directions.calculate { [unowned self] response, error in
guard let unwrappedResponse = response else { return }
for route in unwrappedResponse.routes {
// I tried here remove previous polyline while i'm adding new one
self.map.removeOverlays([route.polyline])
}
}
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
let renderer = MKPolylineRenderer(polyline: overlay as! MKPolyline)
renderer.strokeColor = UIColor.blue
renderer.lineWidth = 1
return renderer
} }
Спасибо, сэр, это отчасти сработало! Когда я пытаюсь сделать это с двумя и более контактами, он работает неправильно. Он показывает одну полилинию для одного из контактов. – GreatCornholio
Да, я написал его только для одного набора направлений между двумя точками, но идея такая же, независимо от того, сколько у вас есть. Просто сохраните свои соответствующие полилинии в каком-либо свойстве, которое вы можете легко удалить с карты, прежде чем пересчитывать направления и заменять полилинии новыми. Я не уверен, знаю ли я вашу модель достаточно хорошо, чтобы сообщить вам о ваших подробностях (например, я мог бы представить, а не простой массив «MKPolyline», у вас может быть массив массивов или словарь массивов и как-то убедиться, что вы удаляете и заменяете правильный массив), но, надеюсь, вы получите основную идею. – Rob