UNPKG

terriajs

Version:

Geospatial data visualization platform.

52 lines (46 loc) 1.28 kB
import { runInAction } from "mobx"; import TerriaViewer from "../ViewModels/TerriaViewer"; enum ViewerMode { Cesium = "cesium", Leaflet = "leaflet" } export const MapViewers = Object.seal({ "3d": { viewerMode: ViewerMode.Cesium, terrain: true, label: "settingPanel.viewerModeLabels.CesiumTerrain", available: true }, "3dsmooth": { viewerMode: ViewerMode.Cesium, terrain: false, label: "settingPanel.viewerModeLabels.CesiumEllipsoid", available: true }, "2d": { viewerMode: ViewerMode.Leaflet, terrain: false, label: "settingPanel.viewerModeLabels.Leaflet", available: true } }); export const isViewerMode = (mode: string): mode is keyof typeof MapViewers => mode in MapViewers; export function setViewerMode( viewerMode: keyof typeof MapViewers, viewer: TerriaViewer ): void { runInAction(() => { if (viewerMode === "3d" || viewerMode === "3dsmooth") { viewer.viewerMode = ViewerMode.Cesium; viewer.viewerOptions.useTerrain = viewerMode === "3d"; } else if (viewerMode === "2d") { viewer.viewerMode = ViewerMode.Leaflet; } else { console.error( `Trying to select ViewerMode ${viewerMode} that doesn't exist` ); } }); } export default ViewerMode;