render method
Renders this object. Called by markerPainter
Implementation
@override
void render(MapCanvas mapCanvas, MarkerContext markerContext) {
if (_zoom == markerContext.zoomLevel) {
(mapCanvas as FlutterCanvas).uiCanvas.save();
mapCanvas.uiCanvas.translate(_leftUpperX - markerContext.mapCenter.x,
_leftUpperY - markerContext.mapCenter.y);
//if (fill != null) markerCallback.renderPath(mapPath!, fill!);
mapCanvas.drawPath(mapPath!, getStrokePaint(markerContext.zoomLevel));
mapCanvas.uiCanvas.restore();
} else {
mapPath?.clear();
_points.clear();
_zoom = markerContext.zoomLevel;
path.forEach((latLong) {
Mappoint mappoint = markerContext.projection.latLonToPixel(latLong);
double y = mappoint.y - markerContext.mapCenter.y;
double x = mappoint.x - markerContext.mapCenter.x;
_points.add(mappoint);
if (mapPath!.isEmpty())
mapPath!.moveTo(x, y);
else
mapPath!.lineTo(x, y);
});
_leftUpperX = markerContext.mapCenter.x;
_leftUpperY = markerContext.mapCenter.y;
mapCanvas.drawPath(mapPath!, getStrokePaint(markerContext.zoomLevel));
}
}