4

给定经度和纬度而不是我当前的位置,我如何使用 执行反向地理编码查找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];
 }];

显然只会对我的位置进行地理编码,但我需要明确设置要反转的经度和纬度。

4

2 回答 2

7

我从来没有试过这个,但你不能创建自己的 CLLocation 对象吗?

如果您知道当前的经度和纬度,您可以 -

CLLocation *location = [[CLLocation alloc]initWithLatitude:someValue longitude:someValue];
[self.geoCoder reverseGeocodeLocation: location completionHandler: ^(NSArray *placemarks, NSError *error) {
    //do something
});
于 2012-10-29T10:56:05.103 回答
0

如果你使用模拟器,你可以调试>位置>自定义位置,然后输入 lat long 来模拟任何地方的位置。

于 2018-03-10T06:05:17.877 回答