【发布时间】:2014-01-16 16:41:55
【问题描述】:
我已经使用GLGeocoder geocodeAddressString 获得了 2 个城市的坐标
从他们的名字中检索到这 2 个城市坐标后,我想计算它们之间的距离。但是我面临一个问题,即CLLocationDistance 在geocodeAddressString 之前运行。
我如何确保仅在城市位置之后才计算距离?
请看我下面的代码:
__block CLLocation *depLocation;
__block CLLocation *arrLocation;
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:@"Birmingham" completionHandler:^(NSArray* placemarks, NSError* error){
for (CLPlacemark* aPlacemark in placemarks)
{
depLocation = [[CLLocation alloc]
initWithLatitude:aPlacemark.location.coordinate.latitude
longitude:aPlacemark.location.coordinate.longitude];
}
}];
CLGeocoder *geocoder2 = [[CLGeocoder alloc] init];
[geocoder2 geocodeAddressString:@"Amritsar" completionHandler:^(NSArray* placemarks2, NSError* error){
for (CLPlacemark* aPlacemark2 in placemarks2)
{
arrLocation = [[CLLocation alloc]
initWithLatitude:aPlacemark2.location.coordinate.latitude
longitude:aPlacemark2.location.coordinate.longitude];
}
}];
CLLocationDistance distanceXYZ = [depLocation distanceFromLocation:arrLocation];
NSString *distanceLabel = [NSString stringWithFormat:@"Distance to point %4.0f m.", distanceXYZ];
【问题讨论】:
标签: ios geolocation cllocation cllocationdistance