initializeWithRenderer method

Future<AndroidMapRenderer> initializeWithRenderer(
  1. AndroidMapRenderer? rendererType
)

Requests Google Map Renderer with AndroidMapRenderer type.

See https://pub-web.flutter-io.cn/packages/google_maps_flutter_android#map-renderer for more information.

The renderer must be requested before creating GoogleMap instances as the renderer can be initialized only once per application context. Throws a PlatformException if method is called multiple times.

The returned Future completes after renderer has been initialized. Initialized AndroidMapRenderer type is returned.

Implementation

Future<AndroidMapRenderer> initializeWithRenderer(
    AndroidMapRenderer? rendererType) async {
  String preferredRenderer;
  switch (rendererType) {
    case AndroidMapRenderer.latest:
      preferredRenderer = 'latest';
    case AndroidMapRenderer.legacy:
      preferredRenderer = 'legacy';
    case AndroidMapRenderer.platformDefault:
    case null:
      preferredRenderer = 'default';
  }

  final String? initializedRenderer = await _initializerChannel
      .invokeMethod<String>('initializer#preferRenderer',
          <String, dynamic>{'value': preferredRenderer});

  if (initializedRenderer == null) {
    throw AndroidMapRendererException('Failed to initialize map renderer.');
  }

  // Returns mapped [AndroidMapRenderer] enum type.
  switch (initializedRenderer) {
    case 'latest':
      return AndroidMapRenderer.latest;
    case 'legacy':
      return AndroidMapRenderer.legacy;
    default:
      throw AndroidMapRendererException(
          'Failed to initialize latest or legacy renderer, got $initializedRenderer.');
  }
}