使用lat和long信息获取正确的位置名称

时间:2013-11-20 04:54:12

标签: ios mkmapview mkannotationview

我们可以使用纬度和经度信息获取正确的位置。实际上我使用下面的代码来获取位置详细信息。但在大多数情况下,我只得到特定高速公路的名称而不是位置名称。< / 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];

有没有机会改进编码以获得更准确的位置细节?问题仍未解决。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

不是从CLPlacemark获取和使用addressDictionary,而是使用CLPlacemark本身并通过其属性(country,postalCode,administrativeArea等)访问详细信息。

CLPlacemark的属性为here