2010-02-01 22 views
5

I "m mit MapKit in meiner Anwendung und disaply den Standort des Nutzers mitabrufen UserLocation mit MapKit Koordinaten


[mapview setShowUserLocation:YES]; 

Ich möchte die region.center.latitude und region.center.longitude mit der Koordinate des setzen userLocation, wie es zu tun

Antwort

10

Hier ist meine Antwort, ich versuche, so etwas und seine Arbeits:


//inside my ViewDidLOad 
locManager = [[CLLocationManager alloc] init]; 
[locManager setDelegate:self]; 
[locManager setDesiredAccuracy:kCLLocationAccuracyBest]; 
[locManager startUpdatingLocation]; 

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
CLLocationCoordinate2D loc = [newLocation coordinate]; [maptView setCenterCoordiante:loc]; }
1

ich denke, das beantwortet Ihre Frage: Returning Mapkit Userlocation Coordinates

(verwendet die mapView.userLocation.location.coordinate.latitude und mapView.userLocation.location.coordinate.longitude properties)

und dann diese Koordinaten in die Instanz

-(void)setCenterCoordinate:(CLLocationCoordinate2D)coordinate animated:(BOOL)animated

Ihrer MKMapView injizieren.

+0

ja oder ich kann die region.center.latitude verwenden = mapView.userLocation.location.coordinate.latitude; Ich denke, dass es richtig funktioniert? – ludo

+0

Hmm, ich bin mir nicht sicher, ob es funktioniert, ich würde dir empfehlen, eine lokale CLLocationCoordinate2D zu erstellen und sie in den gegebenen Selektor zu injizieren. Sie erhalten die Kontrolle über den Animationsparameter, der Ihre App mit einer Animation auch schöner aussehen lässt. – yonel

+0

Ich weiß nicht wirklich, wie man den Selektor benutzt, den Sie mir gaben, aber ich werde versuchen, wenn Sie irgendeinen Link haben, um mir zu zeigen, wird auch gut sein. danke – ludo

2

Aus irgendeinem Grund, dies für mich nicht funktioniert hat. Es bringt mich zu den Koordinaten (0.0000, 0.0000). Unten ist mein Code, wenn Sie eine Chance haben, es zu überprüfen. Danke für die Hilfe!

[mapView setMapType:MKMapTypeStandard]; 
[mapView setZoomEnabled:YES]; 
[mapView setScrollEnabled:YES]; 
mapView.showsUserLocation=TRUE; 

MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; 

CLLocationCoordinate2D myCoord = {mapView.userLocation.location.coordinate.latitude,mapView.userLocation.location.coordinate.longitude}; 
[mapView setCenterCoordinate:myCoord animated:YES]; 

region.span.longitudeDelta = 0.01f; 
region.span.latitudeDelta = 0.01f; 
[mapView setRegion:region animated:YES]; 

[mapView setDelegate:self]; 
6

Viel einfacher:

-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { 
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.location.coordinate, 1500, 1500); 
[mapView setRegion:region animated:YES]; 
} 
+2

Vergessen Sie nicht, die mapView.delegate zu setzen! – DAS

+0

Dies ist die beste Lösung. Danke Jungs. –

Verwandte Themen