鉴于经度和纬度不是我当前的位置,如何使用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];
}];
显然只会对我的位置进行地理编码,但我需要明确设置经度和纬度来反转。
答案 0 :(得分:7)
我从未尝试过这个,但你不能创建自己的CLLocation对象吗?
如果你知道当前的经度和纬度,你可以 -
CLLocation *location = [[CLLocation alloc]initWithLatitude:someValue longitude:someValue];
[self.geoCoder reverseGeocodeLocation: location completionHandler: ^(NSArray *placemarks, NSError *error) {
//do something
});
答案 1 :(得分:0)
如果您使用模拟器,您可以调试>位置>自定义位置,然后输入lat以在任何地方模拟位置。