我想从给定的经纬度中找到位置。问题是在我的应用程序中,我必须一次找到超过20个用户位置,长,拉数据来自服务,我的任务是从经度和纬度获取位置...
答案 0 :(得分:1)
使用iOS的反向GeoCoding。来自 Mapkit Framework 的CLGeocoder
类,它使用reverseGeocodeLocation
方法从纬度和经度中检索用户的实际位置。
- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler
此方法有两个参数:
位置:使用纬度和经度创建CLLocation
对象,并将该对象传递给此方法。
这是您在创建CLLocation
对象时可以实现的目标。
CLLocation *location = [[CLLocation alloc]initWithLatitude:_yourLatitude longitude:_yourLongitude];
completionHandler :这是在反向地理编码成功时执行的块对象。
您可以查看此tutorial。
答案 1 :(得分:0)
在此网址中传递您的纬度和经度值。
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"];
答案 2 :(得分:0)
CLGeocoder * geoCoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) {
}];
将值传递给此reverseGeocodeLocation处理程序。 Reference
答案 3 :(得分:0)
你应该先了解这个过程。这称为地理编码。 您有两种类型的地理编码,正向和反向地理编码。您可以从地址获取纬度 - 经度和纬度 - 经度的地址。 你应该去一些教程。这是一些链接。
您还可以使用Google API进行地理编码,从而提供最佳效果。
干杯 桑杰