不同颜色的多边形叠加

时间:2011-09-18 20:02:58

标签: objective-c map mkmapview polygon

是否可以使用以下方法在地图视图上创建不同的彩色多边形?

-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id )overlay{

如果我有2个多边形,我可以设置一个为红色,另一个为黄色吗?

1 个答案:

答案 0 :(得分:13)

一种方法是使用title属性来告诉另一个多边形。

添加多边形时,请相应地设置其标题:

pone.title = @"one";
[mapView addOverlay:pone];

pother.title = @"other";
[mapView addOverlay:pother];

然后在viewForOverlay中,您可以根据标题设置颜色:

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
    MKPolygonView *pv = [[[MKPolygonView alloc] initWithPolygon:overlay] autorelease];

    if ([overlay.title isEqualToString:@"one"])
        pv.fillColor = [UIColor redColor];
    else if ([overlay.title isEqualToString:@"other"])
        pv.fillColor = [UIColor yellowColor];
    else
        pv.fillColor = [UIColor blueColor];

    return pv;
}