bruce-cesium 5.7.7 → 5.7.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/dist/bruce-cesium.es5.js +0 -32263
- package/dist/bruce-cesium.es5.js.map +0 -1
- package/dist/bruce-cesium.umd.js +0 -32187
- package/dist/bruce-cesium.umd.js.map +0 -1
- package/dist/lib/bruce-cesium.js +0 -76
- package/dist/lib/bruce-cesium.js.map +0 -1
- package/dist/lib/internal/cesium-utils.js +0 -109
- package/dist/lib/internal/cesium-utils.js.map +0 -1
- package/dist/lib/internal/js-utils.js +0 -22
- package/dist/lib/internal/js-utils.js.map +0 -1
- package/dist/lib/internal/limited-log.js +0 -17
- package/dist/lib/internal/limited-log.js.map +0 -1
- package/dist/lib/rendering/cesium-animated-in-out.js +0 -166
- package/dist/lib/rendering/cesium-animated-in-out.js.map +0 -1
- package/dist/lib/rendering/cesium-animated-property.js +0 -1111
- package/dist/lib/rendering/cesium-animated-property.js.map +0 -1
- package/dist/lib/rendering/entity-gatherer.js +0 -327
- package/dist/lib/rendering/entity-gatherer.js.map +0 -1
- package/dist/lib/rendering/entity-render-engine-model3d.js +0 -689
- package/dist/lib/rendering/entity-render-engine-model3d.js.map +0 -1
- package/dist/lib/rendering/entity-render-engine-point.js +0 -984
- package/dist/lib/rendering/entity-render-engine-point.js.map +0 -1
- package/dist/lib/rendering/entity-render-engine-polygon.js +0 -669
- package/dist/lib/rendering/entity-render-engine-polygon.js.map +0 -1
- package/dist/lib/rendering/entity-render-engine-polyline.js +0 -415
- package/dist/lib/rendering/entity-render-engine-polyline.js.map +0 -1
- package/dist/lib/rendering/entity-render-engine.js +0 -442
- package/dist/lib/rendering/entity-render-engine.js.map +0 -1
- package/dist/lib/rendering/getters/batched-data-getter.js +0 -91
- package/dist/lib/rendering/getters/batched-data-getter.js.map +0 -1
- package/dist/lib/rendering/getters/entity-filter-getter.js +0 -634
- package/dist/lib/rendering/getters/entity-filter-getter.js.map +0 -1
- package/dist/lib/rendering/getters/entity-globe.js +0 -172
- package/dist/lib/rendering/getters/entity-globe.js.map +0 -1
- package/dist/lib/rendering/menu-item-creator.js +0 -354
- package/dist/lib/rendering/menu-item-creator.js.map +0 -1
- package/dist/lib/rendering/menu-item-manager.js +0 -464
- package/dist/lib/rendering/menu-item-manager.js.map +0 -1
- package/dist/lib/rendering/relation-render-engine.js +0 -235
- package/dist/lib/rendering/relation-render-engine.js.map +0 -1
- package/dist/lib/rendering/render-managers/common/cesium-parabola.js +0 -368
- package/dist/lib/rendering/render-managers/common/cesium-parabola.js.map +0 -1
- package/dist/lib/rendering/render-managers/common/entity-label.js +0 -703
- package/dist/lib/rendering/render-managers/common/entity-label.js.map +0 -1
- package/dist/lib/rendering/render-managers/common/point-clustering.js +0 -826
- package/dist/lib/rendering/render-managers/common/point-clustering.js.map +0 -1
- package/dist/lib/rendering/render-managers/common/shared-getters.js +0 -187
- package/dist/lib/rendering/render-managers/common/shared-getters.js.map +0 -1
- package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js +0 -668
- package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js +0 -92
- package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +0 -143
- package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +0 -510
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +0 -717
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +0 -999
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +0 -186
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/other/assembly-render-manager.js +0 -226
- package/dist/lib/rendering/render-managers/other/assembly-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/other/google-search-render-manager.js +0 -430
- package/dist/lib/rendering/render-managers/other/google-search-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +0 -290
- package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/other/relations-render-manager.js +0 -401
- package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/render-manager.js +0 -276
- package/dist/lib/rendering/render-managers/render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +0 -356
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +0 -861
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +0 -279
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js +0 -104
- package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js +0 -81
- package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +0 -378
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +0 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +0 -140
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +0 -1
- package/dist/lib/rendering/tile-render-engine.js +0 -1328
- package/dist/lib/rendering/tile-render-engine.js.map +0 -1
- package/dist/lib/rendering/tileset-render-engine.js +0 -588
- package/dist/lib/rendering/tileset-render-engine.js.map +0 -1
- package/dist/lib/rendering/tileset-styler.js +0 -590
- package/dist/lib/rendering/tileset-styler.js.map +0 -1
- package/dist/lib/rendering/view-render-engine.js +0 -1004
- package/dist/lib/rendering/view-render-engine.js.map +0 -1
- package/dist/lib/rendering/visual-register-culler.js +0 -676
- package/dist/lib/rendering/visual-register-culler.js.map +0 -1
- package/dist/lib/rendering/visuals-register.js +0 -1695
- package/dist/lib/rendering/visuals-register.js.map +0 -1
- package/dist/lib/utils/cesium-entity-styler.js +0 -915
- package/dist/lib/utils/cesium-entity-styler.js.map +0 -1
- package/dist/lib/utils/drawing-utils.js +0 -308
- package/dist/lib/utils/drawing-utils.js.map +0 -1
- package/dist/lib/utils/entity-utils.js +0 -1382
- package/dist/lib/utils/entity-utils.js.map +0 -1
- package/dist/lib/utils/measure-utils.js +0 -73
- package/dist/lib/utils/measure-utils.js.map +0 -1
- package/dist/lib/utils/simplify-geometry.js +0 -323
- package/dist/lib/utils/simplify-geometry.js.map +0 -1
- package/dist/lib/utils/view-utils.js +0 -392
- package/dist/lib/utils/view-utils.js.map +0 -1
- package/dist/lib/viewer/cesium-view-monitor.js +0 -393
- package/dist/lib/viewer/cesium-view-monitor.js.map +0 -1
- package/dist/lib/viewer/viewer-event-tracker.js +0 -70
- package/dist/lib/viewer/viewer-event-tracker.js.map +0 -1
- package/dist/lib/viewer/viewer-utils.js +0 -310
- package/dist/lib/viewer/viewer-utils.js.map +0 -1
- package/dist/lib/widgets/common/draw-3d-polygon.js +0 -458
- package/dist/lib/widgets/common/draw-3d-polygon.js.map +0 -1
- package/dist/lib/widgets/common/draw-3d-polyline.js +0 -415
- package/dist/lib/widgets/common/draw-3d-polyline.js.map +0 -1
- package/dist/lib/widgets/common/measure-creator.js +0 -468
- package/dist/lib/widgets/common/measure-creator.js.map +0 -1
- package/dist/lib/widgets/common/walkthrough.js +0 -336
- package/dist/lib/widgets/common/walkthrough.js.map +0 -1
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js +0 -36
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js.map +0 -1
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js +0 -437
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js.map +0 -1
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js +0 -38
- package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js.map +0 -1
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js +0 -219
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js.map +0 -1
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js +0 -304
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js.map +0 -1
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js +0 -29
- package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js.map +0 -1
- package/dist/lib/widgets/widget-bookmarks.js +0 -497
- package/dist/lib/widgets/widget-bookmarks.js.map +0 -1
- package/dist/lib/widgets/widget-branding.js +0 -165
- package/dist/lib/widgets/widget-branding.js.map +0 -1
- package/dist/lib/widgets/widget-cursorbar.js +0 -1179
- package/dist/lib/widgets/widget-cursorbar.js.map +0 -1
- package/dist/lib/widgets/widget-embedded-info-view.js +0 -201
- package/dist/lib/widgets/widget-embedded-info-view.js.map +0 -1
- package/dist/lib/widgets/widget-info-view.js +0 -681
- package/dist/lib/widgets/widget-info-view.js.map +0 -1
- package/dist/lib/widgets/widget-left-panel.js +0 -548
- package/dist/lib/widgets/widget-left-panel.js.map +0 -1
- package/dist/lib/widgets/widget-nav-compass.js +0 -469
- package/dist/lib/widgets/widget-nav-compass.js.map +0 -1
- package/dist/lib/widgets/widget-view-bar.js +0 -284
- package/dist/lib/widgets/widget-view-bar.js.map +0 -1
- package/dist/lib/widgets/widget.js +0 -66
- package/dist/lib/widgets/widget.js.map +0 -1
- package/dist/types/bruce-cesium.d.ts +0 -58
- package/dist/types/internal/cesium-utils.d.ts +0 -23
- package/dist/types/internal/js-utils.d.ts +0 -8
- package/dist/types/internal/limited-log.d.ts +0 -6
- package/dist/types/rendering/cesium-animated-in-out.d.ts +0 -12
- package/dist/types/rendering/cesium-animated-property.d.ts +0 -245
- package/dist/types/rendering/entity-gatherer.d.ts +0 -36
- package/dist/types/rendering/entity-render-engine-model3d.d.ts +0 -56
- package/dist/types/rendering/entity-render-engine-point.d.ts +0 -73
- package/dist/types/rendering/entity-render-engine-polygon.d.ts +0 -26
- package/dist/types/rendering/entity-render-engine-polyline.d.ts +0 -47
- package/dist/types/rendering/entity-render-engine.d.ts +0 -108
- package/dist/types/rendering/getters/batched-data-getter.d.ts +0 -28
- package/dist/types/rendering/getters/entity-filter-getter.d.ts +0 -104
- package/dist/types/rendering/getters/entity-globe.d.ts +0 -21
- package/dist/types/rendering/menu-item-creator.d.ts +0 -53
- package/dist/types/rendering/menu-item-manager.d.ts +0 -85
- package/dist/types/rendering/relation-render-engine.d.ts +0 -32
- package/dist/types/rendering/render-managers/common/cesium-parabola.d.ts +0 -39
- package/dist/types/rendering/render-managers/common/entity-label.d.ts +0 -82
- package/dist/types/rendering/render-managers/common/point-clustering.d.ts +0 -91
- package/dist/types/rendering/render-managers/common/shared-getters.d.ts +0 -41
- package/dist/types/rendering/render-managers/data-source/data-source-static-csv-manager.d.ts +0 -41
- package/dist/types/rendering/render-managers/data-source/data-source-static-kml-manager.d.ts +0 -25
- package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +0 -31
- package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +0 -76
- package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +0 -90
- package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +0 -90
- package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +0 -42
- package/dist/types/rendering/render-managers/other/assembly-render-manager.d.ts +0 -38
- package/dist/types/rendering/render-managers/other/google-search-render-manager.d.ts +0 -45
- package/dist/types/rendering/render-managers/other/legacy-relations-render-manager.d.ts +0 -60
- package/dist/types/rendering/render-managers/other/relations-render-manager.d.ts +0 -53
- package/dist/types/rendering/render-managers/render-manager.d.ts +0 -30
- package/dist/types/rendering/render-managers/tilesets/tileset-arb-render-manager.d.ts +0 -37
- package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +0 -86
- package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +0 -41
- package/dist/types/rendering/render-managers/tilesets/tileset-google-photos-render-manager.d.ts +0 -26
- package/dist/types/rendering/render-managers/tilesets/tileset-i3s-render-manager.d.ts +0 -25
- package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +0 -48
- package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +0 -27
- package/dist/types/rendering/tile-render-engine.d.ts +0 -80
- package/dist/types/rendering/tileset-render-engine.d.ts +0 -99
- package/dist/types/rendering/tileset-styler.d.ts +0 -86
- package/dist/types/rendering/view-render-engine.d.ts +0 -32
- package/dist/types/rendering/visual-register-culler.d.ts +0 -18
- package/dist/types/rendering/visuals-register.d.ts +0 -351
- package/dist/types/utils/cesium-entity-styler.d.ts +0 -103
- package/dist/types/utils/drawing-utils.d.ts +0 -59
- package/dist/types/utils/entity-utils.d.ts +0 -133
- package/dist/types/utils/measure-utils.d.ts +0 -20
- package/dist/types/utils/simplify-geometry.d.ts +0 -19
- package/dist/types/utils/view-utils.d.ts +0 -101
- package/dist/types/viewer/cesium-view-monitor.d.ts +0 -35
- package/dist/types/viewer/viewer-event-tracker.d.ts +0 -47
- package/dist/types/viewer/viewer-utils.d.ts +0 -88
- package/dist/types/widgets/common/draw-3d-polygon.d.ts +0 -62
- package/dist/types/widgets/common/draw-3d-polyline.d.ts +0 -50
- package/dist/types/widgets/common/measure-creator.d.ts +0 -60
- package/dist/types/widgets/common/walkthrough.d.ts +0 -37
- package/dist/types/widgets/controls-view-bar/widget-control-view-bar-fullscreen.d.ts +0 -10
- package/dist/types/widgets/controls-view-bar/widget-control-view-bar-search.d.ts +0 -18
- package/dist/types/widgets/controls-view-bar/widget-control-view-bar.d.ts +0 -23
- package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.d.ts +0 -11
- package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-user.d.ts +0 -24
- package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab.d.ts +0 -17
- package/dist/types/widgets/widget-bookmarks.d.ts +0 -40
- package/dist/types/widgets/widget-branding.d.ts +0 -15
- package/dist/types/widgets/widget-cursorbar.d.ts +0 -48
- package/dist/types/widgets/widget-embedded-info-view.d.ts +0 -13
- package/dist/types/widgets/widget-info-view.d.ts +0 -21
- package/dist/types/widgets/widget-left-panel.d.ts +0 -73
- package/dist/types/widgets/widget-nav-compass.d.ts +0 -27
- package/dist/types/widgets/widget-view-bar.d.ts +0 -37
- package/dist/types/widgets/widget.d.ts +0 -29
|
@@ -1,1328 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TileRenderEngine = void 0;
|
|
4
|
-
const bruce_models_1 = require("bruce-models");
|
|
5
|
-
const Cesium = require("cesium");
|
|
6
|
-
const js_utils_1 = require("../internal/js-utils");
|
|
7
|
-
const viewer_utils_1 = require("../viewer/viewer-utils");
|
|
8
|
-
const viewer_event_tracker_1 = require("../viewer/viewer-event-tracker");
|
|
9
|
-
// Used to track if a current in-progress render is the latest.
|
|
10
|
-
// If we're midway through an async function that is rendering 10 imageries and this changes, then we stop the function.
|
|
11
|
-
const ITERATION_KEY = "nextspace-tile-render-engine-iteration";
|
|
12
|
-
function newIteration(viewer, tile) {
|
|
13
|
-
// Create key specific to the kind of tile we're rendering.
|
|
14
|
-
const key = ITERATION_KEY + tile;
|
|
15
|
-
// Generate a new iteration ID, include the tile type in it so we can identify it easier.
|
|
16
|
-
const value = bruce_models_1.ObjectUtils.UId() + tile;
|
|
17
|
-
viewer[key] = value;
|
|
18
|
-
return value;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Checks if a given iteration is still the active one for a given viewer.
|
|
22
|
-
* @param viewer
|
|
23
|
-
* @param iteration
|
|
24
|
-
*/
|
|
25
|
-
function assertIteration(viewer, iteration) {
|
|
26
|
-
const suffix = iteration.includes("imagery") ? "imagery" : "terrain";
|
|
27
|
-
return viewer[ITERATION_KEY + suffix] === iteration;
|
|
28
|
-
}
|
|
29
|
-
const DEFAULT_STAMEN_KEY = "a652e5f2-8d9e-4706-a9d9-d5daa7d4c89e";
|
|
30
|
-
const DEFAULT_THUNDERFOREST_KEY = "c3c1b64fbb5240be8e0d284a01e33107";
|
|
31
|
-
const re = /[\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E3C-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FCD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA698-\uA69E\uA6F8-\uA6FF\uA78F\uA794-\uA79F\uA7AB-\uA7F7\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C5-\uA8CD\uA8DA-\uA8DF\uA8FC-\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9E0-\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAA7C-\uAA7F\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F-\uABBF\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE27-\uFE2F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]/g;
|
|
32
|
-
/**
|
|
33
|
-
* Prepares a legacy imagery name for comparison.
|
|
34
|
-
* Legacy data did not have ids... we do what we can.
|
|
35
|
-
* @param name
|
|
36
|
-
* @returns
|
|
37
|
-
*/
|
|
38
|
-
function prepLegacyName(name) {
|
|
39
|
-
if (!name) {
|
|
40
|
-
return "";
|
|
41
|
-
}
|
|
42
|
-
name = name.replace(/\s/g, "");
|
|
43
|
-
name = name.replace(re, "");
|
|
44
|
-
name = name.toLowerCase();
|
|
45
|
-
if (name === "cwt") {
|
|
46
|
-
name = "cesiumworldterrain";
|
|
47
|
-
}
|
|
48
|
-
return name;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Constructs an terrain provider for a default terrain type.
|
|
52
|
-
* Warning: This does not add it to the viewer.
|
|
53
|
-
* @param id
|
|
54
|
-
* @returns
|
|
55
|
-
*/
|
|
56
|
-
async function renderDefaultTerrTile(id) {
|
|
57
|
-
const CESIUM = Cesium;
|
|
58
|
-
let provider;
|
|
59
|
-
switch (id) {
|
|
60
|
-
case bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain:
|
|
61
|
-
// Handling difference between old and new cesium versions.
|
|
62
|
-
if (CESIUM.createWorldTerrainAsync) {
|
|
63
|
-
provider = await CESIUM.createWorldTerrainAsync({
|
|
64
|
-
requestVertexNormals: true,
|
|
65
|
-
requestWaterMask: false
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
else if (CESIUM.createWorldTerrain) {
|
|
69
|
-
provider = CESIUM.createWorldTerrain({
|
|
70
|
-
requestVertexNormals: true,
|
|
71
|
-
requestWaterMask: false
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
break;
|
|
75
|
-
case bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain:
|
|
76
|
-
provider = new Cesium.EllipsoidTerrainProvider();
|
|
77
|
-
break;
|
|
78
|
-
case bruce_models_1.ProjectViewTile.EDefaultTerrain.LINZ:
|
|
79
|
-
// Handling difference between old and new cesium versions.
|
|
80
|
-
if (CESIUM.CesiumTerrainProvider.hasOwnProperty("fromUrl")) {
|
|
81
|
-
provider = await CESIUM.CesiumTerrainProvider.fromUrl("https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem", {
|
|
82
|
-
requestVertexNormals: true,
|
|
83
|
-
requestWaterMask: false,
|
|
84
|
-
requestMetadata: false
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
provider = new CESIUM.CesiumTerrainProvider({
|
|
89
|
-
url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
|
|
90
|
-
requestVertexNormals: true,
|
|
91
|
-
requestWaterMask: false,
|
|
92
|
-
requestMetadata: false
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
return provider;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Maps a legacy terrain's name to a default terrain id.
|
|
101
|
-
* @param name
|
|
102
|
-
* @returns
|
|
103
|
-
*/
|
|
104
|
-
function legacyTerrIdToDefaultId(name) {
|
|
105
|
-
name = prepLegacyName(name);
|
|
106
|
-
switch (name) {
|
|
107
|
-
case "cesiumworldterrain":
|
|
108
|
-
return bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain;
|
|
109
|
-
case "linz":
|
|
110
|
-
return bruce_models_1.ProjectViewTile.EDefaultTerrain.LINZ;
|
|
111
|
-
case "flatterrain":
|
|
112
|
-
return bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Returns if a given legacy terrain's name correspondings to a default source.
|
|
117
|
-
* @param name
|
|
118
|
-
* @returns
|
|
119
|
-
*/
|
|
120
|
-
function isLegacyTerrainDefault(name) {
|
|
121
|
-
name = legacyTerrIdToDefaultId(name);
|
|
122
|
-
return bruce_models_1.ProjectViewTile.DefaultTerrains.find(x => x.id == name) != null;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Returns a best attempt at a unique id from a given legacy terrain source.
|
|
126
|
-
* @param source
|
|
127
|
-
* @returns
|
|
128
|
-
*/
|
|
129
|
-
function createLegacyTerrId(source) {
|
|
130
|
-
if (!source) {
|
|
131
|
-
return "";
|
|
132
|
-
}
|
|
133
|
-
if (isLegacyTerrainDefault(source.Name)) {
|
|
134
|
-
return source.Name;
|
|
135
|
-
}
|
|
136
|
-
if (source.SourceUrl) {
|
|
137
|
-
return source.SourceUrl;
|
|
138
|
-
}
|
|
139
|
-
return "";
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Returns a best attempt at a unique id from a given legacy imagery source.
|
|
143
|
-
* @param source
|
|
144
|
-
* @returns
|
|
145
|
-
*/
|
|
146
|
-
function createLegacyImageryId(source) {
|
|
147
|
-
if (!source) {
|
|
148
|
-
return "";
|
|
149
|
-
}
|
|
150
|
-
if (isLegacyImageryDefault(source.Name)) {
|
|
151
|
-
return source.Name;
|
|
152
|
-
}
|
|
153
|
-
if (source.SourceUrl) {
|
|
154
|
-
return source.SourceUrl;
|
|
155
|
-
}
|
|
156
|
-
return "";
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Turns Cesium collection of enabled imageries into an array.
|
|
160
|
-
* @param viewer
|
|
161
|
-
* @returns
|
|
162
|
-
*/
|
|
163
|
-
function gatherEnabledImageries(viewer) {
|
|
164
|
-
const collection = viewer.imageryLayers;
|
|
165
|
-
const layers = [];
|
|
166
|
-
for (let i = 0; i < collection.length; i++) {
|
|
167
|
-
const layer = collection.get(i);
|
|
168
|
-
layers.push(layer);
|
|
169
|
-
}
|
|
170
|
-
return layers;
|
|
171
|
-
}
|
|
172
|
-
async function findKey(apiGetter, accountId, keyId) {
|
|
173
|
-
let key = null;
|
|
174
|
-
try {
|
|
175
|
-
const { programKey: pKey } = await bruce_models_1.ProgramKey.Get({
|
|
176
|
-
api: apiGetter.getApi(accountId),
|
|
177
|
-
programId: keyId
|
|
178
|
-
});
|
|
179
|
-
key = pKey === null || pKey === void 0 ? void 0 : pKey.Key;
|
|
180
|
-
}
|
|
181
|
-
catch (e) {
|
|
182
|
-
let doLog = true;
|
|
183
|
-
if (e && typeof e === "object") {
|
|
184
|
-
if (e.Code == "NotFound") {
|
|
185
|
-
doLog = false;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
if (doLog) {
|
|
189
|
-
console.error(e);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
if (key && key.length) {
|
|
193
|
-
return key;
|
|
194
|
-
}
|
|
195
|
-
// Default to template one if the account doesn't have a key.
|
|
196
|
-
else if (bruce_models_1.Api.TEMPLATE_ACCOUNT_ID != accountId) {
|
|
197
|
-
return findKey(apiGetter, bruce_models_1.Api.TEMPLATE_ACCOUNT_ID, keyId);
|
|
198
|
-
}
|
|
199
|
-
// No nice UI yet for setting it so we'll have a hard-coded one for the time being.
|
|
200
|
-
else if (keyId == bruce_models_1.ProgramKey.EProgramId.Thunderforest) {
|
|
201
|
-
return DEFAULT_THUNDERFOREST_KEY;
|
|
202
|
-
}
|
|
203
|
-
// Same story for stamen.
|
|
204
|
-
else if (keyId == bruce_models_1.ProgramKey.EProgramId.StadiaMaps) {
|
|
205
|
-
return DEFAULT_STAMEN_KEY;
|
|
206
|
-
}
|
|
207
|
-
return null;
|
|
208
|
-
}
|
|
209
|
-
// Constants for the ion assets.
|
|
210
|
-
// Older CesiumJS doesn't have these so we have to define them here.
|
|
211
|
-
const CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL = 2;
|
|
212
|
-
const CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL_WITH_LABELS = 3;
|
|
213
|
-
const CESIUM_ION_WORLD_IMAGERY_STYLE_ROAD = 4;
|
|
214
|
-
/**
|
|
215
|
-
* Constructs an imagery provider for a default imagery type.
|
|
216
|
-
* Warning: This does not add it to the viewer.
|
|
217
|
-
* @param apiGetter
|
|
218
|
-
* @param id
|
|
219
|
-
* @returns
|
|
220
|
-
*/
|
|
221
|
-
async function renderDefaultMapTile(apiGetter, id) {
|
|
222
|
-
var _a, _b, _c;
|
|
223
|
-
const CESIUM = Cesium;
|
|
224
|
-
let provider;
|
|
225
|
-
switch (id) {
|
|
226
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial:
|
|
227
|
-
// Handling difference between old and new cesium versions.
|
|
228
|
-
if ((_a = Cesium["IonImageryProvider"]) === null || _a === void 0 ? void 0 : _a["fromAssetId"]) {
|
|
229
|
-
provider = CESIUM.IonImageryProvider.fromAssetId(CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL);
|
|
230
|
-
break;
|
|
231
|
-
}
|
|
232
|
-
else if (Cesium["createWorldImagery"]) {
|
|
233
|
-
// No style is needed for this one.
|
|
234
|
-
provider = CESIUM.createWorldImagery();
|
|
235
|
-
break;
|
|
236
|
-
}
|
|
237
|
-
else if (Cesium["createWorldImageryAsync"]) {
|
|
238
|
-
provider = await CESIUM.createWorldImageryAsync();
|
|
239
|
-
break;
|
|
240
|
-
}
|
|
241
|
-
else if (Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
|
|
242
|
-
provider = await CESIUM.BingMapsImageryProvider.fromUrl("https://dev.virtualearth.net", {
|
|
243
|
-
mapStyle: Cesium.BingMapsStyle.AERIAL,
|
|
244
|
-
key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
|
|
245
|
-
});
|
|
246
|
-
break;
|
|
247
|
-
}
|
|
248
|
-
else {
|
|
249
|
-
provider = new CESIUM.BingMapsImageryProvider({
|
|
250
|
-
url: "https://dev.virtualearth.net",
|
|
251
|
-
mapStyle: Cesium.BingMapsStyle.AERIAL,
|
|
252
|
-
key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
|
|
253
|
-
});
|
|
254
|
-
break;
|
|
255
|
-
}
|
|
256
|
-
break;
|
|
257
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels:
|
|
258
|
-
// Handling difference between old and new cesium versions.
|
|
259
|
-
if ((_b = Cesium["IonImageryProvider"]) === null || _b === void 0 ? void 0 : _b["fromAssetId"]) {
|
|
260
|
-
provider = CESIUM.IonImageryProvider.fromAssetId(CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL_WITH_LABELS);
|
|
261
|
-
break;
|
|
262
|
-
}
|
|
263
|
-
else if (Cesium["createWorldImagery"]) {
|
|
264
|
-
provider = CESIUM.createWorldImagery({
|
|
265
|
-
style: CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL_WITH_LABELS
|
|
266
|
-
});
|
|
267
|
-
break;
|
|
268
|
-
}
|
|
269
|
-
else if (Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
|
|
270
|
-
provider = await CESIUM.BingMapsImageryProvider.fromUrl("https://dev.virtualearth.net", {
|
|
271
|
-
mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS,
|
|
272
|
-
key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
|
|
273
|
-
});
|
|
274
|
-
break;
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
provider = new CESIUM.BingMapsImageryProvider({
|
|
278
|
-
url: "https://dev.virtualearth.net",
|
|
279
|
-
mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS,
|
|
280
|
-
key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
|
|
281
|
-
});
|
|
282
|
-
break;
|
|
283
|
-
}
|
|
284
|
-
break;
|
|
285
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads:
|
|
286
|
-
// Handling difference between old and new cesium versions.
|
|
287
|
-
if ((_c = Cesium["IonImageryProvider"]) === null || _c === void 0 ? void 0 : _c["fromAssetId"]) {
|
|
288
|
-
provider = CESIUM.IonImageryProvider.fromAssetId(CESIUM_ION_WORLD_IMAGERY_STYLE_ROAD);
|
|
289
|
-
break;
|
|
290
|
-
}
|
|
291
|
-
else if (Cesium["createWorldImagery"]) {
|
|
292
|
-
provider = CESIUM.createWorldImagery({
|
|
293
|
-
style: CESIUM_ION_WORLD_IMAGERY_STYLE_ROAD
|
|
294
|
-
});
|
|
295
|
-
break;
|
|
296
|
-
}
|
|
297
|
-
// Handling difference between old and new cesium versions.
|
|
298
|
-
else if (Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
|
|
299
|
-
provider = await CESIUM.BingMapsImageryProvider.fromUrl("https://dev.virtualearth.net", {
|
|
300
|
-
mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND,
|
|
301
|
-
key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
|
|
302
|
-
});
|
|
303
|
-
break;
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
306
|
-
provider = new CESIUM.BingMapsImageryProvider({
|
|
307
|
-
url: "https://dev.virtualearth.net",
|
|
308
|
-
mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND,
|
|
309
|
-
key: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.BingMaps)
|
|
310
|
-
});
|
|
311
|
-
break;
|
|
312
|
-
}
|
|
313
|
-
break;
|
|
314
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite:
|
|
315
|
-
provider = new Cesium.MapboxImageryProvider({
|
|
316
|
-
mapId: "mapbox.satellite",
|
|
317
|
-
accessToken: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Mapbox)
|
|
318
|
-
});
|
|
319
|
-
break;
|
|
320
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreets:
|
|
321
|
-
provider = new Cesium.MapboxStyleImageryProvider({
|
|
322
|
-
styleId: "satellite-streets-v11",
|
|
323
|
-
accessToken: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Mapbox)
|
|
324
|
-
});
|
|
325
|
-
break;
|
|
326
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic:
|
|
327
|
-
provider = new Cesium.MapboxStyleImageryProvider({
|
|
328
|
-
styleId: "streets-v11",
|
|
329
|
-
accessToken: await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Mapbox)
|
|
330
|
-
});
|
|
331
|
-
break;
|
|
332
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldImagery:
|
|
333
|
-
// Handling difference between old and new cesium versions.
|
|
334
|
-
if (Cesium.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) {
|
|
335
|
-
provider = await CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", {
|
|
336
|
-
enablePickFeatures: false
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
else {
|
|
340
|
-
provider = new CESIUM.ArcGisMapServerImageryProvider({
|
|
341
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
|
|
342
|
-
enablePickFeatures: false
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
break;
|
|
346
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap:
|
|
347
|
-
// Handling difference between old and new cesium versions.
|
|
348
|
-
if (Cesium.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) {
|
|
349
|
-
provider = await CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", {
|
|
350
|
-
enablePickFeatures: false
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
else {
|
|
354
|
-
provider = new CESIUM.ArcGisMapServerImageryProvider({
|
|
355
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
|
|
356
|
-
enablePickFeatures: false
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
break;
|
|
360
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriNationalGeographic:
|
|
361
|
-
// Handling difference between old and new cesium versions.
|
|
362
|
-
if (CESIUM.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) {
|
|
363
|
-
provider = await CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/", {
|
|
364
|
-
enablePickFeatures: false
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
else {
|
|
368
|
-
provider = new CESIUM.ArcGisMapServerImageryProvider({
|
|
369
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
|
|
370
|
-
enablePickFeatures: false
|
|
371
|
-
});
|
|
372
|
-
}
|
|
373
|
-
break;
|
|
374
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.OpenStreetMap:
|
|
375
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
376
|
-
url: "https://a.tile.openstreetmap.org/"
|
|
377
|
-
});
|
|
378
|
-
break;
|
|
379
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.LINZ:
|
|
380
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
381
|
-
url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-img",
|
|
382
|
-
fileExtension: "jpg"
|
|
383
|
-
});
|
|
384
|
-
break;
|
|
385
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenWaterColor:
|
|
386
|
-
provider = provider = new Cesium.UrlTemplateImageryProvider({
|
|
387
|
-
url: `https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg?api_key=${await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.StadiaMaps)}`,
|
|
388
|
-
credit: '© Stadia Maps, © OpenMapTiles © OpenStreetMap contributors',
|
|
389
|
-
maximumLevel: 16
|
|
390
|
-
});
|
|
391
|
-
break;
|
|
392
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenToner:
|
|
393
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
394
|
-
url: `https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png?api_key=${await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.StadiaMaps)}`,
|
|
395
|
-
credit: '© Stadia Maps, © OpenMapTiles © OpenStreetMap contributors',
|
|
396
|
-
maximumLevel: 18
|
|
397
|
-
});
|
|
398
|
-
break;
|
|
399
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.ThunderforestCycle:
|
|
400
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
401
|
-
url: `https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Thunderforest)}`,
|
|
402
|
-
credit: '© Thunderforest, © OpenStreetMap contributors',
|
|
403
|
-
maximumLevel: 22
|
|
404
|
-
});
|
|
405
|
-
break;
|
|
406
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.ThunderforestTransport:
|
|
407
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
408
|
-
url: `https://tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Thunderforest)}`,
|
|
409
|
-
credit: '© Thunderforest, © OpenStreetMap contributors',
|
|
410
|
-
maximumLevel: 22
|
|
411
|
-
});
|
|
412
|
-
break;
|
|
413
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.ThunderforestLandscape:
|
|
414
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
415
|
-
url: `https://tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Thunderforest)}`,
|
|
416
|
-
credit: '© Thunderforest, © OpenStreetMap contributors',
|
|
417
|
-
maximumLevel: 22
|
|
418
|
-
});
|
|
419
|
-
break;
|
|
420
|
-
case bruce_models_1.ProjectViewTile.EDefaultImagery.Grid:
|
|
421
|
-
provider = new Cesium.GridImageryProvider({
|
|
422
|
-
tilingScheme: new Cesium.GeographicTilingScheme(),
|
|
423
|
-
cells: 0,
|
|
424
|
-
color: Cesium.Color.fromCssColorString("rgb(97, 151, 237)"),
|
|
425
|
-
glowColor: Cesium.Color.fromCssColorString("rgb(54, 54, 54)"),
|
|
426
|
-
glowWidth: 4,
|
|
427
|
-
backgroundColor: Cesium.Color.TRANSPARENT,
|
|
428
|
-
tileWidth: 256,
|
|
429
|
-
tileHeight: 256,
|
|
430
|
-
canvasSize: 256
|
|
431
|
-
});
|
|
432
|
-
break;
|
|
433
|
-
}
|
|
434
|
-
// If the provider is a promise then we'll wait for it.
|
|
435
|
-
if (provider instanceof Promise) {
|
|
436
|
-
provider = await provider;
|
|
437
|
-
}
|
|
438
|
-
return provider;
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Maps a legacy imagery's name to a default imagery id.
|
|
442
|
-
* @param name
|
|
443
|
-
* @returns
|
|
444
|
-
*/
|
|
445
|
-
function legacyMapIdToDefaultId(name) {
|
|
446
|
-
name = prepLegacyName(name);
|
|
447
|
-
switch (name) {
|
|
448
|
-
case "bingmapsaerial":
|
|
449
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial;
|
|
450
|
-
case "bingmapsaerialwithlabels":
|
|
451
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels;
|
|
452
|
-
case "bingmapsroads":
|
|
453
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads;
|
|
454
|
-
case "mapboxsatellite":
|
|
455
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite;
|
|
456
|
-
case "mapboxstreets":
|
|
457
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreets;
|
|
458
|
-
case "mapboxstreetsclassic":
|
|
459
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic;
|
|
460
|
-
case "esriworldimagery":
|
|
461
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldImagery;
|
|
462
|
-
case "esriworldstreetmap":
|
|
463
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap;
|
|
464
|
-
case "esrinationalgeographic":
|
|
465
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.EsriNationalGeographic;
|
|
466
|
-
case "openstreetmap":
|
|
467
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.OpenStreetMap;
|
|
468
|
-
case "stamenwatercolor":
|
|
469
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.StamenWaterColor;
|
|
470
|
-
case "stamentoner":
|
|
471
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.StamenToner;
|
|
472
|
-
case "linz":
|
|
473
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.LINZ;
|
|
474
|
-
case "grid":
|
|
475
|
-
return bruce_models_1.ProjectViewTile.EDefaultImagery.Grid;
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
/**
|
|
479
|
-
* Returns if a given legacy imagery's name correspondings to a default source.
|
|
480
|
-
* @param name
|
|
481
|
-
* @returns
|
|
482
|
-
*/
|
|
483
|
-
function isLegacyImageryDefault(name) {
|
|
484
|
-
name = legacyMapIdToDefaultId(name);
|
|
485
|
-
return bruce_models_1.ProjectViewTile.DefaultImagery.find(x => x.id == name) != null;
|
|
486
|
-
}
|
|
487
|
-
/**
|
|
488
|
-
* We don't need to provide the "." in the file extension to Cesium's providers.
|
|
489
|
-
* @param ext
|
|
490
|
-
* @returns
|
|
491
|
-
*/
|
|
492
|
-
function prepareFileExt(ext) {
|
|
493
|
-
if (!ext) {
|
|
494
|
-
return null;
|
|
495
|
-
}
|
|
496
|
-
ext = ext.replace(".", "");
|
|
497
|
-
return ext;
|
|
498
|
-
}
|
|
499
|
-
/**
|
|
500
|
-
* Creates an imagery layer from a given provider.
|
|
501
|
-
* This exists because the constructor for it has changed between cesium versions.
|
|
502
|
-
* @param provider
|
|
503
|
-
* @returns
|
|
504
|
-
*/
|
|
505
|
-
function createImageryLayer(provider) {
|
|
506
|
-
const CIL = Cesium.ImageryLayer;
|
|
507
|
-
if (CIL.length == 2) {
|
|
508
|
-
return new CIL(provider, {});
|
|
509
|
-
}
|
|
510
|
-
return new CIL(provider);
|
|
511
|
-
}
|
|
512
|
-
var TileRenderEngine;
|
|
513
|
-
(function (TileRenderEngine) {
|
|
514
|
-
/**
|
|
515
|
-
* Legacy data did name comparisons instead of ids.
|
|
516
|
-
* We need to strip spacing, remove special characters, and make lowercase before comparison...
|
|
517
|
-
* @param nameA
|
|
518
|
-
* @param nameB
|
|
519
|
-
*/
|
|
520
|
-
function CompareLegacyNames(nameA, nameB) {
|
|
521
|
-
nameA = prepLegacyName(nameA);
|
|
522
|
-
nameB = prepLegacyName(nameB);
|
|
523
|
-
return nameA === nameB;
|
|
524
|
-
}
|
|
525
|
-
TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
|
|
526
|
-
let Map;
|
|
527
|
-
(function (Map) {
|
|
528
|
-
let LegacyNavigator;
|
|
529
|
-
(function (LegacyNavigator) {
|
|
530
|
-
async function Render(params) {
|
|
531
|
-
if (!params.apiGetter) {
|
|
532
|
-
params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
|
|
533
|
-
}
|
|
534
|
-
const CESIUM = Cesium;
|
|
535
|
-
const enabled = gatherEnabledImageries(params.viewer);
|
|
536
|
-
const tile = params.data;
|
|
537
|
-
const bId = createLegacyImageryId(tile);
|
|
538
|
-
let layer = enabled.find(x => x._bId == bId);
|
|
539
|
-
if (layer) {
|
|
540
|
-
// Already exists.
|
|
541
|
-
}
|
|
542
|
-
else if (isLegacyImageryDefault(tile.Name)) {
|
|
543
|
-
const defaultId = legacyMapIdToDefaultId(tile.Name);
|
|
544
|
-
const provider = await renderDefaultMapTile(params.apiGetter, defaultId);
|
|
545
|
-
if (provider) {
|
|
546
|
-
layer = createImageryLayer(provider);
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
else if (tile.SourceUrl) {
|
|
550
|
-
let provider = null;
|
|
551
|
-
let min = tile.Minimum;
|
|
552
|
-
let max = tile.Maximum;
|
|
553
|
-
if (min != undefined && min <= -1) {
|
|
554
|
-
min = undefined;
|
|
555
|
-
}
|
|
556
|
-
if (max != undefined && max <= -1) {
|
|
557
|
-
max = undefined;
|
|
558
|
-
}
|
|
559
|
-
switch (tile.Type) {
|
|
560
|
-
case "BruceImagery":
|
|
561
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
562
|
-
url: tile.SourceUrl,
|
|
563
|
-
tileHeight: 256,
|
|
564
|
-
tileWidth: 256
|
|
565
|
-
});
|
|
566
|
-
break;
|
|
567
|
-
case "ArcGisImagery":
|
|
568
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
569
|
-
url: tile.SourceUrl,
|
|
570
|
-
fileExtension: prepareFileExt(tile.FileExtension),
|
|
571
|
-
minimumLevel: min,
|
|
572
|
-
maximumLevel: max
|
|
573
|
-
});
|
|
574
|
-
break;
|
|
575
|
-
case "TileMapImagery":
|
|
576
|
-
if (Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) {
|
|
577
|
-
provider = await CESIUM.TileMapServiceImageryProvider.fromUrl(tile.SourceUrl, {
|
|
578
|
-
minimumLevel: min,
|
|
579
|
-
maximumLevel: max,
|
|
580
|
-
fileExtension: prepareFileExt(tile.FileExtension)
|
|
581
|
-
});
|
|
582
|
-
}
|
|
583
|
-
else {
|
|
584
|
-
provider = new CESIUM.TileMapServiceImageryProvider({
|
|
585
|
-
url: tile.SourceUrl,
|
|
586
|
-
fileExtension: prepareFileExt(tile.FileExtension),
|
|
587
|
-
minimumLevel: min,
|
|
588
|
-
maximumLevel: max
|
|
589
|
-
});
|
|
590
|
-
}
|
|
591
|
-
break;
|
|
592
|
-
case "OpenStreetMapImagery":
|
|
593
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
594
|
-
url: tile.SourceUrl,
|
|
595
|
-
fileExtension: prepareFileExt(tile.FileExtension),
|
|
596
|
-
minimumLevel: min,
|
|
597
|
-
maximumLevel: max
|
|
598
|
-
});
|
|
599
|
-
break;
|
|
600
|
-
case "MapBoxImagery":
|
|
601
|
-
var mapboxKey = tile.ProgramKey ? tile.ProgramKey : await findKey(params.apiGetter, params.apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Mapbox);
|
|
602
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
603
|
-
url: "https://api.mapbox.com/styles/v1/"
|
|
604
|
-
+ tile.MapBoxUsername + "/" + tile.MapBoxID +
|
|
605
|
-
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
606
|
-
+ mapboxKey
|
|
607
|
-
});
|
|
608
|
-
break;
|
|
609
|
-
}
|
|
610
|
-
if (provider) {
|
|
611
|
-
layer = createImageryLayer(provider);
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
if (layer) {
|
|
615
|
-
layer._bId = bId;
|
|
616
|
-
layer._bName = tile.Name;
|
|
617
|
-
if (!params.viewer.imageryLayers.contains(layer)) {
|
|
618
|
-
params.viewer.imageryLayers.add(layer);
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
params.viewer.scene.requestRender();
|
|
622
|
-
return layer;
|
|
623
|
-
}
|
|
624
|
-
LegacyNavigator.Render = Render;
|
|
625
|
-
async function RenderView(params) {
|
|
626
|
-
var _a;
|
|
627
|
-
if (!params.apiGetter) {
|
|
628
|
-
params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
|
|
629
|
-
}
|
|
630
|
-
const iteration = newIteration(params.viewer, "imagery");
|
|
631
|
-
const api = params.apiGetter.getApi();
|
|
632
|
-
const view = (await bruce_models_1.ProjectView.Get({
|
|
633
|
-
api,
|
|
634
|
-
viewId: params.viewId
|
|
635
|
-
})).view;
|
|
636
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
637
|
-
return;
|
|
638
|
-
}
|
|
639
|
-
let bookmark = null;
|
|
640
|
-
if (params.bookmarkId) {
|
|
641
|
-
bookmark = (await bruce_models_1.ProjectViewBookmark.Get({
|
|
642
|
-
api,
|
|
643
|
-
viewId: params.viewId,
|
|
644
|
-
bookmarkId: params.bookmarkId
|
|
645
|
-
})).bookmark;
|
|
646
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
647
|
-
return;
|
|
648
|
-
}
|
|
649
|
-
}
|
|
650
|
-
const vSettings = view.Settings;
|
|
651
|
-
const bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
|
|
652
|
-
const data = [];
|
|
653
|
-
const dataNames = [];
|
|
654
|
-
if (bSettings === null || bSettings === void 0 ? void 0 : bSettings.imagery) {
|
|
655
|
-
for (let i = 0; i < bSettings.imagery.length; i++) {
|
|
656
|
-
const source = bSettings.imagery[i];
|
|
657
|
-
dataNames.push(source.title);
|
|
658
|
-
}
|
|
659
|
-
}
|
|
660
|
-
else if (vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultMapTiles) {
|
|
661
|
-
dataNames.push(vSettings.DefaultMapTiles);
|
|
662
|
-
}
|
|
663
|
-
const tiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) !== null && _a !== void 0 ? _a : [];
|
|
664
|
-
await bruce_models_1.ProjectViewLegacyTile.MergeMapTemplateData({
|
|
665
|
-
getter: params.apiGetter,
|
|
666
|
-
sources: tiles,
|
|
667
|
-
addIfMissing: (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) == null
|
|
668
|
-
});
|
|
669
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
670
|
-
return;
|
|
671
|
-
}
|
|
672
|
-
for (let i = 0; i < dataNames.length; i++) {
|
|
673
|
-
const name = dataNames[i];
|
|
674
|
-
for (let j = 0; j < tiles.length; j++) {
|
|
675
|
-
const tile = tiles[j];
|
|
676
|
-
if (CompareLegacyNames(tile.Name, name)) {
|
|
677
|
-
data.push(tile);
|
|
678
|
-
break;
|
|
679
|
-
}
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
let enabled = gatherEnabledImageries(params.viewer);
|
|
683
|
-
const layers = [];
|
|
684
|
-
// Gather layers we want to render.
|
|
685
|
-
// Any new layer is added to viewer at the bottom.
|
|
686
|
-
if (params.ignoreIds) {
|
|
687
|
-
for (let i = 0; i < params.ignoreIds.length; i++) {
|
|
688
|
-
const id = params.ignoreIds[i];
|
|
689
|
-
const layer = enabled.find((x) => {
|
|
690
|
-
const layer = x;
|
|
691
|
-
if (layer._bId === id) {
|
|
692
|
-
return true;
|
|
693
|
-
}
|
|
694
|
-
});
|
|
695
|
-
if (layer) {
|
|
696
|
-
layers.push(layer);
|
|
697
|
-
}
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
for (let i = 0; i < data.length; i++) {
|
|
701
|
-
const tile = data[i];
|
|
702
|
-
const layer = await Render({
|
|
703
|
-
apiGetter: params.apiGetter,
|
|
704
|
-
viewer: params.viewer,
|
|
705
|
-
data: tile,
|
|
706
|
-
});
|
|
707
|
-
if (layer) {
|
|
708
|
-
layers.push(layer);
|
|
709
|
-
}
|
|
710
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
711
|
-
return;
|
|
712
|
-
}
|
|
713
|
-
}
|
|
714
|
-
// Sort currently enabled (after new ones added) to match desired order.
|
|
715
|
-
enabled = gatherEnabledImageries(params.viewer);
|
|
716
|
-
enabled.sort((a, b) => {
|
|
717
|
-
const indexA = layers.indexOf(a);
|
|
718
|
-
const indexB = layers.indexOf(b);
|
|
719
|
-
if (indexA < 0 && indexB < 0) {
|
|
720
|
-
return 0;
|
|
721
|
-
}
|
|
722
|
-
if (indexA < 0) {
|
|
723
|
-
return 1;
|
|
724
|
-
}
|
|
725
|
-
if (indexB < 0) {
|
|
726
|
-
return -1;
|
|
727
|
-
}
|
|
728
|
-
return indexA - indexB;
|
|
729
|
-
});
|
|
730
|
-
// Move enabled layers to match desired order.
|
|
731
|
-
// Remove any layers that aren't in enabled list.
|
|
732
|
-
for (let i = 0; i < enabled.length; i++) {
|
|
733
|
-
const layer = enabled[i];
|
|
734
|
-
if (layers.includes(layer)) {
|
|
735
|
-
params.viewer.imageryLayers.raiseToTop(layer);
|
|
736
|
-
}
|
|
737
|
-
else {
|
|
738
|
-
params.viewer.imageryLayers.remove(layer);
|
|
739
|
-
}
|
|
740
|
-
}
|
|
741
|
-
params.viewer.scene.requestRender();
|
|
742
|
-
}
|
|
743
|
-
LegacyNavigator.RenderView = RenderView;
|
|
744
|
-
})(LegacyNavigator = Map.LegacyNavigator || (Map.LegacyNavigator = {}));
|
|
745
|
-
let Navigator;
|
|
746
|
-
(function (Navigator) {
|
|
747
|
-
async function GetOrCreateLayer(params) {
|
|
748
|
-
let { viewer, apiGetter, meta } = params;
|
|
749
|
-
if (!apiGetter) {
|
|
750
|
-
apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
|
|
751
|
-
}
|
|
752
|
-
const CESIUM = Cesium;
|
|
753
|
-
// Don't create a new layer if one already exists.
|
|
754
|
-
const enabled = gatherEnabledImageries(viewer);
|
|
755
|
-
for (let i = 0; i < enabled.length; i++) {
|
|
756
|
-
const layer = enabled[i];
|
|
757
|
-
const layerMeta = layer._bMeta;
|
|
758
|
-
if (layerMeta && layerMeta.tilesetId === meta.tilesetId && layerMeta.accountId === meta.accountId) {
|
|
759
|
-
return layer;
|
|
760
|
-
}
|
|
761
|
-
}
|
|
762
|
-
const defaultImg = meta.accountId ? null : bruce_models_1.ProjectViewTile.DefaultImagery.find(x => x.id === meta.tilesetId);
|
|
763
|
-
let provider = null;
|
|
764
|
-
if (defaultImg) {
|
|
765
|
-
const NEEDS_CESIUM_TOKEN = [
|
|
766
|
-
bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial,
|
|
767
|
-
bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels,
|
|
768
|
-
bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads
|
|
769
|
-
];
|
|
770
|
-
// If we need a cesium token, and we don't have one, then we can't render this.
|
|
771
|
-
let shouldCreate = true;
|
|
772
|
-
if (NEEDS_CESIUM_TOKEN.includes(defaultImg.id)) {
|
|
773
|
-
shouldCreate = await viewer_utils_1.ViewerUtils.AssertIonToken(Cesium.Ion.defaultAccessToken);
|
|
774
|
-
}
|
|
775
|
-
if (shouldCreate) {
|
|
776
|
-
try {
|
|
777
|
-
provider = await renderDefaultMapTile(apiGetter, defaultImg.id);
|
|
778
|
-
}
|
|
779
|
-
catch (e) {
|
|
780
|
-
console.error(e);
|
|
781
|
-
viewer_utils_1.ViewerUtils.GetEventTracker(params.viewer).Warn(viewer_event_tracker_1.ViewerEventTracker.EDomain.TileImagery, "Imagery failed to load.", {
|
|
782
|
-
tilesetId: meta.tilesetId,
|
|
783
|
-
accountId: meta.accountId,
|
|
784
|
-
exception: e
|
|
785
|
-
});
|
|
786
|
-
}
|
|
787
|
-
}
|
|
788
|
-
else {
|
|
789
|
-
viewer_utils_1.ViewerUtils.GetEventTracker(params.viewer).Warn(viewer_event_tracker_1.ViewerEventTracker.EDomain.TileImagery, "Imagery failed to load because it requires a valid Cesium Ion Token to be set.", {
|
|
790
|
-
tilesetId: meta.tilesetId,
|
|
791
|
-
accountId: meta.accountId,
|
|
792
|
-
e: new Error("No Cesium Ion Token set.")
|
|
793
|
-
});
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
|
-
else {
|
|
797
|
-
const api = apiGetter.getApi(meta.accountId);
|
|
798
|
-
// Ensure regional url is loaded.
|
|
799
|
-
// When loading stuff in the same account as the default it's likely already loaded,
|
|
800
|
-
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
801
|
-
await api.Loading;
|
|
802
|
-
const { tileset } = await bruce_models_1.Tileset.Get({
|
|
803
|
-
api,
|
|
804
|
-
tilesetId: meta.tilesetId
|
|
805
|
-
});
|
|
806
|
-
let boundaries = undefined;
|
|
807
|
-
const settings = tileset === null || tileset === void 0 ? void 0 : tileset.settings;
|
|
808
|
-
if (settings && settings.boundaries) {
|
|
809
|
-
const minLat = settings.boundaries.minLatitude;
|
|
810
|
-
const maxLat = settings.boundaries.maxLatitude;
|
|
811
|
-
const minLon = settings.boundaries.minLongitude;
|
|
812
|
-
const maxLon = settings.boundaries.maxLongitude;
|
|
813
|
-
boundaries = Cesium.Rectangle.fromDegrees(minLon, minLat, maxLon, maxLat);
|
|
814
|
-
}
|
|
815
|
-
let minLevel = settings === null || settings === void 0 ? void 0 : settings.levelMin;
|
|
816
|
-
let maxLevel = settings === null || settings === void 0 ? void 0 : settings.levelMax;
|
|
817
|
-
const hasLevels = !isNaN(minLevel) && !isNaN(maxLevel);
|
|
818
|
-
if (tileset.type === bruce_models_1.Tileset.EType.GeoMap) {
|
|
819
|
-
let url = null;
|
|
820
|
-
if (tileset.loadUrl) {
|
|
821
|
-
url = tileset.loadUrl;
|
|
822
|
-
}
|
|
823
|
-
// To be removed.
|
|
824
|
-
else {
|
|
825
|
-
url = bruce_models_1.Tileset.GetPublicFileUrl({
|
|
826
|
-
api,
|
|
827
|
-
tilesetId: meta.tilesetId,
|
|
828
|
-
file: "",
|
|
829
|
-
viaCdn: true,
|
|
830
|
-
viaCdnCacheToken: tileset.generateVersion
|
|
831
|
-
});
|
|
832
|
-
}
|
|
833
|
-
// Nextspace imagery with a custom suffix.
|
|
834
|
-
// This usually means it was generated through another service.
|
|
835
|
-
if ((settings === null || settings === void 0 ? void 0 : settings.loadUrlSuffix) || url.endsWith(".png")) {
|
|
836
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
837
|
-
url: url,
|
|
838
|
-
tileHeight: 256,
|
|
839
|
-
tileWidth: 256,
|
|
840
|
-
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
841
|
-
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
842
|
-
});
|
|
843
|
-
}
|
|
844
|
-
// Typical Nextspace imagery.
|
|
845
|
-
else {
|
|
846
|
-
if (Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) {
|
|
847
|
-
provider = await CESIUM.TileMapServiceImageryProvider.fromUrl(url, {
|
|
848
|
-
fileExtension: "png",
|
|
849
|
-
// Tested to not cause increased lag.
|
|
850
|
-
rectangle: boundaries,
|
|
851
|
-
maximumLevel: hasLevels ? maxLevel : undefined,
|
|
852
|
-
minimumLevel: hasLevels ? minLevel : undefined,
|
|
853
|
-
});
|
|
854
|
-
}
|
|
855
|
-
else {
|
|
856
|
-
provider = new CESIUM.TileMapServiceImageryProvider({
|
|
857
|
-
url: url,
|
|
858
|
-
fileExtension: "png",
|
|
859
|
-
// Tested to not cause increased lag.
|
|
860
|
-
rectangle: boundaries,
|
|
861
|
-
maximumLevel: hasLevels ? maxLevel : undefined,
|
|
862
|
-
minimumLevel: hasLevels ? minLevel : undefined,
|
|
863
|
-
});
|
|
864
|
-
}
|
|
865
|
-
}
|
|
866
|
-
}
|
|
867
|
-
else if (tileset.type === bruce_models_1.Tileset.EType.ExternalGeoMap) {
|
|
868
|
-
const settings = tileset.settings;
|
|
869
|
-
switch (settings.mapType) {
|
|
870
|
-
case bruce_models_1.Tileset.Settings.EExternalMapType.CesiumIon:
|
|
871
|
-
var cesiumIonKey = settings.key ? settings.key : await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.CesiumIon);
|
|
872
|
-
if (Cesium.IonImageryProvider.hasOwnProperty("fromAssetId")) {
|
|
873
|
-
provider = await CESIUM.IonImageryProvider.fromAssetId(Number(settings.externalId), {
|
|
874
|
-
accessToken: cesiumIonKey
|
|
875
|
-
});
|
|
876
|
-
}
|
|
877
|
-
else {
|
|
878
|
-
provider = new CESIUM.IonImageryProvider({
|
|
879
|
-
assetId: Number(settings.externalId),
|
|
880
|
-
accessToken: cesiumIonKey
|
|
881
|
-
});
|
|
882
|
-
}
|
|
883
|
-
break;
|
|
884
|
-
case bruce_models_1.Tileset.Settings.EExternalMapType.MapBoxImagery:
|
|
885
|
-
var mapboxKey = settings.key ? settings.key : await findKey(apiGetter, apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.Mapbox);
|
|
886
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
887
|
-
url: "https://api.mapbox.com/styles/v1/"
|
|
888
|
-
+ settings.account + "/" + settings.styleId +
|
|
889
|
-
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
890
|
-
+ mapboxKey
|
|
891
|
-
});
|
|
892
|
-
break;
|
|
893
|
-
case bruce_models_1.Tileset.Settings.EExternalMapType.OpenStreetMapImagery:
|
|
894
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
895
|
-
url: settings.url,
|
|
896
|
-
fileExtension: prepareFileExt(settings.fileExtension),
|
|
897
|
-
// Unused until tested properly. In the past these settings caused large lag.
|
|
898
|
-
// rectangle: boundaries,
|
|
899
|
-
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
900
|
-
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
901
|
-
});
|
|
902
|
-
break;
|
|
903
|
-
case bruce_models_1.Tileset.Settings.EExternalMapType.TileMapImagery:
|
|
904
|
-
if (Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) {
|
|
905
|
-
provider = await CESIUM.TileMapServiceImageryProvider.fromUrl(settings.url, {
|
|
906
|
-
fileExtension: prepareFileExt(settings.fileExtension),
|
|
907
|
-
// Unused until tested properly. In the past these settings caused large lag.
|
|
908
|
-
// rectangle: boundaries,
|
|
909
|
-
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
910
|
-
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
911
|
-
});
|
|
912
|
-
}
|
|
913
|
-
else {
|
|
914
|
-
provider = new CESIUM.TileMapServiceImageryProvider({
|
|
915
|
-
url: settings.url,
|
|
916
|
-
fileExtension: prepareFileExt(settings.fileExtension),
|
|
917
|
-
// Unused until tested properly. In the past these settings caused large lag.
|
|
918
|
-
// rectangle: boundaries,
|
|
919
|
-
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
920
|
-
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
921
|
-
});
|
|
922
|
-
}
|
|
923
|
-
break;
|
|
924
|
-
case bruce_models_1.Tileset.Settings.EExternalMapType.CustomTemplate:
|
|
925
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
926
|
-
url: settings.url
|
|
927
|
-
});
|
|
928
|
-
break;
|
|
929
|
-
}
|
|
930
|
-
}
|
|
931
|
-
else if (tileset.type === bruce_models_1.Tileset.EType.EntitiesMap) {
|
|
932
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
933
|
-
url: bruce_models_1.Tileset.GetPublicFileUrl({
|
|
934
|
-
api,
|
|
935
|
-
tilesetId: meta.tilesetId,
|
|
936
|
-
file: "{z}/{x}/{y}.png",
|
|
937
|
-
viaCdn: true,
|
|
938
|
-
viaCdnCacheToken: tileset.generateVersion
|
|
939
|
-
}),
|
|
940
|
-
tileHeight: 256,
|
|
941
|
-
tileWidth: 256
|
|
942
|
-
// Unused until tested properly. In the past these settings caused large lag.
|
|
943
|
-
// rectangle: boundaries,
|
|
944
|
-
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
945
|
-
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
946
|
-
});
|
|
947
|
-
}
|
|
948
|
-
}
|
|
949
|
-
if (provider) {
|
|
950
|
-
// We need some way to add meta without appending to layers.
|
|
951
|
-
// Adding to layers triggers an event, if meta is missing then we'll not know what imagery is enabled.
|
|
952
|
-
// In the meantime we use "lowerToBottom" to trigger a secondary event with updated data...
|
|
953
|
-
const layer = viewer.imageryLayers.addImageryProvider(provider);
|
|
954
|
-
layer._bMeta = meta;
|
|
955
|
-
viewer.imageryLayers.lowerToBottom(layer);
|
|
956
|
-
params.viewer.scene.requestRender();
|
|
957
|
-
return layer;
|
|
958
|
-
}
|
|
959
|
-
return null;
|
|
960
|
-
}
|
|
961
|
-
Navigator.GetOrCreateLayer = GetOrCreateLayer;
|
|
962
|
-
async function Render(params) {
|
|
963
|
-
if (!params.apiGetter) {
|
|
964
|
-
params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
|
|
965
|
-
}
|
|
966
|
-
// Clean duplicate items and set default values.
|
|
967
|
-
let tmpTiles = [];
|
|
968
|
-
for (let i = 0; i < params.tiles.length; i++) {
|
|
969
|
-
const tile = params.tiles[i];
|
|
970
|
-
if (!tmpTiles.find(x => (x.accountId == tile.accountId) && (x.tilesetId == tile.tilesetId))) {
|
|
971
|
-
tmpTiles.push(tile);
|
|
972
|
-
// Set default values.
|
|
973
|
-
if (tile.alpha == null) {
|
|
974
|
-
tile.alpha = 1;
|
|
975
|
-
}
|
|
976
|
-
if (tile.contrast == null) {
|
|
977
|
-
tile.contrast = 1;
|
|
978
|
-
}
|
|
979
|
-
if (tile.gamma == null) {
|
|
980
|
-
tile.gamma = 1;
|
|
981
|
-
}
|
|
982
|
-
if (tile.hue == null) {
|
|
983
|
-
tile.hue = 0;
|
|
984
|
-
}
|
|
985
|
-
if (tile.saturation == null) {
|
|
986
|
-
tile.saturation = 1;
|
|
987
|
-
}
|
|
988
|
-
if (tile.brightness == null) {
|
|
989
|
-
// Gotten complaints about the scene being too dark even during day.
|
|
990
|
-
// So we'll adjust the brightness for our common and tested options.
|
|
991
|
-
// Other ones can be manually adjusted by the user in the side-panel.
|
|
992
|
-
const BRIGHTEN_MAP = {
|
|
993
|
-
[bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial]: 1.2,
|
|
994
|
-
[bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels]: 1.2,
|
|
995
|
-
[bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite]: 1.05
|
|
996
|
-
};
|
|
997
|
-
tile.brightness = BRIGHTEN_MAP[tile.tilesetId];
|
|
998
|
-
if (tile.brightness == null) {
|
|
999
|
-
tile.brightness = 1;
|
|
1000
|
-
}
|
|
1001
|
-
}
|
|
1002
|
-
}
|
|
1003
|
-
}
|
|
1004
|
-
params.tiles = tmpTiles;
|
|
1005
|
-
/**
|
|
1006
|
-
* Ensures all currently enabled imageries are in correct order and have correct settings.
|
|
1007
|
-
*/
|
|
1008
|
-
const organize = () => {
|
|
1009
|
-
const curEnabledArr = [];
|
|
1010
|
-
for (let i = 0; i < curEnabled.length; i++) {
|
|
1011
|
-
const layer = curEnabled.get(i);
|
|
1012
|
-
curEnabledArr.push(layer);
|
|
1013
|
-
}
|
|
1014
|
-
for (let i = 0; i < params.tiles.length; i++) {
|
|
1015
|
-
const enabled = params.tiles[i];
|
|
1016
|
-
const layer = curEnabledArr.find(x => { var _a, _b; return ((_a = x._bMeta) === null || _a === void 0 ? void 0 : _a.accountId) === enabled.accountId && ((_b = x._bMeta) === null || _b === void 0 ? void 0 : _b.tilesetId) === enabled.tilesetId; });
|
|
1017
|
-
if (layer) {
|
|
1018
|
-
params.viewer.imageryLayers.raiseToTop(layer);
|
|
1019
|
-
layer.alpha = (0, js_utils_1.EnsureNumber)(enabled.alpha == null ? 1 : enabled.alpha);
|
|
1020
|
-
layer.contrast = (0, js_utils_1.EnsureNumber)(enabled.contrast == null ? 1 : enabled.contrast);
|
|
1021
|
-
layer.hue = (0, js_utils_1.EnsureNumber)(enabled.hue == null ? 0 : enabled.hue);
|
|
1022
|
-
layer.saturation = (0, js_utils_1.EnsureNumber)(enabled.saturation == null ? 1 : enabled.saturation);
|
|
1023
|
-
layer.gamma = (0, js_utils_1.EnsureNumber)(enabled.gamma == null ? 1 : enabled.gamma);
|
|
1024
|
-
layer.brightness = (0, js_utils_1.EnsureNumber)(enabled.brightness == null ? 1 : enabled.brightness);
|
|
1025
|
-
}
|
|
1026
|
-
}
|
|
1027
|
-
params.viewer.scene.requestRender();
|
|
1028
|
-
};
|
|
1029
|
-
const iteration = newIteration(params.viewer, "imagery");
|
|
1030
|
-
const curEnabled = params.viewer.imageryLayers;
|
|
1031
|
-
// Remove imageries that are no longer enabled.
|
|
1032
|
-
const toDisable = [];
|
|
1033
|
-
for (let i = 0; i < curEnabled.length; i++) {
|
|
1034
|
-
const layer = curEnabled.get(i);
|
|
1035
|
-
const meta = layer === null || layer === void 0 ? void 0 : layer._bMeta;
|
|
1036
|
-
const disable = !params.tiles.find(x => x.accountId === (meta === null || meta === void 0 ? void 0 : meta.accountId) && x.tilesetId === (meta === null || meta === void 0 ? void 0 : meta.tilesetId));
|
|
1037
|
-
if (disable) {
|
|
1038
|
-
toDisable.push(layer);
|
|
1039
|
-
}
|
|
1040
|
-
}
|
|
1041
|
-
for (let i = 0; i < toDisable.length; i++) {
|
|
1042
|
-
params.viewer.imageryLayers.remove(toDisable[i]);
|
|
1043
|
-
}
|
|
1044
|
-
// Ensure layers exist for all enabled sources.
|
|
1045
|
-
let organized = false;
|
|
1046
|
-
for (let i = 0; i < params.tiles.length; i++) {
|
|
1047
|
-
const enabled = params.tiles[i];
|
|
1048
|
-
try {
|
|
1049
|
-
await GetOrCreateLayer({
|
|
1050
|
-
viewer: params.viewer,
|
|
1051
|
-
apiGetter: params.apiGetter,
|
|
1052
|
-
meta: {
|
|
1053
|
-
accountId: enabled.accountId,
|
|
1054
|
-
tilesetId: enabled.tilesetId,
|
|
1055
|
-
}
|
|
1056
|
-
});
|
|
1057
|
-
}
|
|
1058
|
-
catch (e) {
|
|
1059
|
-
console.error(e);
|
|
1060
|
-
}
|
|
1061
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
1062
|
-
return;
|
|
1063
|
-
}
|
|
1064
|
-
// Organize as we load in case there are lots of imageries.
|
|
1065
|
-
// We want to ensure what the user sees is as close to correct as we can get.
|
|
1066
|
-
organize();
|
|
1067
|
-
organized = true;
|
|
1068
|
-
}
|
|
1069
|
-
if (!organized) {
|
|
1070
|
-
organize();
|
|
1071
|
-
}
|
|
1072
|
-
}
|
|
1073
|
-
Navigator.Render = Render;
|
|
1074
|
-
})(Navigator = Map.Navigator || (Map.Navigator = {}));
|
|
1075
|
-
})(Map = TileRenderEngine.Map || (TileRenderEngine.Map = {}));
|
|
1076
|
-
let Terrain;
|
|
1077
|
-
(function (Terrain) {
|
|
1078
|
-
let LegacyNavigator;
|
|
1079
|
-
(function (LegacyNavigator) {
|
|
1080
|
-
async function Render(params) {
|
|
1081
|
-
var _a;
|
|
1082
|
-
const bId = createLegacyTerrId(params.data);
|
|
1083
|
-
const curProvider = params.viewer.terrainProvider;
|
|
1084
|
-
if (curProvider._bId && curProvider._bId === bId) {
|
|
1085
|
-
return;
|
|
1086
|
-
}
|
|
1087
|
-
const CESIUM = Cesium;
|
|
1088
|
-
let provider = null;
|
|
1089
|
-
if (isLegacyTerrainDefault(params.data.Name)) {
|
|
1090
|
-
const id = legacyTerrIdToDefaultId(params.data.Name);
|
|
1091
|
-
provider = await renderDefaultTerrTile(id);
|
|
1092
|
-
}
|
|
1093
|
-
else if (params.data.SourceUrl) {
|
|
1094
|
-
if (Cesium.CesiumTerrainProvider.hasOwnProperty("fromUrl")) {
|
|
1095
|
-
provider = await CESIUM.CesiumTerrainProvider.fromUrl(params.data.SourceUrl, {
|
|
1096
|
-
requestWaterMask: params.data.RequestWaterMask,
|
|
1097
|
-
requestVertexNormals: true
|
|
1098
|
-
});
|
|
1099
|
-
}
|
|
1100
|
-
else {
|
|
1101
|
-
provider = new CESIUM.CesiumTerrainProvider({
|
|
1102
|
-
url: params.data.SourceUrl,
|
|
1103
|
-
requestWaterMask: params.data.RequestWaterMask,
|
|
1104
|
-
requestVertexNormals: true
|
|
1105
|
-
});
|
|
1106
|
-
}
|
|
1107
|
-
}
|
|
1108
|
-
if (provider) {
|
|
1109
|
-
provider._bId = bId;
|
|
1110
|
-
provider._bName = (_a = params.data) === null || _a === void 0 ? void 0 : _a.Name;
|
|
1111
|
-
params.viewer.terrainProvider = provider;
|
|
1112
|
-
}
|
|
1113
|
-
params.viewer.scene.requestRender();
|
|
1114
|
-
}
|
|
1115
|
-
LegacyNavigator.Render = Render;
|
|
1116
|
-
async function RenderView(params) {
|
|
1117
|
-
var _a, _b;
|
|
1118
|
-
if (!params.apiGetter) {
|
|
1119
|
-
params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
|
|
1120
|
-
}
|
|
1121
|
-
const iteration = newIteration(params.viewer, "terrain");
|
|
1122
|
-
const api = params.apiGetter.getApi();
|
|
1123
|
-
const view = (await bruce_models_1.ProjectView.Get({
|
|
1124
|
-
api,
|
|
1125
|
-
viewId: params.viewId
|
|
1126
|
-
})).view;
|
|
1127
|
-
let bookmark = null;
|
|
1128
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
1129
|
-
return;
|
|
1130
|
-
}
|
|
1131
|
-
if (params.bookmarkId) {
|
|
1132
|
-
bookmark = (await bruce_models_1.ProjectViewBookmark.Get({
|
|
1133
|
-
api,
|
|
1134
|
-
viewId: params.viewId,
|
|
1135
|
-
bookmarkId: params.bookmarkId
|
|
1136
|
-
})).bookmark;
|
|
1137
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
1138
|
-
return;
|
|
1139
|
-
}
|
|
1140
|
-
}
|
|
1141
|
-
const vSettings = view.Settings;
|
|
1142
|
-
const bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
|
|
1143
|
-
let terrainTiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumTerrainSources) !== null && _a !== void 0 ? _a : [];
|
|
1144
|
-
let terrainTile = null;
|
|
1145
|
-
let terrainTileName = null;
|
|
1146
|
-
if ((_b = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _b === void 0 ? void 0 : _b.terrain) {
|
|
1147
|
-
terrainTileName = bSettings.terrain;
|
|
1148
|
-
}
|
|
1149
|
-
else {
|
|
1150
|
-
terrainTileName = vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultTerrain;
|
|
1151
|
-
}
|
|
1152
|
-
await bruce_models_1.ProjectViewLegacyTile.MergeTerrainTemplateData({
|
|
1153
|
-
getter: params.apiGetter,
|
|
1154
|
-
sources: terrainTiles,
|
|
1155
|
-
addIfMissing: (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumTerrainSources) == null
|
|
1156
|
-
});
|
|
1157
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
1158
|
-
return;
|
|
1159
|
-
}
|
|
1160
|
-
for (let i = 0; i < terrainTiles.length; i++) {
|
|
1161
|
-
const tile = terrainTiles[i];
|
|
1162
|
-
if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
|
|
1163
|
-
terrainTile = tile;
|
|
1164
|
-
break;
|
|
1165
|
-
}
|
|
1166
|
-
}
|
|
1167
|
-
if (terrainTile) {
|
|
1168
|
-
await Render({
|
|
1169
|
-
data: terrainTile,
|
|
1170
|
-
viewer: params.viewer,
|
|
1171
|
-
});
|
|
1172
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
1173
|
-
return;
|
|
1174
|
-
}
|
|
1175
|
-
}
|
|
1176
|
-
params.viewer.scene.requestRender();
|
|
1177
|
-
}
|
|
1178
|
-
LegacyNavigator.RenderView = RenderView;
|
|
1179
|
-
})(LegacyNavigator = Terrain.LegacyNavigator || (Terrain.LegacyNavigator = {}));
|
|
1180
|
-
let Navigator;
|
|
1181
|
-
(function (Navigator) {
|
|
1182
|
-
async function Render(params) {
|
|
1183
|
-
var _a;
|
|
1184
|
-
if (!params.apiGetter) {
|
|
1185
|
-
params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
|
|
1186
|
-
}
|
|
1187
|
-
const iteration = newIteration(params.viewer, "terrain");
|
|
1188
|
-
const CESIUM = Cesium;
|
|
1189
|
-
// Already enabled.
|
|
1190
|
-
const enabledMeta = (_a = params.viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a._bMeta;
|
|
1191
|
-
if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.tile.tilesetId &&
|
|
1192
|
-
(enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.tile.accountId) {
|
|
1193
|
-
return;
|
|
1194
|
-
}
|
|
1195
|
-
// Known default that may have been enabled prior to utility doing it.
|
|
1196
|
-
if (!enabledMeta) {
|
|
1197
|
-
const provider = params.viewer.terrainProvider;
|
|
1198
|
-
let leave = false;
|
|
1199
|
-
if (params.tile.tilesetId == bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain &&
|
|
1200
|
-
provider instanceof Cesium.EllipsoidTerrainProvider) {
|
|
1201
|
-
leave = true;
|
|
1202
|
-
}
|
|
1203
|
-
// TODO: Also check for "cesium world terrain" if we can easily determine that it's enabled.
|
|
1204
|
-
if (leave) {
|
|
1205
|
-
// Mark it so we don't have to do this magic logic again.
|
|
1206
|
-
provider._bMeta = {
|
|
1207
|
-
tilesetId: params.tile.tilesetId,
|
|
1208
|
-
accountId: params.tile.accountId
|
|
1209
|
-
};
|
|
1210
|
-
return;
|
|
1211
|
-
}
|
|
1212
|
-
}
|
|
1213
|
-
const defaultTerr = params.tile.accountId ? null : bruce_models_1.ProjectViewTile.DefaultTerrains.find(x => x.id === params.tile.tilesetId);
|
|
1214
|
-
let provider = null;
|
|
1215
|
-
if (defaultTerr) {
|
|
1216
|
-
// Cesium token is required for Cesium World Terrain.
|
|
1217
|
-
let shouldCreate = true;
|
|
1218
|
-
if (defaultTerr.id == bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain) {
|
|
1219
|
-
shouldCreate = await viewer_utils_1.ViewerUtils.AssertIonToken(Cesium.Ion.defaultAccessToken);
|
|
1220
|
-
}
|
|
1221
|
-
if (shouldCreate) {
|
|
1222
|
-
provider = await renderDefaultTerrTile(defaultTerr.id);
|
|
1223
|
-
}
|
|
1224
|
-
else {
|
|
1225
|
-
viewer_utils_1.ViewerUtils.GetEventTracker(params.viewer).Warn(viewer_event_tracker_1.ViewerEventTracker.EDomain.TileTerrain, "Cesium Ion token not set, Cesium World Terrain will not be enabled.", {
|
|
1226
|
-
tilesetId: bruce_models_1.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain
|
|
1227
|
-
});
|
|
1228
|
-
}
|
|
1229
|
-
}
|
|
1230
|
-
else {
|
|
1231
|
-
const api = params.apiGetter.getApi(params.tile.accountId);
|
|
1232
|
-
// Ensure regional url is loaded.
|
|
1233
|
-
// When loading stuff in the same account as the default it's likely already loaded,
|
|
1234
|
-
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
1235
|
-
await api.Loading;
|
|
1236
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
1237
|
-
return;
|
|
1238
|
-
}
|
|
1239
|
-
let tileset;
|
|
1240
|
-
try {
|
|
1241
|
-
tileset = (await bruce_models_1.Tileset.Get({
|
|
1242
|
-
api,
|
|
1243
|
-
tilesetId: params.tile.tilesetId
|
|
1244
|
-
})).tileset;
|
|
1245
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
1246
|
-
return;
|
|
1247
|
-
}
|
|
1248
|
-
if (tileset == null) {
|
|
1249
|
-
throw new Error("Tileset not found.");
|
|
1250
|
-
}
|
|
1251
|
-
}
|
|
1252
|
-
catch (e) {
|
|
1253
|
-
viewer_utils_1.ViewerUtils.GetEventTracker(params.viewer).Error(viewer_event_tracker_1.ViewerEventTracker.EDomain.TileTerrain, "Failed to retreieve terrain Tileset record.", {
|
|
1254
|
-
tilesetId: params.tile.tilesetId,
|
|
1255
|
-
accountId: params.tile.accountId,
|
|
1256
|
-
exception: e
|
|
1257
|
-
});
|
|
1258
|
-
}
|
|
1259
|
-
let url;
|
|
1260
|
-
let vertexes = true;
|
|
1261
|
-
if (tileset.type === bruce_models_1.Tileset.EType.Terrain) {
|
|
1262
|
-
url = bruce_models_1.Tileset.GetPublicFileUrl({
|
|
1263
|
-
api,
|
|
1264
|
-
tilesetId: tileset.id,
|
|
1265
|
-
file: "",
|
|
1266
|
-
viaCdn: true,
|
|
1267
|
-
viaCdnCacheToken: tileset.generateVersion
|
|
1268
|
-
});
|
|
1269
|
-
}
|
|
1270
|
-
else if (tileset.type === bruce_models_1.Tileset.EType.ExternalTerrain) {
|
|
1271
|
-
const settings = tileset.settings;
|
|
1272
|
-
vertexes = settings.requestVertexNormals == null ? true : settings.requestVertexNormals;
|
|
1273
|
-
if (!settings.terrainType || settings.terrainType === "Default") {
|
|
1274
|
-
url = settings.url;
|
|
1275
|
-
}
|
|
1276
|
-
else if (settings.terrainType == "CesiumIon") {
|
|
1277
|
-
const ionId = settings.externalId;
|
|
1278
|
-
const key = settings.key ? settings.key : await findKey(params.apiGetter, params.apiGetter.accountId, bruce_models_1.ProgramKey.EProgramId.CesiumIon);
|
|
1279
|
-
const resource = await Cesium.IonResource.fromAssetId(Number(ionId), {
|
|
1280
|
-
accessToken: key
|
|
1281
|
-
});
|
|
1282
|
-
if (!assertIteration(params.viewer, iteration)) {
|
|
1283
|
-
return;
|
|
1284
|
-
}
|
|
1285
|
-
if (Cesium.CesiumTerrainProvider.hasOwnProperty("fromUrl")) {
|
|
1286
|
-
provider = await CESIUM.CesiumTerrainProvider.fromUrl(resource, {
|
|
1287
|
-
requestVertexNormals: vertexes
|
|
1288
|
-
});
|
|
1289
|
-
}
|
|
1290
|
-
else {
|
|
1291
|
-
provider = new CESIUM.CesiumTerrainProvider({
|
|
1292
|
-
url: resource,
|
|
1293
|
-
requestVertexNormals: vertexes
|
|
1294
|
-
});
|
|
1295
|
-
}
|
|
1296
|
-
}
|
|
1297
|
-
}
|
|
1298
|
-
else {
|
|
1299
|
-
console.error("Invalid tileset type.", tileset);
|
|
1300
|
-
}
|
|
1301
|
-
if (url) {
|
|
1302
|
-
if (CESIUM.CesiumTerrainProvider.hasOwnProperty("fromUrl")) {
|
|
1303
|
-
provider = await CESIUM.CesiumTerrainProvider.fromUrl(url, {
|
|
1304
|
-
requestVertexNormals: vertexes
|
|
1305
|
-
});
|
|
1306
|
-
}
|
|
1307
|
-
else {
|
|
1308
|
-
provider = new CESIUM.CesiumTerrainProvider({
|
|
1309
|
-
url: url,
|
|
1310
|
-
requestVertexNormals: vertexes
|
|
1311
|
-
});
|
|
1312
|
-
}
|
|
1313
|
-
}
|
|
1314
|
-
}
|
|
1315
|
-
if (provider) {
|
|
1316
|
-
provider._bMeta = {
|
|
1317
|
-
accountId: params.tile.accountId,
|
|
1318
|
-
tilesetId: params.tile.tilesetId
|
|
1319
|
-
};
|
|
1320
|
-
params.viewer.terrainProvider = provider;
|
|
1321
|
-
}
|
|
1322
|
-
params.viewer.scene.requestRender();
|
|
1323
|
-
}
|
|
1324
|
-
Navigator.Render = Render;
|
|
1325
|
-
})(Navigator = Terrain.Navigator || (Terrain.Navigator = {}));
|
|
1326
|
-
})(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
|
|
1327
|
-
})(TileRenderEngine = exports.TileRenderEngine || (exports.TileRenderEngine = {}));
|
|
1328
|
-
//# sourceMappingURL=tile-render-engine.js.map
|