ios地图注释出现在错误的地方

时间:2012-07-17 03:00:40

标签: ios5 mapkit mkannotation

我正在使用IOS SDK 5.1和使用MapKit开发应用程序。我有以下代码在从api检索数据后在地图上放置注释。

- (void)placeAnnotationsOnMap:(NSString *)responseString {

for (id<MKAnnotation> annotation in _mapView.annotations) {
    [_mapView removeAnnotation:annotation];
}
NSData *jsonData = [responseString dataUsingEncoding:NSUTF8StringEncoding];

NSError *e = nil;
NSArray *jsonArray = 
[NSJSONSerialization 
 JSONObjectWithData: jsonData 
 options: kNilOptions
 error: &e];

for(NSArray *cache in jsonArray ){
    for(NSDictionary *item in jsonArray) {
        NSLog(@"Item: %@", item);
        NSString * comment = [item objectForKey:@"comment"];

        NSNumber * latitude = [item objectForKey:@"locationLat"];
        NSNumber * longitude = [item objectForKey:@"locationLong"];
        NSString * numCachers = [item objectForKey:@"numCachers"];
        CLLocationCoordinate2D coordinate;
        coordinate.latitude = latitude.doubleValue;
        coordinate.longitude = longitude.doubleValue; 
        CustomAnnotation *cacheAnnotation = [[CustomAnnotation alloc] initWithTitle:comment numCachers:numCachers coordinate:coordinate];
        [_mapView addAnnotation:cacheAnnotation];
    }

}

}

我的viewForAnnotation方法。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {

static NSString *identifier = @"CustomAnnotation";   
CLLocationCoordinate2D coord = [annotation coordinate];

    MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [_mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
    if (annotationView == nil) {
        annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
    } else {
        annotationView.annotation = annotation;
    }

    annotationView.enabled = YES;
    annotationView.canShowCallout = YES;

    return annotationView;

}

问题是注释出现在错误的地方。我目前从我的后端服务返回一个位置,该服务具有华盛顿特区白宫的纬度经度。问题在于注释出现在中国。

即使我将lat long硬编码为38.8977,77.0366(基本上没有从json响应中解析它),它在中国出现。

对我做错了什么的想法?

2 个答案:

答案 0 :(得分:1)

有趣的是,似乎所有其他地方都运作良好。也许在白宫上放下针脚有一些安全限制?

更新......安娜在下面是正确的! :)

答案 1 :(得分:0)

MapKit中坐标的表示是错误的,但我确信它们在CLLocation坐标中是正确的