Как сосредоточить свое текущее местоположение в MKMapView?
Я показываю current location
в MKMapView
, используя showUserLocation
enable. Я также хочу центрировать mapview
на текущее местоположение пользователя, а также на увеличенную карту местоположения. Пожалуйста, помогите мне в этом, так как я не получаю никакой помощи от других подобных вопросов в stackoverflow.
Мой код ниже:
- (void)viewDidLoad {
[super viewDidLoad];
[mapView setMapType:MKMapTypeStandard];
[mapView setZoomEnabled:YES];
[mapView setScrollEnabled:YES];
[mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES];
[mapView setDelegate:self];
}
Ответы
Ответ 1
Для центрирования местоположения пользователя вы можете использовать следующий код:
[mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES];
Для масштабирования в специальных местах вы должны изучить, как регионы (MKCoordinateRegion
) подсчитываются и работают, подсчитывают ваши значения для региона и отображают его с помощью вызова:
[mapView setRegion:myRegion animated:YES];
Этот образец WorldCities показывает основы отображения области.
Ответ 2
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta = 0.2; // 0.0 is min value u van provide for zooming
span.longitudeDelta= 0.2;
CLLocationCoordinate2D location = [self addressLocation];
region.span=span;
region.center =location; // to locate to the center
if(addAnnotation != nil) {
[mapView removeAnnotation:addAnnotation];
[addAnnotation release];
addAnnotation = nil;
}
addAnnotation = [[AddressANnotation alloc] initWithCoordinate:location];
[mapView addAnnotation:addAnnotation];
[mapView setRegion:region animated:TRUE];
[mapView regionThatFits:region];
Это помогло мне показать позицию в центре вида карты.
Ответ 3
для MKMapView
self.mapView.showsUserLocation = YES;
self.mapView.userTrackingMode = MKUserTrackingModeFollow;
Ответ 4
-(void) removeZoom:(float)deltaValue
{
MKCoordinateRegion region;
region.center.latitude = self.locationManager.location.coordinate.latitude;
region.center.longitude = self.locationManager.location.coordinate.longitude;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
region.span.latitudeDelta = deltaValue;
region.span.longitudeDelta = deltaValue;
region = [mapViewSelf regionThatFits:region];
[mapViewSelf setRegion:region animated:YES];
[UIView commitAnimations];
}