init method

  1. @override
void init({
  1. void onMapReady()?,
  2. void onMapClick(
    1. double latitude,
    2. double longitude
    )?,
  3. void onMapRendered()?,
  4. void onStyleLoaded()?,
})
override

Set up the method channel and listen for method calls from the native platform.

Implementation

@override
void init({
  void Function()? onMapReady,
  void Function(double latitude, double longitude)? onMapClick,
  void Function()? onMapRendered,
  void Function()? onStyleLoaded,
}) {
  /// Set the listeners for the given events.
  if (onMapReady != null) {
    _onMapReadyListeners.add(onMapReady);
  }
  if (onMapClick != null) {
    _onMapClickListeners.add(onMapClick);
  }
  if (onMapRendered != null) {
    _onMapRenderedListeners.add(onMapRendered);
  }
  if (onStyleLoaded != null) {
    _onStyleLoadedListeners.add(onStyleLoaded);
  }

  /// Set the method call handler to listen for method calls from the native platform.
  methodChannel.setMethodCallHandler((call) async {
    switch (call.method) {
      case Events.onMapClick:
        final latitude = call.arguments['lat'] as double;
        final longitude = call.arguments['lng'] as double;
        for (var listener in _onMapClickListeners) {
          listener(latitude, longitude);
        }
        break;
      case Events.onMapReady:
        for (var listener in _onMapReadyListeners) {
          listener();
        }
        break;
      case Events.onMapRendered:
        for (var listener in _onMapRenderedListeners) {
          listener();
        }
        break;
      case Events.onStyleLoaded:
        for (var listener in _onStyleLoadedListeners) {
          listener();
        }
        break;
      default:
        debugPrint('Method not implemented');
    }
  });
}