2017-12-29 32 views
0

MKOverlayPathRendererで説明されている多角形領域があります。ポリゴンで囲まれた領域を塗りつぶす代わりに、代わりにその領域の外側にある領域を塗りつぶしたいと思います。MKOverlayPathRenderer反転塗りつぶし領域

MKOverlayPathRendererの塗りつぶし領域をどのように反転できますか?

これはレンダラがフェッチされる機能である:

func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer { 
    let renderer = parser.rendererForOverlay(overlay)! as! MKOverlayPathRenderer 
    renderer.fillColor = UIColor.red 
    renderer.strokeColor = UIColor.blue 
    return renderer 
} 
+0

リマインダーアプリは何か似ています。あなたがすばやくズームアウトすると、それを混乱させることができますし、穴から切り取った巨大な四角形をレンダリングするだけです。レンダラーサブクラスを使用すると、同じ効果を得ることができます。 –

+0

@ KaneCheshire、それを達成するために何が関係するのか分かりますか? – IHaveAQuestion

答えて

0

あなたのオーバーレイを描画するときは、 "interiorPolygons" を使用することができます。

CLLocationCoordinate2D polygoneCoords[10] 
= { {Point1LAT,Point1LONG}, {Point2LAT,Point2LONG}, {Point3LAT,Point3LONG}, {Point4LAT,Point4LONG},{Point5LAT,Point5LONG},{Point6LAT,Point6LONG},{Point7LAT,Point7LONG},{Point8LAT,Point8LONG},{Point9LAT,Point9LONG},{Point10LAT,Point10LONG}}; 
self.myPolygoneArea = [MKPolygon polygonWithCoordinates:polygoneCoords count:10]; 

CLLocationCoordinate2D worldCoords[6] = { {90, 0}, {90, 180}, {-90,180}, {-90,0}, {-90,-180}, {90,-180} }; 
myOverlay = [MKPolygon polygonWithCoordinates:worldCoords count:6 interiorPolygons:[NSArray arrayWithObject:myPolygoneArea]]; 

[self.MyMap addOverlay:myOverlay]; 

-(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay{ 

MKPolygonRenderer *polygon = [[MKPolygonRenderer alloc]initWithOverlay:overlay]; 

polygon.strokeColor = [UIColor redColor]; 
polygon.lineWidth = 2; 
polygon.fillColor = [[UIColor blackColor]colorWithAlphaComponent:0.3]; 

return polygon;} 

・ホープ、このヘルプ...

関連する問題