2012-03-08 7 views
11

"Kullanıcı konumunu göster" etkinken görünümümde bir çıkış görünümü (MKMapViewDelegate) var. bu denetleyici için viewDidLoad MKMapView userLocation simülatörde 0,0 gösteriyor?

Ben simülatör harita üzerinde doğru kullanıcı konumunu (I IOS Simülatörü bulunan Özel yerini kullanıyorum)

gösterir

CLLocation *userLoc = mapView.userLocation.location; 
CLLocationCoordinate2D userCoordinate = userLoc.coordinate; 
NSLog(@"user latitude = %f",userCoordinate.latitude); 
NSLog(@"user longitude = %f",userCoordinate.longitude); 
mapView.delegate=self; 

var Ama NSLog 0'ı gösterdiğinde ve enlem ve boylam için 0.

Simülatördeki özel boylamı ve enlemi elde edememeli miyim? CEVAP İLE

GÜNCELLEME:

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 
{ 
    self.mapView.centerCoordinate = userLocation.location.coordinate; 
} 

cevap

13

Konum hizmetlerini uygulamak için gerekli

anlık değildir. Kodunuz viewDidLoad'dadır, bu yüzden henüz pozisyonunuzda düzeltme yapma şansınız olmadı. MKMapViewDelegate protokolünü uygulayan bir nesneye harita görünümü için delegate özelliğini ayarlamanız gerekir.

+0

Bazı örnek kodlar sağlayabilir misiniz? Mapview delegesini yukarıdaki kodda kendime mi ayarladım? Haritaların ilk yakınlaştırma konumunun kullanıcının geçerli konumuna bağlı olmasını isterim – sayguh

+1

Herhangi bir MKMapViewDelegate yöntemini uyguladınız mı? Delegeyi ayarlamak, tanımladığı yöntemleri uygulamadığınız sürece bir şey yapmayacaktır. Geliştirici merkezinde birkaç harita örneği projesi var. Onlara baktın mı? – Jim

+0

Apple'ın sitesinde bunun için örnek kod bulunamadı. Bu – sayguh

0
MKMapView *mapview=[[MKMapView alloc]initWithFrame:CGRectMake(0,0,300, 364)]; 
mapview.delegate=self; 
mapview.showsUserLocation=YES; 

Daha sonra mapkit temsilcisini arayacak, mak takımı temsilci koordinatlarını yazdırmayı deneyin. NSLog (@ "kullanıcı enlem =% f", userLocation.location.coordinate.latitude); NSLog (@ "kullanıcı boylamı =% f", userLocation.location.coordinate.longitude);

1

Simülatörde Debug> Konum aracılığıyla bir yer ayarladım. Beni (0 °, 0 °) terk eden ve hiç güncellenmeyen Yok olarak ayarlandı; Bir Özel Konum belirleyebilir veya kullanıcı konumunu zaman içinde otomatik olarak hareket ettiren başka bir simüle edilmiş konum betiği arasından seçim yapabilirsiniz.