MarkerLayer static method

MarkerLayer MarkerLayer(
  1. dynamic marker, {
  2. dynamic widget = markerDef,
  3. double opacity = opacityDef,
  4. double size = markerSizeDef,
  5. double width = markerSizeDef,
  6. double height = markerSizeDef,
  7. MarkerAlignment align = markerAlignDef,
  8. MarkerOffset? offset,
  9. TapLayerCallback? onTap,
  10. TapUpLayerCallback? onTapUp,
  11. TapDownLayerCallback? onTapDown,
  12. TapLayerCallback? onTapCancel,
  13. TapLayerCallback? onSecondaryTap,
  14. TapDownLayerCallback? onSecondaryTapDown,
  15. TapUpLayerCallback? onSecondaryTapUp,
  16. TapLayerCallback? onSecondaryTapCancel,
  17. DoubleTapLayerCallback? onDoubleTap,
  18. LongPressLayerCallback? onLongPress,
  19. LongPressStartLayerCallback? onLongPressStart,
  20. LongPressMoveUpdateLayerCallback? onLongPressMoveUpdate,
  21. LongPressUpLayerCallback? onLongPressUp,
  22. LongPressEndLayerCallback? onLongPressEnd,
  23. LongPressLayerCallback? onSecondaryLongPress,
  24. LongPressStartLayerCallback? onSecondaryLongPressStart,
  25. LongPressMoveUpdateLayerCallback? onSecondaryLongPressMoveUpdate,
  26. LongPressUpLayerCallback? onSecondaryLongPressUp,
  27. LongPressEndLayerCallback? onSecondaryLongPressEnd,
  28. dynamic data,
})

Used to display marker(s) at specified locations on map.

@param: marker

This param can accept any type of inputs for a single marker or multiple markers.

Example:

Single Marker

U.MarkerLayer([-6.175329, 106.827253], ...)
U.MarkerLayer(LatLng(-6.175329, 106.827253), ...)
U.MarkerLayer(U.Marker([-6.175329, 106.827253]), ...)

Multiple Markers

U.MarkerLayer([
  [-6.175329, 106.827253],
  [-6.181883, 106.826933],
], ...)
U.MarkerLayer([
  LatLng(-6.175329, 106.827253),
  LatLng(-6.181883, 106.826933),
], ...)
U.MarkerLayer([
  U.Marker([-6.175329, 106.827253]),
  U.Marker([-6.181883, 106.826933]),
], ...)

@param: widget

Used to define the widget to show as Marker.

Available values: MarkerIcon MarkerImage MarkerSvg MarkerWidget

Default:

MarkerSvg('packages/universe/assets/marker2.svg')

Implementation

// ignore: non_constant_identifier_names
static L.MarkerLayer MarkerLayer(
  dynamic marker, {
  dynamic widget = markerDef,
  double opacity = opacityDef,
  double size = markerSizeDef,
  double width = markerSizeDef,
  double height = markerSizeDef,
  L.MarkerAlignment align = markerAlignDef,
  L.MarkerOffset? offset,
  L.TapLayerCallback? onTap,
  L.TapUpLayerCallback? onTapUp,
  L.TapDownLayerCallback? onTapDown,
  L.TapLayerCallback? onTapCancel,
  L.TapLayerCallback? onSecondaryTap,
  L.TapDownLayerCallback? onSecondaryTapDown,
  L.TapUpLayerCallback? onSecondaryTapUp,
  L.TapLayerCallback? onSecondaryTapCancel,
  L.DoubleTapLayerCallback? onDoubleTap,
  L.LongPressLayerCallback? onLongPress,
  L.LongPressStartLayerCallback? onLongPressStart,
  L.LongPressMoveUpdateLayerCallback? onLongPressMoveUpdate,
  L.LongPressUpLayerCallback? onLongPressUp,
  L.LongPressEndLayerCallback? onLongPressEnd,
  L.LongPressLayerCallback? onSecondaryLongPress,
  L.LongPressStartLayerCallback? onSecondaryLongPressStart,
  L.LongPressMoveUpdateLayerCallback? onSecondaryLongPressMoveUpdate,
  L.LongPressUpLayerCallback? onSecondaryLongPressUp,
  L.LongPressEndLayerCallback? onSecondaryLongPressEnd,
  dynamic data,
}) {
  bool isMarker = marker is L.Marker;
  bool isLatLng = marker is LatLng;
  bool isList = (marker is List &&
      marker.isNotEmpty &&
      (marker.first is int || marker.first is double));

  List<dynamic> items = (isMarker || isLatLng || isList) ? [marker] : marker;

  return L.MarkerLayer(
    items
        .map((value) => L.Marker.from(
              value,
              size: size,
              width: width,
              height: height,
              widget: widget,
              data: data,
            ))
        .toList(),
    options: L.MarkerLayerOptions(
      opacity: opacity,
      align: align,
      offset: offset,
      onTap: onTap,
      onTapUp: onTapUp,
      onTapDown: onTapDown,
      onTapCancel: onTapCancel,
      onSecondaryTap: onSecondaryTap,
      onSecondaryTapDown: onSecondaryTapDown,
      onSecondaryTapUp: onSecondaryTapUp,
      onSecondaryTapCancel: onSecondaryTapCancel,
      onDoubleTap: onDoubleTap,
      onLongPress: onLongPress,
      onLongPressStart: onLongPressStart,
      onLongPressMoveUpdate: onLongPressMoveUpdate,
      onLongPressUp: onLongPressUp,
      onLongPressEnd: onLongPressEnd,
      onSecondaryLongPress: onSecondaryLongPress,
      onSecondaryLongPressStart: onSecondaryLongPressStart,
      onSecondaryLongPressMoveUpdate: onSecondaryLongPressMoveUpdate,
      onSecondaryLongPressUp: onSecondaryLongPressUp,
      onSecondaryLongPressEnd: onSecondaryLongPressEnd,
    ),
  );
}