Как увеличить масштаб в MGL mapView, чтобы представление охватывало один «объект» на карте - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть MGLPolyline на карте mapbox, и я хочу сделать так, чтобы, когда пользователь нажимает на линию, она центрируется вокруг этой линии и максимально увеличивает масштаб, так что отображается полная линия.В настоящее время я хорошо работаю с центрированием, но масштабирование работает случайным образом:

Я просто установил максимальное увеличение, но это, конечно, не то, что я хочу.

Ниже я хочу добавить масштаб:

    func mapView(_ mapView: MGLMapView, didSelect annotation: MGLAnnotation) {
         print("Tapped")
         mapView.setCenter(CLLocationCoordinate2D(latitude: annotation.coordinate.latitude, longitude: annotation.coordinate.longitude), zoomLevel: mapView.zoomLevel, animated: true)

         mapView.deselectAnnotation(annotation, animated: false)
    }

1 Ответ

0 голосов
/ 13 февраля 2019

MGLMapView на самом деле имеет запеченный метод специально для этой цели.Вы должны быть в состоянии реализовать функциональность, используя -showAnnotations:animated.Если вы хотите поиграть с отступом вокруг вашей полилинии, вы также можете использовать showAnnotations:edgePadding:animated разновидность метода.

Это будет выглядеть следующим образом:

 func mapView(_ mapView: MGLMapView, didSelect annotation: MGLAnnotation) {        
    mapView.showAnnotations(pointAnnotations, animated: true)
}
...