Πώς μπορώ να προσδιορίσω ένα CLLocation ή MKPlacemark από μια διεύθυνση;

ψήφοι
2

Έχω δει τεκμηρίωση API και demo μετά demo για το πώς να κάνει μια αντίστροφη γεωγραφικής κωδικοποίησης - για να πάρετε μια διεύθυνση, δίνεται μια Lat / Long θέση. Θα πρέπει να κάνουμε το αντίθετο. Υποθέτω ότι αυτό έχει ήδη λυθεί το πρόβλημα από το MapKit API της Apple αποφεύγει τελείως.

Δημοσιεύθηκε 20/09/2009 στις 20:25
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
6

Ένας τρόπος είναι να χρησιμοποιήσετε το webservice Google, όπως έτσι:

-(CLLocationCoordinate2D) addressLocation {
    NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", 
                           [addressField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];
    NSLog(@"locationString = %@",locationString);

    NSArray *listItems = [locationString componentsSeparatedByString:@","];

    double latitude = 0.0;
    double longitude = 0.0;
    if([listItems count] >= 4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]) {
        latitude = [[listItems objectAtIndex:2] doubleValue];
        longitude = [[listItems objectAtIndex:3] doubleValue];
/*      
        NSString *nameString = [NSString stringWithFormat:@"http://ws.geonames.org/findNearestAddress?lat=%f&lng=%f",latitude,longitude];
        NSString *placeName = [NSString stringWithContentsOfURL:[NSURL URLWithString:nameString]];
        NSLog(@"placeName = %@",placeName);
 */
    }
    else {
        //Show error
    }
    CLLocationCoordinate2D location;
    location.latitude = latitude;
    location.longitude = longitude;

    return location;

}
Απαντήθηκε 20/09/2009 στις 20:30
πηγή χρήστη

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