2011-01-04 6 views
6

Mam plist ze słownikiem tablicy z współrzędne (przechowywane jako ciągi).utworzyć CLLocationCoordinate2D z tablicy

Chcę utworzyć CLLocationCoordinate2D z każdej tablicy i umieścić nakładkę na mapie.

Zrobiłem to -

NSString *thePath = [[NSBundle mainBundle] pathForResource:@"Roots" ofType:@"plist"]; 
    NSDictionary *pointsDic = [[NSDictionary alloc] initWithContentsOfFile:thePath]; 

NSArray *pointsArray = [NSArray arrayWithArray:[pointsDic objectForKey:@"roade1"]]; 

CLLocationCoordinate2D pointsToUse[256]; 

for(int i = 0; i < 256; i++) { 
    CGPoint p = CGPointFromString([pointsArray objectAtIndex:i]); 
    pointsToUse[i] = CLLocationCoordinate2DMake(p.x,p.y); 
    NSLog(@"coord %f",pointsToUse [i].longitude); 
    NSLog(@"coord %f",pointsToUse [i].latitude); 

} 

MKPolyline *myPolyline = [MKPolyline polylineWithCoordinates:pointsToUse count:256]; 

[[self mv] addOverlay:myPolyline]; 

ale aplikacja jest upaść bez żadnego błędu. (BTW po usunięciu metody addOverLay aplikacja nie ulega awarii).

mam 2 questions-

  1. Co robię źle?
  2. Próbowałem ustawić liczyć pointsArray jako argument dla CLLocationCoordinate2D takiego -

    CLLocationCoordinate2D pointsToUse [liczyć pointsArray];

i otrzymuję błąd. Jak mogę dynamicznie ustawić CLLocationCoordinate2D?

Dzięki za pomoc. Shani

+0

iOS nigdy apps upaść bez jakiegoś błędu. Czy otrzymałeś "SIGABRT" lub "EXC_BAD_ACCESS"? –

+0

nie, żaden z nich – shannoga

+0

Czy mógłbyś opublikować wyjście z Konsoli? –

Odpowiedz

5

O.K Problem był rzeczywiście w metodzie viewForOverlay (dzięki aBitObvious i całej reszty). Wygląda na to, że liniowe ładowanie punktu z tablicy działa poprawnie.

i na pytanie drugie i po prostu oddzielić je do 2 etapów:

NSInteger c = [pointsArray count]; 
    CLLocationCoordinate2D pointsToUse[c]; 

i to działało dobrze, więc jeśli ktoś szuka sposobu, aby załadować overlayes z plist, że sposób działa dla mnie .

Dzięki Shani