I try write programmatically zoom based on setRegion method
func zoomMap(byFactor delta: Double) {
var region: MKCoordinateRegion = self.mapView.region
var span: MKCoordinateSpan = mapView.region.span
span.latitudeDelta *= delta
span.longitudeDelta *= delta
region.span = span
mapView.setRegion(region, animated: true)
}
I find two problems with it.
First problem
- when map is rotated,
setRegion
return map to north
I resolve it via camera.altitude
method
Second problem
- when mapView
userTrackingMode
property isfollow
and I programmatically zoom it after some seconds map returns its zooming state in defaultfollow
zooming. Approach "disable userTrackingMode -> zoom -> enable userTrackingMode" does not help.
When I zoom map via UI gesture userTrackingMode.follow
works normally. Is it iOS MKMapView bug?
Tested in iOS 10.