iOS установила поворот MKMapView на направление камеры вокруг точки привязки

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

Моя проблема, однако, заключается в установке точки привязки на карте в широте / долготе, вокруг которой будет вращаться карта. С помощью этого метода я могу установить желаемую точку в нижней части моей карты:

-(void)setMapCenterFromLocation:(CLLocationCoordinate2D)location {
    MKCoordinateRegion oldRegion = [self.mapView regionThatFits:MKCoordinateRegionMakeWithDistance(location, 10000, 10000)];
    CLLocationCoordinate2D centerPointOfOldRegion = oldRegion.center;

    CLLocationCoordinate2D centerPointOfNewRegion = CLLocationCoordinate2DMake(centerPointOfOldRegion.latitude + oldRegion.span.latitudeDelta / 2.0, centerPointOfOldRegion.longitude);

    MKCoordinateRegion newRegion = MKCoordinateRegionMake(centerPointOfNewRegion, oldRegion.span);

    [self.mapView setRegion:newRegion animated:YES];
}

И я могу повернуть карту с помощью:

- (void)magneticDirectionChanged:(NSNotification *)notification {
    CLHeading *heading = (CLHeading *)[[notification userInfo] valueForKey:@"heading"];

    CLLocationDirection newDirection = heading.trueHeading;

    self.currentHeading = (int)newDirection;

    [self.mapView.camera setHeading:self.currentHeading];
}

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

Как сохранить конкретную точку в нижнем центре карты при программном вращении карты или изменении ее размера?

Изменить: решение, я полагаю, было бы удвоить высоту карты, а затем скрыть нижнюю половину карты от видимого. Как это могло быть достигнуто?

Ответы на вопрос(1)

Ваш ответ на вопрос