1

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;

}

問題は、注釈が間違った場所に表示されることです。現在、ワシントン DC のホワイト ハウスの緯度経度を持つバックエンド サービスから 1 つの場所を返しています。問題は、注釈が中国で表示されることです。

緯度経度を 38.8977 、 77.0366 にハードコーディングしても (基本的に json 応答から解析しません)、中国で表示されます。

私が間違っていることについて何か考えはありますか?

4

2 に答える 2

1

興味深いことに、他のすべての場所は正常に機能しているようです。おそらく、ホワイトハウスにピンを落とすのにセキュリティ上の制限がありますか?

更新...アンナは以下で正しいです!:)

于 2012-07-17T04:42:04.243 に答える
0

MapKit では座標の表現が間違っていますが、CLLocation 座標では正しいと確信しています。

于 2013-07-05T08:37:14.200 に答える