defaultMarkerBuilder<U extends GeoformMarkerDatum> function

GeoformMarkerBuilder<U> defaultMarkerBuilder<U extends GeoformMarkerDatum>({
  1. Size size = const Size(18, 18),
  2. GeoformMarkerDrawerBuilder<U>? customDraw,
  3. 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 (U datum) {
    final v = datum;
    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),
      onTap: () => onTap == null ? null : onTap(v),
    );
  };
}