создать CLLocationCoordinate2D из массива - PullRequest
6 голосов
/ 05 января 2011

У меня есть список со словарем массивов с координатами (хранится в виде строк).

Я хочу создать CLLocationCoordinate2D из каждого массива и создать наложение для карты.

Я сделал это -

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];

но приложение вылетает без ошибок. (Кстати, когда я удаляю метод addOverLay, приложение не падает).

У меня есть 2 вопроса-

  1. Что я делаю не так?
  2. Я попытался установить счетчик pointsArray в качестве аргумента для CLLocationCoordinate2D следующим образом -

    CLLocationCoordinate2D pointsToUse [pointsArray count];

И я получаю ошибку. Как я могу установить CLLocationCoordinate2D динамически?

Спасибо за любую помощь. Шани

1 Ответ

5 голосов
/ 05 января 2011

O.K Проблема действительно была в методе viewForOverlay (спасибо aBitObvious и всем остальным). Похоже, что загрузка строки из массива работает хорошо.

и для второго вопроса я просто разделил его на 2 шага:

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

и все работало нормально, так что если кто-то ищет способ загрузки оверлеев из plist, этот способ мне подходит.

Спасибо Шани

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...