CLGeocoder reverse geocode from given location

╄→гoц情女王★ 提交于 2019-12-01 20:26:31

问题


Given a longitude and latitude not my current location how can I perform a reverse geocode lookup using GLGeocoder?

self.geoCoder = [[CLGeocoder alloc] init];
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
//    [self.locationManager startUpdatingLocation];

[self.geoCoder reverseGeocodeLocation: locationManager.location completionHandler: ^(NSArray *placemarks, NSError *error) {
//        [self.locationManager stopUpdatingLocation];

     CLPlacemark *placemark = [placemarks objectAtIndex:0];
    // Long address
    // NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];
    // Short address
    NSString *locatedAt = [placemark subLocality];

     cell.textLabel.text = spot.name;
     cell.detailTextLabel.text = [NSString stringWithFormat:@"Cab no: %@, spotted at %@", spot.cabno, locatedAt];
 }];

Will obviously only ever geocode my location, but I need to explicitly set the longitude and latitude to reverse from.


回答1:


I never tried this, but can't you create your own CLLocation object?

If you know current longitude and latitude you can -

CLLocation *location = [[CLLocation alloc]initWithLatitude:someValue longitude:someValue];
[self.geoCoder reverseGeocodeLocation: location completionHandler: ^(NSArray *placemarks, NSError *error) {
    //do something
});



回答2:


If you use the simulator, you can debug>location>Custom Location then put in lat long to simulate a location anywhere.



来源:https://stackoverflow.com/questions/13120107/clgeocoder-reverse-geocode-from-given-location

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!