नक्शा लोड होने से पहले उपयोगकर्ता स्थान ढूँढना

वोट
1

मैं का उपयोग कर उपयोगकर्ता के स्थान को खोजने के लिए कोशिश कर रहा हूँ:

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

समस्या यह है कि मैं अभी तक नक्शा आरंभ नहीं किया है, तो ऊपर से काम नहीं करता है। वहाँ एक रास्ता MapKit का उपयोग किए बिना उपयोगकर्ता के स्थान प्राप्त करने के लिए है? या मैं एक अलग तकनीक का उपयोग किया जाना चाहिए?

12/03/2010 को 21:34
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
1

उपयोगकर्ता के स्थान प्राप्त करने के लिए आप के लिए वास्तव में स्थान जानकारी को पढ़ने के लिए प्रयास करने से पहले स्थान प्रबंधक "शुरू" की जरूरत है। मेरा सुझाव है कि आप एप्पल से LocateMe नमूना को देखो।

LocateMe नमूना कोड

संक्षेप में, हो रही उपयोगकर्ता के स्थान की जानकारी दो चरणों में किया जा सकता है:

- (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; 
}

... और फिर,

- (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;
    }
}

उम्मीद है की यह मदद करेगा!

19/04/2010 को 11:46
का स्रोत उपयोगकर्ता

वोट
0

मैं लगभग इस सवाल हटा दिया है लेकिन देखना किसी को यह एक ऊपर वोट दे दी है। इस उत्तर प्रतीत हो रहा है:

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

AppDelegate आवेदन प्रतिनिधि, जहाँ मेरे स्थान प्रबंधक उदाहरण रहता है करने के लिए सिर्फ एक संदर्भ है।

12/03/2010 को 21:41
का स्रोत उपयोगकर्ता

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