Initialize Cesium Viewer with Nextspace API

HTML

<script src="https://nextspace-limited.github.io/nextspace-web-bundle/dist/nextspace.js?v3.2.2"></script>

<div id="VIEWER"></div>

CSS

html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
}

#VIEWER {
    width: 100%;
    height: 100%;
}

JavaScript

// Setup global defaults.
BModels.ENVIRONMENT.Reset({
    accountId: "examples",
    // DEV is reserved for Nextspace. Remove for your code!
    env: BModels.Api.EEnv.DEV,
    sessionId: "anonymous"
});

const init = async () => {
    // Proxy Cesium Ion requests through the Nextspace API.
    // This allows for access to Cesium Ion resources without exposing your token, or the default token.
    const api = BModels.ENVIRONMENT.Api().GetBruceApi({});
    await api.Loading;
    Cesium.Ion.defaultServer = api.GetBaseUrl() + "proxy/cesium-ion/";
    Cesium.Ion.defaultAccessToken = "proxy";

    const container = document.getElementById("VIEWER");

    const viewer = new Cesium.Viewer(container, {
        // Disabling any default imagery/terrain from coming in since we're rendering a bookmark right afterwards that will dictate these things.
        imageryProvider: false,
        baseLayerPicker: false,
        terrainProvider: null
    });

    BEngine.ViewerUtils.InitViewer({
        viewer: viewer,
        // True if you want to kill the default Cesium widgets.
        // Eg: Their timeline widget.
        destroyWidgets: false,
        styleContainer: true
    });

    await BEngine.ViewRenderEngine.Render({
        viewer: viewer,
        bookmarkId: "2d399a55-6eb2-4a6f-8d7d-ffb670eca1c1",
        viewId: "2b6a86c4-6f76-4a84-9536-c8abb0234225",
        // Skip the transition for first bookmark render to avoid flying every page reload!
        skipTransition: true
    });
};

init();