如何在拥有经度和纬度时查找用户位置?

时间:2013-09-16 04:54:20

标签: ios

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

4 个答案:

答案 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)

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

Forward and Reverse Geocoding

Forward and Reverse Geocoding

您还可以使用Google API进行地理编码,从而提供最佳效果。

干杯 桑杰