我目前正在创建一个使用Google Maps的应用程序,上面绘制了许多多边形。 我的问题是,当两个多边形重叠时(在我的数据集中可能经常发生),较低的多边形将变得更暗。我想做的是在渲染多边形之前先清除它下面的内容。
在iOS中,我是这样做的:
class MyMKRenderer : MKPolygonRenderer {
override func draw(_ mapRect: MKMapRect, zoomScale: MKZoomScale, in context: CGContext) {
context.saveGState()
context.setBlendMode(.clear)
context.setFillColor(self.fillColor!.cgColor)
context.setStrokeColor(UIColor.white.cgColor)
context.setLineWidth(1.0)
if polygon.pointCount > 1 {
context.beginPath()
let firstPoint = point(for: polygon.points()[0])
context.move(to: CGPoint(x: CGFloat(firstPoint.x), y: CGFloat(firstPoint.y)))
for i in 1 ..< polygon.pointCount {
let secondPoint = point(for: polygon.points()[i])
context.addLine(to: CGPoint(x: CGFloat(secondPoint.x), y: CGFloat(secondPoint.y)))
}
context.closePath()
context.drawPath(using: .fillStroke)
}
context.restoreGState()
super.draw(mapRect, zoomScale: zoomScale, in: context)
}
}
但是我似乎找不到在Android中执行类似操作的方法。
问题图片:
有人知道吗?