defaultMarkerBuilder<U extends GeoformMarkerDatum> function
GeoformMarkerBuilder<U>
defaultMarkerBuilder<U extends GeoformMarkerDatum>({
- Size size = const Size(18, 18),
- GeoformMarkerDrawerBuilder<
U> ? customDraw, - GeoformMarkerTapCallback<
U> ? onTap,
Implementation
GeoformMarkerBuilder<U> defaultMarkerBuilder<U extends GeoformMarkerDatum>({
Size size = const Size(18, 18),
GeoformMarkerDrawerBuilder<U>? customDraw,
GeoformMarkerTapCallback<U>? onTap,
}) {
const alphaSmall = -2.09;
const zoomMaxFactorSmall = 34;
const smallPointSize = 3.8;
return <T>(T datum) {
final v = datum as GeoformMarkerDatum;
final width = size.width;
final height = size.height;
return FastMarker(
point: v.position,
width: width,
height: height,
anchorPos: AnchorPos.align(AnchorAlign.center),
onDraw: customDraw == null
? (canvas, offset, map) {
final calculatedSmallPoint = alphaSmall +
(pow(map.zoom, 1.5) / zoomMaxFactorSmall * smallPointSize);
canvas.drawCircle(
offset + Offset(calculatedSmallPoint, calculatedSmallPoint),
calculatedSmallPoint,
redPaint,
);
}
: customDraw(v as U),
onTap: () => onTap == null ? null : onTap(v as U),
);
};
}