6 Stimmen

Erhalten Sie den Postleitzahlenbereich des aktuellen Standorts - iPhone SDK

Wie kann man den Postleitzahlenbereich des aktuellen Standorts mit Mapkit erhalten? Ich habe keine APIs gefunden, um dies im Dokument zu bekommen. Ich habe die Parameter coordinate, attitude, horizontal, vertical, course und speed des CLLocationManager verwendet, aber es ist mir nicht gelungen, den Postleitzahlenbereich zu bekommen.

Könnte mir bitte jemand die API oder Beispielscode geben, um dies zu erreichen?

Ist es möglich, den Postleitzahlenbereich mit dem aktuellen Standort auf dem iPhone zu erhalten?

9voto

Rajesh Loganathan Punkte 10855

Rückwärts-Geocodierung auf dem iPhone:

Fügen Sie zunächst das -Framework hinzu.

-(void)CurrentLocationIdentifier
    {
        //---- Zum Abrufen des aktuellen GPS-Standorts
        CLLocationManager *locationManager;
        CLLocation *currentLocation;

        locationManager = [CLLocationManager new];
        locationManager.delegate = self;
        locationManager.distanceFilter = kCLDistanceFilterNone;
        locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        [locationManager startUpdatingLocation];
    }

Rückwärtsgeocodierung zum Abrufen von Ortsdetails mithilfe des GPS-Standorts.

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    currentLocation = [locations objectAtIndex:0];
    [locationManager stopUpdatingLocation];

    CLGeocoder *geocoder = [[CLGeocoder alloc] init] ;
    [geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error)
     {
         if (!(error))
         {
             CLPlacemark *placemark = [placemarks objectAtIndex:0];
            NSLog(@"\nAktueller Standort erkannt\n");
             NSLog(@"placemark %@",placemark);
             NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];

             NSString *Address = [[NSString alloc]initWithString:locatedAt];
             NSString *Zipcode = [[NSString alloc]initWithString:placemark.postalCode];
             NSLog(@"%@",Zipcode);      
         }
         else
         {
             NSLog(@"Geokodierung fehlgeschlagen mit Fehler %@", error); // Fehlerbehandlung erforderlich
         }
     }];
}

Weitere Details zur Standortabfrage:

 placemark.region
 placemark.country
 placemark.locality
 placemark.name
 placemark.ocean
 placemark.postalCode
 placemark.subLocality
 placemark.location

2voto

Nick Punkte 8360

Sie können den Breiten- und Längengrad verwenden, um ein MKPlacemark-Objekt zu erstellen, das die Postleitzahl enthält.

0voto

superarts.org Punkte 6757

Swift-Version:

func getZipCode(location: CLLocation, completion: @escaping (String?) -> Void) {
    CLGeocoder().reverseGeocodeLocation(location) { placemarks, error in
        if let error = error {
            print("Fehler beim Abrufen der Postleitzahl: \(error)")
            completion(nil)
        }
        if let postalCode = placemarks?.first?.postalCode {
            completion(postalCode)
        } else {
            print("Fehler beim Abrufen der Postleitzahl aus Ortsmarkierungen: \(placemarks?.description ?? "nil")")
            completion(nil)
        }
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X