IPhone geçerli kullanıcı konum olarak gösteren koordinatları (0,0)

oy
8

Bu viewDidLoad yöntemi ile kullanıcılara geçerli enlem ve boylamı almaya çalışıyorum. NSLog sürekli gösterir, ancak elde edilen harita doğru mevcut konumunu belirten:

2009-09-19 16:45:29.765 Mapper[671:207] user latitude = 0.000000
2009-09-19 16:45:29.772 Mapper[671:207] user longitude = 0.000000

Herkes burada eksik biliyor musun? Yardımın için şimdiden teşekkürler!

- (void)viewDidLoad {
    [super viewDidLoad];
    [mapView setMapType:MKMapTypeStandard];
    [mapView setZoomEnabled:YES];
    [mapView setScrollEnabled:YES];
    [mapView setShowsUserLocation:YES];

    CLLocation *userLoc = mapView.userLocation.location;
    CLLocationCoordinate2D userCoordinate = userLoc.coordinate;

    NSLog(@user latitude = %f,userCoordinate.latitude);
    NSLog(@user longitude = %f,userCoordinate.longitude);
}
Oluştur 19/09/2009 saat 21:50
kaynak kullanıcı
Diğer dillerde...                            


8 cevaplar

oy
9

haritası olarak bildiğim kadarıyla, aslında görüntülenen kadar kullanıcıların konumunu elde etmeye olmayacaktır. Bunun iyi bir test, ne zaman uygulamalarını kullananlar konumunu almak için sorun olup olmayacağını soran diyalog alabilirim edilir? Benim durumumda bu her zaman harita ekranında gösterir sonra geldi.

Eğer başlangıçta bir konumu olmalıdır eğer bu sorunu yaklaşım için en iyi yolu, klasik Çekirdek Yer işleyicisi kod uygulamak ve başlangıçta bundan yerini elde etmektir. Harita sona erdiğinde orada güncelleme almayı durdurmak ve sürekli güncellemeler gerekirse bu konuda düşünüyorsanız olduğunda sadece. Standart Çekirdek Yer güncellemeleri ile tutmak daha iyi olur gerçi "kullanıcı gösterir (oradan başka değişiklikler alabilirsiniz GPS zaten bütün zaman kadar ateş edilecek beri uygulamanızın Çekirdek Yer haritası ayrıca kullanımda etkin konumu" esasen özgürdür.

Cevap 20/09/2009 saat 03:05
kaynak kullanıcı

oy
4

Eğer viewDidLoad () yöntemini kullanıcı koordinatlarını elde etmeye çalışmak ise henüz başlatılmadı nedeniyle, her zaman, 0,0 sonucunu verecektir.

Sen bakmak gerekir "Ben Neredeyim" örnek kod formu Elma sitesi. Bu gerektiğini açıklar. Sen kullanmak gerekir CLLocationManager sınıfını. Ayrıca yöntemi olması gerektiğini

*-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation*

Bu yöntem, kullanıcı konumu güncellenir, her zaman otomatik olarak çağrılır. Eğer simülatörü kullanıyorsanız, o zaman bu yöntem yalnızca bir kez çağrılır ve bazı varsayılan koordinatlarını dönecektir.

Umarım yardımcı olur.

Cevap 21/09/2009 saat 06:36
kaynak kullanıcı

oy
2

Üzerinde belgeden CLLocation yatay doğruluk veya dikey doğruluk negatifse, bunun bir değeri bulmak anlamına gelir. Bunu burada neler olduğunu şüpheli. Eğer sadece bir kez bakarsanız, hiç doğruluk sonucu iyileştirilmesi önce size yaklaşık bir son bilinen konum verebilir, unutmayın.

Yatay Doğruluk koordinat enlem ve boylam dairenin merkezini belirlemek ve bu değeri, bu dairenin yarıçapını belirtmektedir. Negatif bir değer koordinat enlem ve boylam geçersiz olduğunu gösterir.

Cevap 19/09/2009 saat 21:55
kaynak kullanıcı

oy
1

As Kendall söyledi yükleme bittiğinde ve viewDidLoad yöntemi genellikle bunu talep için çok erken kadar MKMapView bir kullanıcının konumunu yoktur. CoreLocation kullanmaktan daha basit bir yolu MKMapViewDelegate yöntemini uygulamaktır -(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation. Bir CLLocationManager uğraşmak zorunda kalmadan, kısa sürede bulunduğu olarak size kullanıcının yerini verecektir.

Cevap 08/01/2013 saat 18:33
kaynak kullanıcı

oy
1

Sen CoreLocation yerine MapKit gelen koordinat almalısınız. aslında mevcut konumu aldıktan sonra MapView kullanıcının yerini gösterecektir. Yer tespit edilmeden önce, enlem ve boylam, hem 0 3 olarak ayarlanır

Bir CLLocationManager instace, set temsilci oluşturmanız gerekir. Konumu tespit edildiğinde size bildirilir.

Cevap 20/09/2009 saat 06:17
kaynak kullanıcı

oy
0

Bu deneyin

CLLocation *userLoc = mapView.userLocation.location;
CLLocationCoordinate2D userCoordinate = userLoc.coordinate;

NSLog(@"user latitude = %f",userCoordinate.latitude);
NSLog(@"user longitude = %f",userCoordinate.longitude);

ViewDidAppear: ya gecikmeden sonra seletor gerçekleştirmek çağrı

Cevap 05/05/2014 saat 12:32
kaynak kullanıcı

oy
0

Bu cevap, bir kullanıcı bir konuma sahip harita görünümünü nasıl ayarlanacağını açıklamaktadır:

HowTo Belirli bir kullanıcı konumuyla MKMapView initialize?

Cevap 09/03/2010 saat 16:52
kaynak kullanıcı

oy
-1

senin viewDidLoad bölümüne bu ekle

mapView.showsUserLocation = YES;
Cevap 02/05/2010 saat 05:56
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more