CameraUpdate.fromMessageable constructor

CameraUpdate.fromMessageable(
  1. dynamic payload
)

Implementation

factory CameraUpdate.fromMessageable(dynamic payload) {
  final type =
      CameraUpdateType.values.firstWhere((e) => e.value == payload['type']);
  final angle = payload["angle"];
  final zoomLevel = payload["zoomLevel"];
  final position =
      payload.containsKey("latitude") && payload.containsKey("longitude")
          ? LatLng.fromMessageable(payload)
          : null;
  return switch (type) {
    CameraUpdateType.newCenterPoint =>
      CameraUpdate.newCenterPosition(position!, zoomLevel: zoomLevel),
    CameraUpdateType.newCameraPos => () {
        final cameraPosition = CameraPosition.fromMessageable(payload);
        return CameraUpdate.newCameraPos(cameraPosition);
      }(),
    CameraUpdateType.newCameraAngle => throw UnimplementedError(),
    CameraUpdateType.zoomTo => CameraUpdate.zoomTo(zoomLevel),
    CameraUpdateType.zoomIn => CameraUpdate.zoomIn(),
    CameraUpdateType.zoomOut => CameraUpdate.zoomOut(),
    CameraUpdateType.rotate => CameraUpdate.rotate(angle),
    CameraUpdateType.tilt => CameraUpdate.tilt(angle),
    CameraUpdateType.fitMapPoints => CameraUpdate.fitMapPoints(
        payload['points'].map<LatLng>(LatLng.fromMessageable).toList(),
        padding: payload["padding"],
        zoomLevel: zoomLevel)
  };
}