2010-08-19 4 views
3

Попытка выяснить, что работает MKPolygon. Я создал целую кучу MKMapPoints и поместил их в массив. Затем я выношу из них многоугольник:Попытка получить накладку MKPolygon

[MKPolygon polygonWithPoints:pointArr count:sqlite3_column_int(countStatement, 0)]; 

и добавьте это в массив для последующего поиска.

Позже я Переберите массива и добавить каждый объект (MKPolygon) на карте с:

[mapView addOverlay:[overlays objectAtIndex:i]]; 

И это по бревнам работает отлично.

Я тогда реализовать MAPview: viewForOverlay: как так

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay { 
MKOverlayView *theOverlayView = nil; 
for (MKPolygon *theOverlay in overlays) { 
    if (theOverlay == overlay) { 
     MKPolygonView *thePolygonView = [[[MKPolygonView alloc] initWithPolygon:theOverlay] autorelease]; 
     theOverlayView = thePolygonView; 

    } 
} 
return theOverlayView; 
} 

Насколько я могу видеть, это должно работать технически. Но это не так, приложение просто падает, когда оно попадает в область карты, на которую я думаю, что она работает (точки могут быть неправильными из-за долгой перетаскивания или ошибки преобразования, но это другая вещь)

Я пропустил некоторые свойство Мне нужно установить или могут возникнуть ошибки, вызванные сбоем? Или я пропустил его полностью?

Приветствия за любую помощь.

ответ

3

Это было действительно правильно, но я допустил ошибку, положив больше, чем я запомнил в оверлеи, - это было на самом деле и множество словарей, которые хранят MKPolygon и строку. Исправив это, он начал работать.

Смежные вопросы