-2

我想从给定的纬度和经度中找到位置。问题是在我的应用程序中,我必须一次找到 20 多个用户位置,而 long,lat 数据是从服务中获取的,我的任务是从经度和纬度中获取位置......

4

4 回答 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

你应该先了解这个过程。这称为地理编码。您有 2 种类型的地理编码,正向和反向地理编码。您可以从地址中获取经纬度和经纬度的地址。你应该去一些教程。这里有一些链接。

正向和反向地理编码

正向和反向地理编码

您还可以使用 google API 进行地理编码,它提供了最好的结果..

干杯桑杰

于 2013-09-16T06:30:16.693 回答
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 回答