harita yüklenmeden önce kullanıcı yerini bulma

oy
1

Ben kullanarak kullanıcının yerini bulmaya çalışıyorum:

CLLocationCoordinate2D _location;
CLLocation *userLoc = nil;
if(appDelegate.clLocationManager.locationServicesEnabled){
    userLoc = mapView.userLocation.location;
    _location = userLoc.coordinate;
}

Sorun Yukarıdaki çalışmıyor bu yüzden henüz harita başlatılmadı olmalarıdır. mapkit kullanmadan kullanıcının yerini almak için bir yolu var mı? Veya farklı bir teknik kullanılarak ben olmalı?

Oluştur 12/03/2010 saat 21:34
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
1

Kullanıcının yerini almak için aslında Konum bilgileri okumak denemeden önce konum yöneticisi "start" gerekir. Ben Apple'dan LocateMe örnek bakmak düşündürmektedir.

LocateMe Örnek Kod

Özetle, elde kullanıcının konum bilgilerini iki adımda yapılabilir:

- (void)viewDidLoad {
    [[self locationManager] startUpdatingLocation];
}

- (CLLocationManager *)locationManager { 

    if (locationManager != nil) {       
        return locationManager; 
    }

    NSLog(@"%s, Creating new Location Manager instance.", __FUNCTION__);
    locationManager = [[CLLocationManager alloc] init]; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    locationManager.distanceFilter = DISTANCE_FILTER_VALUE;
    locationManager.delegate = self; 

    return locationManager; 
}

... ve sonra,

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { 
    NSLog(@"%s, location manager returned a new location.", __FUNCTION__);

    // Check if location is valid (or good enough for us), 
    // and then process the location
    if ([self locationIsValid:newLocation]) {
            [self processLocation:newLocation];

            // Very important! When your done with it, stop the location manager
            [[self locationManager] sopUpdatingLocation];

            // (Maybe even) clear it
            locationManager.delegate = nil;
            [locationManager release];
            locationManager = nil;
    }
}

Bu yardımcı olur umarım!

Cevap 19/04/2010 saat 11:46
kaynak kullanıcı

oy
0

Neredeyse bu soruyu silindi ama biri o bir yukarı oyu verdi bkz. Bu cevap gibi görünüyor:

CLLocationCoordinate2D _location;
CLLocation *userLoc = nil;
if(appDelegate.clLocationManager.locationServicesEnabled){
    userLoc = appDelegate.clLocationManager.location;
    _location = userLoc.coordinate;
}

AppDelegate konumum yöneticisi örneği yaşadığı uygulama temsilci, sadece referanstır.

Cevap 12/03/2010 saat 21:41
kaynak kullanıcı

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