Iphone увеличить до местоположения пользователя на mapkit
Я использую набор карт и показываю местоположение пользователя, используя "showUserLocation"
Я использую следующий код для увеличения местоположения пользователя, но не масштабирования. Его масштабирование до некоторого местоположения в Африке, хотя местоположение пользователя на карте отображается правильно.
MKCoordinateRegion newRegion;
MKUserLocation* usrLocation = mapView.userLocation;
newRegion.center.latitude = usrLocation.location.coordinate.latitude;
newRegion.center.longitude = usrLocation.location.coordinate.longitude;
newRegion.span.latitudeDelta = 20.0;
newRegion.span.longitudeDelta = 28.0;
[self.mapView setRegion:newRegion animated:YES];
Почему правильное отображение местоположения пользователя и неправильное масштабирование. Может кто-нибудь исправить меня, пожалуйста?
Ответы
Ответ 1
mapView.userLocation устанавливается на место у берегов Африки (0,0) при первом экземпляре. В результате я делаю что-то вроде следующего, что приводит к увеличению масштаба при появлении аннотации. Конечно, это просто пример:
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views {
for(MKAnnotationView *annotationView in views) {
if(annotationView.annotation == mv.userLocation) {
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta=0.1;
span.longitudeDelta=0.1;
CLLocationCoordinate2D location=mv.userLocation.coordinate;
region.span=span;
region.center=location;
[mv setRegion:region animated:TRUE];
[mv regionThatFits:region];
}
}
}
Ответ 2
вы можете попробовать:
mapView.userTrackingMode=YES;
mapView.userTrackingMode=NO;
UserTrackingMode увеличит доступ к местоположению пользователя.
Ответ 3
Вы подтвердили, что местоположение, возвращаемое mapView.userLocation
, не равно 0, 0?