В настоящее время я создаю приложение, которое использует 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.
Изображение проблемы:
Кто-нибудь знает способ?