我有一个用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
}发布于 2018-02-01 16:13:01
您可以在绘制覆盖图时使用"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;}希望这能帮到你。
https://stackoverflow.com/questions/48023581
复制相似问题