init method
void
init({
- void onMapReady()?,
- void onMapClick()?,
- void onMapRendered()?,
- 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');
}
});
}