使用纬度和经度查找用户位置的名称[重复]

Posted

技术标签:

【中文标题】使用纬度和经度查找用户位置的名称[重复]【英文标题】:Find the name of the user's location using latitude and longitude [duplicate] 【发布时间】:2013-11-12 05:13:27 【问题描述】:

我需要使用纬度和经度查找用户所在位置的名称。我使用以下代码使用注释将点固定在位置上。

//MAP VIEW Point

MKCoordinateRegion myRegion;

//Center
CLLocationCoordinate2D center;
center.latitude=latitude;
center.longitude=longitude;

//Span
MKCoordinateSpan span;
span.latitudeDelta=THE_SPAN;
span.longitudeDelta=THE_SPAN;

myRegion.center=center;
myRegion.span=span;

//Set our mapView
[MapViewC setRegion:myRegion animated:YES];

//Annotation

//1.create coordinate for use with the annotation
CLLocationCoordinate2D wimbLocation;
wimbLocation.latitude=latitude;
wimbLocation.longitude=longitude;

Annotation * myAnnotation= [Annotation alloc];
myAnnotation.coordinate=wimbLocation;

【问题讨论】:

***.com/questions/1382900/… 您的代码与您要解决的问题完全无关。 【参考方案1】:

这可能是最简单的方法

- (void)reverseGeocodeLocation 
      CLLocation *someLocation=[[CLLocation alloc]initWithLatitude:20.256456 longitude:68.545656]
  CLGeocoder *geocoder = [[CLGeocoder alloc] init];
  [geocoder reverseGeocodeLocation:someLocation completionHandler:^(NSArray *placemarks, NSError *error) 
    if(placemarks.count)
      NSDictionary *dictionary = [[placemarks objectAtIndex:0] addressDictionary];
      [self.addressOutlet setText:[dictionary valueForKey:@"Street"]];
      [self.cityOutlet setText:[dictionary valueForKey:@"City"]];
      [self.stateOutlet setText:[dictionary valueForKey:@"State"]];
      [self.zipOutlet setText:[dictionary valueForKey:@"ZIP"]];
    
  ];


【讨论】:

如何将 pin 标题设置为街道名称 使用 MKAnnotationView codigator.com/tutorials/mapkit-tutorial-for-ios-beginners【参考方案2】:

首先你需要导入AddressBook/AddressBook.h 然后包括以下方法

-(NSString*)locationFromCoordinate:(CLLocationCoordinate2D)coordinate

     CLGeocoder *geocoder = [[CLGeocoder alloc] init];

     CLLocation *loc = [[CLLocation alloc]initWithLatitude:coordinate.latitude
                                                    longitude:coordinate.longitude];
     NSString *address;
     [geocoder reverseGeocodeLocation:loc
               completionHandler:^(NSArray *placemarks, NSError *error) 

                   if (error) 
                       NSLog(@"Failed with error: %@", error);
                       return;
                   

                   if (placemarks.count > 0)
                   
                       CLPlacemark *placemark = placemarks[0];

                       NSDictionary *addressDictionary =
                       placemark.addressDictionary;

                       address = [addressDictionary
                                            objectForKey:(NSString *)kABPersonAddressStreetKey];

                   

      return address;

【讨论】:

以上是关于使用纬度和经度查找用户位置的名称[重复]的主要内容,如果未能解决你的问题,请参考以下文章

查找具有纬度和经度的记录[重复]

在Android中查找当前位置的纬度和经度[重复]

Android使用GoogleApiClient获取用户位置纬度和经度[重复]

在不使用地图Android的情况下获取用户(纬度,经度)位置[重复]

在PHP中获取用户机器的经度和纬度[重复]

如何从给定的纬度和经度中查找位置名称?