interpretMapHeroMapOptions static method

void interpretMapHeroMapOptions(
  1. Map<String, dynamic> options,
  2. MapHeroMapOptionsSink sink
)

Implementation

static void interpretMapHeroMapOptions(
    Map<String, dynamic> options, MapHeroMapOptionsSink sink) {
  if (options.containsKey('cameraTargetBounds')) {
    final bounds = options['cameraTargetBounds'][0];
    if (bounds == null) {
      sink.setCameraTargetBounds(null);
    } else {
      sink.setCameraTargetBounds(
        LatLngBounds(
          southwest: LatLng(bounds[0][0], bounds[0][1]),
          northeast: LatLng(bounds[1][0], bounds[1][1]),
        ),
      );
    }
  }
  if (options.containsKey('compassEnabled')) {
    sink.setCompassEnabled(options['compassEnabled']);
  }
  if (options.containsKey('styleString')) {
    sink.setStyleString(options['styleString']);
  }
  if (options.containsKey('minMaxZoomPreference')) {
    sink.setMinMaxZoomPreference(options['minMaxZoomPreference'][0],
        options['minMaxZoomPreference'][1]);
  }
  if (options['rotateGesturesEnabled'] != null &&
      options['scrollGesturesEnabled'] != null &&
      options['tiltGesturesEnabled'] != null &&
      options['zoomGesturesEnabled'] != null &&
      options['doubleClickZoomEnabled'] != null) {
    sink.setGestures(
        rotateGesturesEnabled: options['rotateGesturesEnabled'],
        scrollGesturesEnabled: options['scrollGesturesEnabled'],
        tiltGesturesEnabled: options['tiltGesturesEnabled'],
        zoomGesturesEnabled: options['zoomGesturesEnabled'],
        doubleClickZoomEnabled: options['doubleClickZoomEnabled']);
  }

  if (options.containsKey('trackCameraPosition')) {
    sink.setTrackCameraPosition(options['trackCameraPosition']);
  }

  if (options.containsKey('myLocationEnabled')) {
    sink.setMyLocationEnabled(options['myLocationEnabled']);
  }
  if (options.containsKey('myLocationTrackingMode')) {
    //Should not be invoked before sink.setMyLocationEnabled()
    sink.setMyLocationTrackingMode(options['myLocationTrackingMode']);
  }
  if (options.containsKey('myLocationRenderMode')) {
    sink.setMyLocationRenderMode(options['myLocationRenderMode']);
  }
  if (options.containsKey('logoViewMargins')) {
    sink.setLogoViewMargins(
        options['logoViewMargins'][0], options['logoViewMargins'][1]);
  }
  if (options.containsKey('compassViewPosition')) {
    final position =
        CompassViewPosition.values[options['compassViewPosition']];
    sink.setCompassAlignment(position);
  }
  if (options.containsKey('compassViewMargins')) {
    sink.setCompassViewMargins(
        options['compassViewMargins'][0], options['compassViewMargins'][1]);
  }
  if (options.containsKey('attributionButtonPosition')) {
    final position = AttributionButtonPosition
        .values[options['attributionButtonPosition']];
    sink.setAttributionButtonAlignment(position);
  } else {
    sink.setAttributionButtonAlignment(AttributionButtonPosition.bottomRight);
  }
  if (options.containsKey('attributionButtonMargins')) {
    sink.setAttributionButtonMargins(options['attributionButtonMargins'][0],
        options['attributionButtonMargins'][1]);
  }
}