initialize method

  1. @mustCallSuper
Future<void> initialize()

Implementation

@mustCallSuper
Future<void> initialize() async {
  if (_isInitializing || _isInitialized) {
    return;
  }

  // Mark initialization process start, so that it cannot be entered again
  _isInitializing = true;

  try {
    for (var i = 0; i < allLayerProperties.length; i++) {
      final layerId = _makeLayerId(i);

      await controller.addGeoJsonSource(
        layerId,
        buildFeatureCollection([]),
        promoteId: "id",
      );
      await controller.addLayer(
        layerId,
        layerId,
        allLayerProperties[i],
        enableInteraction: enableInteraction,
      );
    }

    controller.onFeatureDrag.add(_onDrag);

    // Mark as initialized
    _isInitialized = true;
  } finally {
    // Mark initialization process end
    _isInitializing = false;
  }
}