不同颜色的多边形叠加

Chr*_*isM 3 polygon objective-c map mkmapview

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

-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id )overlay{
Run Code Online (Sandbox Code Playgroud)

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

小智 13

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

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

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

pother.title = @"other";
[mapView addOverlay:pother];
Run Code Online (Sandbox Code Playgroud)

然后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;
}
Run Code Online (Sandbox Code Playgroud)