web-dev-qa-db-fra.com

Comment centrer ma position actuelle dans MKMapView?

Je montre le current location dans MKMapView en utilisant showUserLocation. Je souhaite également centrer la mapview sur la position actuelle de l'utilisateur ainsi que sur la carte agrandie. Aidez-moi, s'il vous plaît, à ce sujet, car je ne reçois aucune aide de la part de questions similaires sur stackoverflow.

Mon code est ci-dessous:

- (void)viewDidLoad {
  [super viewDidLoad];
  [mapView setMapType:MKMapTypeStandard];
  [mapView setZoomEnabled:YES];
  [mapView setScrollEnabled:YES];
  [mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES];
  [mapView setDelegate:self];
}
18
vipul

Pour centrer sur l'emplacement de l'utilisateur, vous pouvez utiliser le code suivant:

[mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES];

Pour effectuer un zoom sur des emplacements spéciaux, vous devez étudier le fonctionnement et le fonctionnement des régions (MKCoordinateRegion), compter vos valeurs pour la région et l'afficher à l'aide de l'appel:

[mapView setRegion:myRegion animated:YES];

Ce exemple de WorldCities montre les bases de l’affichage des régions.

50
Denis
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];

Cela m'a aidé à afficher la position au centre de la vue cartographique.

2
iamsult

pour MKMapView

self.mapView.showsUserLocation = YES;
self.mapView.userTrackingMode = MKUserTrackingModeFollow;
0
Baryon Lee
-(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];

}
0