我想从给定的纬度和经度中找到位置。问题是在我的应用程序中,我必须一次找到 20 多个用户位置,而 long,lat 数据是从服务中获取的,我的任务是从经度和纬度中获取位置......
问问题
152 次
4 回答
1
使用 iOS 的反向地理编码。Mapkit 框架中有一个CLGeocoder
类 ,它使用方法从纬度和经度中检索用户的实际位置。reverseGeocodeLocation
- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler
这个方法有两个参数:
location:使用您的纬度和经度创建一个CLLocation
对象并将该对象传递给此方法。这就是您在创建CLLocation
对象时可以实现的方式。
CLLocation *location = [[CLLocation alloc]initWithLatitude:_yourLatitude longitude:_yourLongitude];
completionHandler:这是一个在反向地理编码成功时执行的块对象。
你可以看看这个教程。
于 2013-09-16T05:10:48.180 回答
0
CLGeocoder * geoCoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) {
}];
将值传递给此 reverseGeocodeLocation 处理程序。 参考
于 2013-09-16T05:42:17.703 回答
0
在此 url 中传递您的纬度和经度值。
NSString *urlString = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&sensor=true",coordinate.latitude,coordinate.longitude];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:url] returningResponse:nil error:nil];
annotation.tag = 0;
//SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
if([[dict valueForKey:@"results"] count]>0)
NSString *location = [[[dict valueForKey:@"results"] objectAtIndex:0] valueForKey:@"formatted_address"];
于 2013-09-16T04:57:25.683 回答