MapKit, MKMapView - Как сместить маркер местоположения пользователя для userTrackingMode MKUserTrackingModeFollow - PullRequest
0 голосов
/ 31 августа 2018

У меня есть реализация, где MKMapView userTrackingMode имеет значение MKUserTrackingModeFollow. Это прекрасно работает, и текущее местоположение пользователя также настроено для показа, используя setShowsUserLocation.

Когда пользователь перемещает маркер usersLocation на карте, он остается в центре экрана, и карта перемещается.

Я хочу перенастроить местоположение пользователя, чтобы оно находилось внизу экрана, а не в центре экрана, нажав кнопку и изменив смещение во время выполнения.

Код ниже не работает. Он выдает правильное смещение, а маркер местоположения пользователя располагается со смещением внизу экрана. Однако после этой точки маркер начинает перемещаться по экрану, и mapView остается неподвижным. (Я хочу, чтобы перемещался mapView, а не маркер местоположения пользователя)

-(CLLocationCoordinate2D)reCenter:(CLLocationCoordinate2D)coordinate  {

// current center
CGPoint point = [self.mapView convertCoordinate:coordinate toPointToView:self.mapView];
NSLog(@"Ang oldPoint %f:%f",point.x, point.y);

// calc offset
NSLog(@"Ang using offset:%f",self.offset);
CGPoint offset = {point.x, point.y + self.offset};

// recenter the map
CLLocationCoordinate2D coord = [self.mapView convertPoint:offset
                                     toCoordinateFromView:self.mapView];

// orientate map to the new coordinate
CGPoint newPoint = [self.mapView convertCoordinate:coord toPointToView:self.mapView];
NSLog(@"Ang newPoint %f:%f",newPoint.x, newPoint.y);
return coord;
} 

.. * .. фрагмент 1014 *

// snippet
centerCoord = [self reCenter:self.userCoordinate];
[self.mapView setCenterCoordinate:centerCoord animated:NO];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...