Сохранить масштаб при использовании проблемы mkmapcamera
Я новичок в разработке приложений IOS с Swift 3 и Xcode 8. В своем приложении я использую метод делегата regionDidChangeAnimated, чтобы держать zoomLevel в метрах с помощью mapView.region.span.latitudeDelta * 111.000.
Когда доступны новые данные о местоположении, я использую MKMapCamera, чтобы показать местоположение пользователя с параметром fromDistance = mapView.region.span.latitudeDelta * 111 000, предварительно рассчитанным и сохраненным в переменной экземпляра.
Проблема в том, что когда я увеличиваю или уменьшаю масштаб изображения не работает должным образом
Ниже опубликуйте немного кода:
func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
mapChangedFromUserInteraction = mapViewRegionDidChangeFromUserInteraction()
if (mapChangedFromUserInteraction) {
self.latitudineDelta = Float(mapView.region.span.latitudeDelta)
}
}
func mapViewRegionDidChangeFromUserInteraction() -> Bool {
let view = self.mapView.subviews[0]
if let gestureRecognizers = view.gestureRecognizers {
for recognizer in gestureRecognizers {
if(recognizer.state == UIGestureRecognizerState.ended)
{
return true
}
}
}
return false
}
fileprivate func centerMapOnLocation()
{
let coordinate = CLLocationCoordinate2D(latitude: self.latitude!,longitude: self.longitude!)
if (mapChangedFromUserInteraction == false)
{
let distance: CLLocationDistance = CLLocationDistance(Int(self.latitudineDelta * 111000))
self.camera = MKMapCamera(lookingAtCenter: coordinate,
fromDistance: distance,
pitch: pitch,
heading: self.heading)
self.mapView.setCamera(self.camera!, animated: isAnimated)
}
}