试图让MKPolygon叠加工作

时间:2010-08-19 01:34:45

标签: iphone overlay mkmapview

试图找出这个MKPolygon的工作原理。我创建了一整堆MKMapPoints并将它们放入一个数组中。然后我用它们制作了一个Polygon:

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

并将其添加到Array以便稍后检索。

稍后我循环遍历数组,并将每个对象(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;
}

据我所知,这应该在技术上有效。但事实并非如此,当它到达我认为它所在的地图区域时,应用程序就会崩溃(由于长时间的混淆或转换错误,这可能是错误的,但这是另一回事)

我是否缺少一些我需要设置的属性,或者错误的点可能导致崩溃?还是我完全错过了它?

欢呼任何帮助。

1 个答案:

答案 0 :(得分:3)

这实际上是正确的,但是我犯了一个错误而不是我记得叠加 - 它实际上是存储MKPolygon和字符串的字典数组。纠正这个问题让它发挥作用。