我们可以使用纬度和经度信息获取正确的位置。实际上我使用下面的代码来获取位置详细信息。但在大多数情况下,我只得到特定高速公路的名称而不是位置名称。< / p>
//Annotation
//1.create coordinate for use with the annotation
CLLocationCoordinate2D wimbLocation;
wimbLocation.latitude=latitude;
wimbLocation.longitude=longitude;
Annotation * myAnnotation= [Annotation alloc];
CLLocation *someLocation=[[CLLocation alloc]initWithLatitude:latitude longitude:longitude];
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:someLocation completionHandler:^(NSArray *placemarks, NSError *error) {
NSDictionary *dictionary = [[placemarks objectAtIndex:0] addressDictionary];
NSLog(@"%@",dictionary);
addressOutlet=[dictionary valueForKey:@"Street"];
NSLog(@"%@",addressOutlet);
City=[dictionary valueForKey:@"City"];
NSLog(@"%@",City);
State=[dictionary valueForKey:@"State"];
NSLog(@"%@",State);
myAnnotation.coordinate=wimbLocation;
myAnnotation.title=addressOutlet;
myAnnotation.subtitle=[NSString stringWithFormat:@"%@,%@", City, State];
[self.MapViewC addAnnotation:myAnnotation];
有没有机会改进编码以获得更准确的位置细节?问题仍未解决。任何人都可以帮助我吗?
答案 0 :(得分:0)
不是从CLPlacemark获取和使用addressDictionary,而是使用CLPlacemark本身并通过其属性(country,postalCode,administrativeArea等)访问详细信息。
CLPlacemark的属性为here。