Render terrain and imagery


We provide lists of default imagery and terrain providers, but you can also render your own imported files.

If you're rendering Cesium World Terrain then please ensure to read about Cesium Ion attribution.

If you're rendering Cesium World Terrain, or any Bing Maps imageries then ensure you have a valid CesiumIon token applied.

Listing and rendering

Below is how you can list what data has been imported into your account, what default data there is, and how to render it.

Typescript
Javascript
import { ENVIRONMENT, ProjectViewTile, Tileset } from "bruce-models";
import { TileRenderEngine } from "bruce-cesium";
import * as Cesium from "cesium";

// Setup global defaults.
ENVIRONMENT.PARAMS = {
    ...ENVIRONMENT.PARAMS,
    accountId: "your-account-id"
};

/**
 * @Warning it is recommended to set a sessionId prior to making this request.
 * The GetList call will not include information on what Tilesets were excluded due to permissions.
 */
Tileset.GetList({}).then((data) => {
    // You can use the ".name" property and allow the user to select what they'd like to render.
    console.log("Tilesets", data.tilesets);

    // Imagery.
    const IMAGERY_TYPES = [Tileset.EType.GeoMap, Tileset.EType.EntitiesMap, Tileset.EType.ExternalGeoMap];
    const imagery = data.tilesets.filter(x => IMAGERY_TYPES.includes(x.type));

    // Terrain.
    const TERRAIN_TYPES = [Tileset.EType.Terrain, Tileset.EType.ExternalTerrain];
    const terrain = data.tilesets.filter(x => TERRAIN_TYPES.includes(x.type));
}).catch((e) => {
    console.error(e);
});

// Defaults that are always available.
const defaultTerrains = ProjectViewTile.DefaultTerrains;
const defaultImageries = ProjectViewTile.DefaultImagery;

// Cannot be null in real use!
// Check earlier docs for initialization of the Cesium viewer.
const viewer: Cesium.Viewer = null;

TileRenderEngine.Map.Navigator.Render({
    tiles: [
        {
            tilesetId: "your-imagery-tileset-id"
        }
    ],
    viewer: viewer
});

TileRenderEngine.Terrain.Navigator.Render({
    tile: {
        tilesetId: "your-terrain-tileset-id"
    },
    viewer: viewer
});

TileRenderEngine.Terrain.Navigator.Render({
    tile: {
        // Substitute tilesetId with a default id if you'd like.
        tilesetId: ProjectViewTile.EDefaultTerrain.FlatTerrain
    },
    viewer: viewer
});