SWIFT - проблема ротации MKMapRect
Я пытаюсь изменить положение моего MKMapView, чтобы отобразить текущую выбранную аннотацию внизу представления. Проблема, с которой я сталкиваюсь, заключается в том, что на карте есть поворот. Он будет только вращаться обратно в положение по умолчанию, затем останавливаться и не перемещать mapView в правильное новое положение. Если у mapView нет вращения, он работает нормально. Вроде сложно объяснить.
вот код, который используется для изменения положения mapView
//pinCoord are the coordinates from the selected annotation
let mapRect = myMap.visibleMapRect
let point = MKMapPointForCoordinate(pinCoord)
let nPx = point.x - mapRect.size.width*0.5
let nPy = point.y - mapRect.size.height*0.95
let newMapRect = MKMapRectMake(nPx, nPy, mapRect.size.width, mapRect.size.height)
myMap.setVisibleMapRect(newMapRect, animated: true)
Вот предыдущий код, который я пробовал, который отлично работал при любом повороте. Но были проблемы, когда mapView имел какой-либо наклон к нему. Поэтому я решил использовать приведенный выше код (хотя это будет проще).
let pinCGPoint = myMap.convertCoordinate(pinCoord, toPointToView: self.view)
let currentCenterPoint = myMap.convertCoordinate(myMap.centerCoordinate, toPointToView: self.view)
//create new y center point
let point2y = view.frame.height - pinCGPoint.y
let nYp = currentCenterPoint.y - point2y
//create new x center point
let c2pX = currentCenterPoint.x - pinCGPoint.x
let pointX = view.frame.width*0.5 - pinCGPoint.x
let nXp = currentCenterPoint.x - pointX
let newCenter = CGPointMake(nXp, nYp)
let coord2 = myMap.convertPoint(newCenter, toCoordinateFromView: self.view)
myMap.setCenterCoordinate(coord2, animated: true)
Любая помощь будет отличной, спасибо.