注釈 - NSArray - これを行うには?

JsonをURL経由で取得したデータを使用して、Mapviewでアノテーションを使用したいと思います。 そうするかもしれない?

NSMutableArray *annotations = [[NSMutableArray alloc]init];

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://example.com/LData.php"]];

//Data: Longitud/Latitud/Country;.....

NSString *str = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(str);

[foo removeAllObjects]; 

NSArray *foo2 =[str componentsSeparatedByString: @";"];
int i=0;
for(i=0;i<[foo2 count]; i++){

    [foo insertObject:[foo2 objectAtIndex:i] atIndex:i];
        NSArray *foo3 =[foo2 componentsSeparatedByString: @"/"];

ここまでは順調ですね ¿私は変数[i]を紹介するために横たわっていますか?

        CLLocationCoordinate2D theCoordinate[i];
        theCoordinate1.latitude[i] = [foo3 objectAtIndex:1]);//Longitud
        theCoordinate1.longitude[i] = [foo3 objectAtIndex:2]);//Latitud

        MyAnnotation* myAnnotation[i]=[[MyAnnotation alloc] init];

    myAnnotation[i].coordinate=theCoordinate[i];
    myAnnotation[i][email protected]""+[foo3 objectAtIndex:3];
    myAnnotation[i][email protected]"in the city";

        [mapView addAnnotation:myAnnotation[i]];
        [annotations addObject:myAnnotation[i]];




}

どのように私はこの問題を解決することができますか?

1
あなたが持っている問題を明確に説明してください。
追加された 著者 bneely,

2 答え

異なるCLLocationCoordinate2D変数を使用する理由

theCoordinate1.latitude[i] = [foo3 objectAtIndex:1]);//Longitud
theCoordinate1.longitude[i] = [foo3 objectAtIndex:2]);//Latitud

その後

myAnnotation[i].coordinate=theCoordinate[i];

私はコードを調整する必要があり、いくつかの問題はそれ自身で解決できると思います。

0
追加された
なぜCLLocationCoordinate2Dを使用しているのですか?注釈をその座標に追加するには
追加された 著者 user1164990,
私が望むのは、経度と緯度の方向に当事者の配列に関するデータを取得し、地図上に注釈を付けることです。
追加された 著者 user1164990,
あなたがする別の方法を知っていれば、私はそれを感謝したいと思います、ありがとう
追加された 著者 user1164990,
私はここで混乱しています:theCoordinate [i] .latitude = [foo3 objectAtIndex:1]);//Latitud theCoordinate [i] .longitude = [foo3 objectAtIndex:2]);//Latitud Forの中のアノテーションを作成して作成しますか?
追加された 著者 user1164990,
NSMutableArray *annotations = [[NSMutableArray alloc]init];

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://example.com/LData.php"]];

//Data: Longitud/Latitud/Country;.....

NSString *str = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(str);

[foo removeAllObjects]; 

NSArray *foo2 =[str componentsSeparatedByString: @";"];
int i=0;
for(i=0;i<[foo2 count]; i++){

    [foo insertObject:[foo2 objectAtIndex:i] atIndex:i];
        NSArray *foo3 =[foo2 componentsSeparatedByString: @"/"];


     float realLatitude = [[foo3 objectAtIndex:1] floatValue];//Longitud
     float realLongitude = [[foo3 objectAtIndex:0] floatValue];//Latitud        

         MyAnnotation* myAnnotation = [[MyAnnotation alloc] init];

     CLLocationCoordinate2D theCoordinate;
            theCoordinate.latitude = realLatitude;
            theCoordinate.longitude =  realLongitude;


    myAnnotation.coordinate = theCoordinate;
     myAnnotation.title = [foo3 objectAtIndex:3];
      //myAnnotation.subtitle = [note objectForKey:@"stationAddressKey"];

      [_mapView setDelegate:self];
      [_mapView addAnnotation:myAnnotation];
      [myAnnotation release];  

}




-(MKAnnotationView *)_mapView:(MKMapView *)aMapView viewForAnnotation:(id)annotation

{  
    if ([annotation isKindOfClass:[MyAnnotation class]])
    {
        static NSString *reuseId = @"customAnn";

        MKAnnotationView *customAnnotationView = [aMapView dequeueReusableAnnotationViewWithIdentifier:reuseId];

        if (customAnnotationView == nil)
        {
            customAnnotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseId] autorelease];
            UIImage *pinImage = [UIImage imageNamed:@"pin-green.png"];
            [customAnnotationView setImage:pinImage];
            customAnnotationView.canShowCallout = YES;
            UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
            customAnnotationView.rightCalloutAccessoryView = rightButton;
        }

      //NSString *iconFilename = @"";
      //MyAnnotation *myAnn = (MyAnnotation *)annotation;
      //if ([myAnn.stationIdKey isEqualToString:@"BP"])
            iconFilename = @"bp-logo.png";
      //else
      //    if ([myAnn.stationIdKey isEqualToString:@"Caltex"])
      //        iconFilename = @"caltex.png";
      //    else
      //        if ([myAnn.stationIdKey isEqualToString:@"Shell"])
      //            iconFilename = @"shell.png";
      //UIImageView *leftIconView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:iconFilename]] autorelease];
        customAnnotationView.leftCalloutAccessoryView = leftIconView;

        customAnnotationView.annotation = annotation;

        return customAnnotationView; 
    }

    return nil; 
}



-(void)_mapView:(MKMapView *)_mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{ if ([view.annotation isKindOfClass:[MyAnnotation class]])
{
    MyAnnotation *myAnn = (MyAnnotation *)view.annotation;
    NSLog(@"callout button tapped for station id %@", myAnn.stationIdKey);
}
else
{
    NSLog(@"callout button tapped for annotation %@", view.annotation);
} }

これは正しいですか?

0
追加された