bruce-cesium 3.1.8 → 3.2.0

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.
Files changed (39) hide show
  1. package/dist/bruce-cesium.es5.js +582 -314
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +581 -313
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +1 -1
  6. package/dist/lib/rendering/entity-render-engine.js +81 -47
  7. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  8. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +9 -9
  9. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -1
  10. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +1 -1
  11. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
  12. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +2 -2
  13. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
  14. package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js +1 -0
  15. package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js.map +1 -1
  16. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +65 -25
  17. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -1
  18. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +1 -1
  19. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -1
  20. package/dist/lib/rendering/tile-render-engine.js +325 -170
  21. package/dist/lib/rendering/tile-render-engine.js.map +1 -1
  22. package/dist/lib/rendering/tileset-render-engine.js +29 -4
  23. package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
  24. package/dist/lib/rendering/visual-register-culler.js +3 -4
  25. package/dist/lib/rendering/visual-register-culler.js.map +1 -1
  26. package/dist/lib/rendering/visuals-register.js +8 -9
  27. package/dist/lib/rendering/visuals-register.js.map +1 -1
  28. package/dist/lib/utils/drawing-utils.js +16 -18
  29. package/dist/lib/utils/drawing-utils.js.map +1 -1
  30. package/dist/lib/utils/entity-utils.js +9 -10
  31. package/dist/lib/utils/entity-utils.js.map +1 -1
  32. package/dist/lib/widgets/widget-branding.js +30 -11
  33. package/dist/lib/widgets/widget-branding.js.map +1 -1
  34. package/dist/lib/widgets/widget-embedded-info-view.js +1 -1
  35. package/dist/lib/widgets/widget-embedded-info-view.js.map +1 -1
  36. package/dist/types/bruce-cesium.d.ts +1 -1
  37. package/dist/types/rendering/tileset-render-engine.d.ts +7 -0
  38. package/dist/types/widgets/widget-branding.d.ts +1 -0
  39. package/package.json +1 -1
@@ -246,18 +246,17 @@
246
246
  * @returns
247
247
  */
248
248
  function GetTerrainHeight(params) {
249
- var _a;
250
249
  return __awaiter(this, void 0, void 0, function () {
251
- var pos3d, viewer, terrainProviderReady, sample, height, e_1;
252
- return __generator(this, function (_b) {
253
- switch (_b.label) {
250
+ var pos3d, viewer, sample, height, e_1;
251
+ return __generator(this, function (_a) {
252
+ switch (_a.label) {
254
253
  case 0:
255
254
  pos3d = params.pos3d, viewer = params.viewer;
256
- _b.label = 1;
255
+ _a.label = 1;
257
256
  case 1:
258
- _b.trys.push([1, 3, , 4]);
259
- terrainProviderReady = Boolean((_a = viewer === null || viewer === void 0 ? void 0 : viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a.ready);
260
- if (!terrainProviderReady) {
257
+ _a.trys.push([1, 3, , 4]);
258
+ // If the terrain provider is not ready let's not ping it.
259
+ if (!viewer.terrainProvider || viewer.terrainProvider["ready"] == false) {
261
260
  return [2 /*return*/, {
262
261
  height: 0,
263
262
  error: "Terrain provider not ready."
@@ -270,7 +269,7 @@
270
269
  }
271
270
  return [4 /*yield*/, Cesium.sampleTerrainMostDetailed(viewer.scene.terrainProvider, [Cesium.Cartographic.fromCartesian(pos3d)])];
272
271
  case 2:
273
- sample = _b.sent();
272
+ sample = _a.sent();
274
273
  height = (sample === null || sample === void 0 ? void 0 : sample.length) ? sample[0].height : null;
275
274
  if (isNaN(height)) {
276
275
  return [2 /*return*/, {
@@ -282,7 +281,7 @@
282
281
  height: height
283
282
  }];
284
283
  case 3:
285
- e_1 = _b.sent();
284
+ e_1 = _a.sent();
286
285
  return [2 /*return*/, {
287
286
  height: 0,
288
287
  error: e_1
@@ -453,15 +452,14 @@
453
452
  * @param minimumHeight height relative to ground
454
453
  */
455
454
  function RaisePos3d(viewer, pos3d, minimumHeight) {
456
- var _a;
457
455
  if (minimumHeight === void 0) { minimumHeight = 0; }
458
456
  return __awaiter(this, void 0, void 0, function () {
459
- var terrainProviderReady, carto, terrainCarto, sample, terrainHeight;
460
- return __generator(this, function (_b) {
461
- switch (_b.label) {
457
+ var carto, terrainCarto, sample, terrainHeight;
458
+ return __generator(this, function (_a) {
459
+ switch (_a.label) {
462
460
  case 0:
463
- terrainProviderReady = Boolean((_a = viewer === null || viewer === void 0 ? void 0 : viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a.ready);
464
- if (!terrainProviderReady) {
461
+ // If the terrain provider is not ready let's not ping it.
462
+ if (!viewer.terrainProvider || viewer.terrainProvider["ready"] == false) {
465
463
  return [2 /*return*/, pos3d];
466
464
  }
467
465
  carto = Cesium.Cartographic.fromCartesian(pos3d);
@@ -472,12 +470,12 @@
472
470
  return [3 /*break*/, 3];
473
471
  case 1: return [4 /*yield*/, Cesium.sampleTerrainMostDetailed(viewer.scene.terrainProvider, [terrainCarto])];
474
472
  case 2:
475
- sample = _b.sent();
473
+ sample = _a.sent();
476
474
  terrainHeight = (sample === null || sample === void 0 ? void 0 : sample.length) ? sample[0].height : null;
477
475
  if (terrainHeight != null) {
478
476
  carto.height = Math.max(carto.height, terrainHeight + minimumHeight);
479
477
  }
480
- _b.label = 3;
478
+ _a.label = 3;
481
479
  case 3: return [2 /*return*/, Cesium.Cartesian3.fromRadians(carto.longitude, carto.latitude, carto.height)];
482
480
  }
483
481
  });
@@ -862,12 +860,12 @@
862
860
  * @param params
863
861
  */
864
862
  function GetLocation(params) {
865
- var _a, _b;
863
+ var _a;
866
864
  return __awaiter(this, void 0, void 0, function () {
867
- var api, viewer, samples, visualRegister, minimumAlt, paddingAlt, MAX_DISTANCE_BETWEEN_SAMPLES, MAX_TERRAIN_SAMPLES, terrainSamples, MAX_API_CALLS, apiCalls, MAX_VALID_SAMPLES, validSamples, MIN_RECT_DIAGONAL_LENGTH, terrainProviderReady, data, spheres, processPosHeight, ensureHeightRefs, getEntityPositions, allPosses, i, sample, samplePosses, valid, j, samplePos, k, allPos, distance, rect, factor, marginX, marginY, diagonalLen, terrData, posCarto, height, MIN_POSSES_LEN, allPointSphere, rectSphere, combinedSphere;
865
+ var api, viewer, samples, visualRegister, minimumAlt, paddingAlt, MAX_DISTANCE_BETWEEN_SAMPLES, MAX_TERRAIN_SAMPLES, terrainSamples, MAX_API_CALLS, apiCalls, MAX_VALID_SAMPLES, validSamples, MIN_RECT_DIAGONAL_LENGTH, data, spheres, processPosHeight, ensureHeightRefs, getEntityPositions, allPosses, i, sample, samplePosses, valid, j, samplePos, k, allPos, distance, rect, factor, marginX, marginY, diagonalLen, terrData, posCarto, height, MIN_POSSES_LEN, allPointSphere, rectSphere, combinedSphere;
868
866
  var _this = this;
869
- return __generator(this, function (_c) {
870
- switch (_c.label) {
867
+ return __generator(this, function (_b) {
868
+ switch (_b.label) {
871
869
  case 0:
872
870
  api = params.api, viewer = params.viewer, samples = params.samples, visualRegister = params.visualRegister, minimumAlt = params.minimumAlt, paddingAlt = params.paddingAlt;
873
871
  if (!paddingAlt) {
@@ -884,7 +882,6 @@
884
882
  if (MIN_RECT_DIAGONAL_LENGTH < 1500) {
885
883
  MIN_RECT_DIAGONAL_LENGTH = 1500;
886
884
  }
887
- terrainProviderReady = Boolean((_a = viewer === null || viewer === void 0 ? void 0 : viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a.ready);
888
885
  data = {
889
886
  pos3d: null,
890
887
  rectangle: null,
@@ -901,7 +898,7 @@
901
898
  if (!(carto === null || carto === void 0 ? void 0 : carto.latitude)) return [3 /*break*/, 6];
902
899
  baseHeight = 0;
903
900
  if (!(heightRef == null || heightRef == Cesium.HeightReference.RELATIVE_TO_GROUND || heightRef == Cesium.HeightReference.NONE)) return [3 /*break*/, 5];
904
- if (!terrainProviderReady) return [3 /*break*/, 4];
901
+ if (!(!viewer.terrainProvider || viewer.terrainProvider["ready"] == false)) return [3 /*break*/, 4];
905
902
  if (!(terrainSamples > MAX_TERRAIN_SAMPLES)) return [3 /*break*/, 1];
906
903
  baseHeight = viewer.scene.globe.getHeight(carto);
907
904
  return [3 /*break*/, 3];
@@ -1302,13 +1299,13 @@
1302
1299
  }); };
1303
1300
  allPosses = [];
1304
1301
  i = 0;
1305
- _c.label = 1;
1302
+ _b.label = 1;
1306
1303
  case 1:
1307
1304
  if (!(i < samples.length)) return [3 /*break*/, 4];
1308
1305
  sample = samples[i];
1309
1306
  return [4 /*yield*/, getEntityPositions(sample)];
1310
1307
  case 2:
1311
- samplePosses = _c.sent();
1308
+ samplePosses = _b.sent();
1312
1309
  if (samplePosses === null || samplePosses === void 0 ? void 0 : samplePosses.length) {
1313
1310
  valid = !(allPosses === null || allPosses === void 0 ? void 0 : allPosses.length);
1314
1311
  if (!valid) {
@@ -1335,7 +1332,7 @@
1335
1332
  }
1336
1333
  }
1337
1334
  }
1338
- _c.label = 3;
1335
+ _b.label = 3;
1339
1336
  case 3:
1340
1337
  i++;
1341
1338
  return [3 /*break*/, 1];
@@ -1353,7 +1350,7 @@
1353
1350
  terrData = exports.ViewUtils.GatherTerrainTile({
1354
1351
  viewer: viewer
1355
1352
  });
1356
- if (((_b = terrData === null || terrData === void 0 ? void 0 : terrData.terrain) === null || _b === void 0 ? void 0 : _b.tilesetId) == bruceModels.ProjectViewTile.EDefaultTerrain.FlatTerrain) {
1353
+ if (((_a = terrData === null || terrData === void 0 ? void 0 : terrData.terrain) === null || _a === void 0 ? void 0 : _a.tilesetId) == bruceModels.ProjectViewTile.EDefaultTerrain.FlatTerrain) {
1357
1354
  MIN_RECT_DIAGONAL_LENGTH = 0;
1358
1355
  }
1359
1356
  posCarto = Cesium.Cartographic.fromCartesian(allPosses[0]);
@@ -2107,8 +2104,7 @@
2107
2104
  * @returns
2108
2105
  */
2109
2106
  var getTerrainOffset = function (viewer, pos3d) {
2110
- var _a;
2111
- if (!((_a = viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a.ready)) {
2107
+ if (!viewer.terrainProvider || viewer.terrainProvider["ready"] == false) {
2112
2108
  return null;
2113
2109
  }
2114
2110
  var terrain = exports.ViewUtils.GatherTerrainTile({
@@ -2122,8 +2118,8 @@
2122
2118
  var keys = Array.from(_terrainCache.Entries());
2123
2119
  var tolerance = viewer.entities.values.length > TERRAIN_HEIGHT_TOLERANCE_LOW_ENTITY_THRESHOLD ? TERRAIN_HEIGHT_TOLERANCE : TERRAIN_HEIGHT_TOLERANCE_LOW_COUNT;
2124
2120
  for (var i = 0; i < keys.length; i++) {
2125
- var _b = keys[i], key_1 = _b[0], offset_1 = _b[1];
2126
- var _c = key_1.split("_"), terrainId2 = _c[0], x = _c[1], y = _c[2], z = _c[3];
2121
+ var _a = keys[i], key_1 = _a[0], offset_1 = _a[1];
2122
+ var _b = key_1.split("_"), terrainId2 = _b[0], x = _b[1], y = _b[2], z = _b[3];
2127
2123
  if (terrainId2 != terrainId) {
2128
2124
  continue;
2129
2125
  }
@@ -2999,6 +2995,35 @@
2999
2995
  }
3000
2996
  return newPosses;
3001
2997
  }
2998
+ /**
2999
+ * Util to support both old and newer versions of Cesium for creating 3D model primitives.
3000
+ * @param url
3001
+ */
3002
+ function getModelEntity(url, scale) {
3003
+ return __awaiter(this, void 0, void 0, function () {
3004
+ var CESIUM;
3005
+ return __generator(this, function (_a) {
3006
+ CESIUM = Cesium;
3007
+ // Newer versions of Cesium have a fromGltfAsync method.
3008
+ if (CESIUM.Model.hasOwnProperty("fromGltfAsync")) {
3009
+ return [2 /*return*/, CESIUM.Model.fromGltfAsync({
3010
+ url: url,
3011
+ asynchronous: true,
3012
+ scale: scale
3013
+ })];
3014
+ }
3015
+ // Older versions of Cesium have a fromGltf method.
3016
+ else if (Cesium.Model.hasOwnProperty("fromGltf")) {
3017
+ return [2 /*return*/, CESIUM.Model.fromGltf({
3018
+ url: url,
3019
+ asynchronous: true,
3020
+ scale: scale
3021
+ })];
3022
+ }
3023
+ return [2 /*return*/, null];
3024
+ });
3025
+ });
3026
+ }
3002
3027
  (function (EntityRenderEngine) {
3003
3028
  function Render(params) {
3004
3029
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -3983,6 +4008,7 @@
3983
4008
  var Model3d;
3984
4009
  (function (Model3d) {
3985
4010
  function Render(params) {
4011
+ var _this = this;
3986
4012
  var entity = params.entity;
3987
4013
  var transform = entity === null || entity === void 0 ? void 0 : entity.transform;
3988
4014
  var heading = EnsureNumber(transform === null || transform === void 0 ? void 0 : transform.heading);
@@ -4051,54 +4077,58 @@
4051
4077
  var fileRadiusKey = "model3d_".concat(params.lodUrl, "_").concat(scale * styleScale, "_radius");
4052
4078
  var heightProm = _fileRadiusCache.Get(fileRadiusKey);
4053
4079
  if (!heightProm) {
4054
- heightProm = new Promise(function (res) {
4055
- try {
4056
- // We'll have an async secondary model created for calculating boundaries.
4057
- // Once calculated we remove it.
4058
- var modelPrim_1 = Cesium.Model.fromGltf({
4059
- url: params.lodUrl,
4060
- asynchronous: true,
4061
- scale: scale * styleScale
4062
- });
4063
- modelPrim_1.readyPromise.then(function (loaded) {
4064
- var kill = function () {
4065
- if (params.viewer && !params.viewer.isDestroyed() && params.viewer.scene.primitives.contains(modelPrim_1)) {
4066
- params.viewer.scene.primitives.remove(modelPrim_1);
4067
- }
4068
- if (!modelPrim_1.isDestroyed()) {
4069
- modelPrim_1.destroy();
4070
- }
4071
- };
4072
- if (!cEntity || !(loaded === null || loaded === void 0 ? void 0 : loaded.boundingSphere)) {
4073
- kill();
4080
+ heightProm = new Promise(function (res) { return __awaiter(_this, void 0, void 0, function () {
4081
+ var modelPrim_1, e_6;
4082
+ return __generator(this, function (_a) {
4083
+ switch (_a.label) {
4084
+ case 0:
4085
+ _a.trys.push([0, 2, , 3]);
4086
+ return [4 /*yield*/, getModelEntity(params.lodUrl, scale * styleScale)];
4087
+ case 1:
4088
+ modelPrim_1 = _a.sent();
4089
+ modelPrim_1.readyPromise.then(function (loaded) {
4090
+ var kill = function () {
4091
+ if (params.viewer && !params.viewer.isDestroyed() && params.viewer.scene.primitives.contains(modelPrim_1)) {
4092
+ params.viewer.scene.primitives.remove(modelPrim_1);
4093
+ }
4094
+ if (!modelPrim_1.isDestroyed()) {
4095
+ modelPrim_1.destroy();
4096
+ }
4097
+ };
4098
+ if (!cEntity || !(loaded === null || loaded === void 0 ? void 0 : loaded.boundingSphere)) {
4099
+ kill();
4100
+ res(null);
4101
+ return;
4102
+ }
4103
+ var radius = loaded.boundingSphere.radius;
4104
+ var centerOffset = loaded.boundingSphere.center;
4105
+ if (centerOffset) {
4106
+ // Add the center offset to the radius because I am not good at math.
4107
+ var magnitude = Cesium.Cartesian3.magnitude(centerOffset);
4108
+ radius += magnitude;
4109
+ // Extra padding if the model is super not centered.
4110
+ // I saw some strange boundaries for some bad models.
4111
+ if (magnitude > 100) {
4112
+ radius += 100;
4113
+ }
4114
+ }
4115
+ kill();
4116
+ res(radius);
4117
+ }).catch(function (e) {
4118
+ console.error(e);
4119
+ res(null);
4120
+ });
4121
+ params.viewer.scene.primitives.add(modelPrim_1);
4122
+ return [3 /*break*/, 3];
4123
+ case 2:
4124
+ e_6 = _a.sent();
4125
+ console.error(e_6);
4074
4126
  res(null);
4075
- return;
4076
- }
4077
- var radius = loaded.boundingSphere.radius;
4078
- var centerOffset = loaded.boundingSphere.center;
4079
- if (centerOffset) {
4080
- // Add the center offset to the radius because I am not good at math.
4081
- var magnitude = Cesium.Cartesian3.magnitude(centerOffset);
4082
- radius += magnitude;
4083
- // Extra padding if the model is super not centered.
4084
- // I saw some strange boundaries for some bad models.
4085
- if (magnitude > 100) {
4086
- radius += 100;
4087
- }
4088
- }
4089
- kill();
4090
- res(radius);
4091
- }).catch(function (e) {
4092
- console.error(e);
4093
- res(null);
4094
- });
4095
- params.viewer.scene.primitives.add(modelPrim_1);
4096
- }
4097
- catch (e) {
4098
- console.error(e);
4099
- res(null);
4100
- }
4101
- });
4127
+ return [3 /*break*/, 3];
4128
+ case 3: return [2 /*return*/];
4129
+ }
4130
+ });
4131
+ }); });
4102
4132
  _fileRadiusCache.Set(fileRadiusKey, heightProm);
4103
4133
  }
4104
4134
  heightProm.then(function (radius) {
@@ -5636,13 +5666,12 @@
5636
5666
  for (var i = 0; i < entities.length; i++) {
5637
5667
  _loop_1(i);
5638
5668
  }
5639
- return;
5640
- }
5641
- if (!isAlive$1(viewer, visual)) {
5642
- return;
5643
5669
  }
5644
5670
  if (visual instanceof Cesium.Primitive) ;
5645
5671
  else if (visual instanceof Cesium.Cesium3DTileFeature) {
5672
+ if (!isAlive$1(viewer, visual)) {
5673
+ return;
5674
+ }
5646
5675
  var orgColor = visual[ORG_COLOR_KEY];
5647
5676
  if (orgColor == null) {
5648
5677
  orgColor = visual.color;
@@ -5698,13 +5727,12 @@
5698
5727
  for (var i = 0; i < entities.length; i++) {
5699
5728
  _loop_2(i);
5700
5729
  }
5701
- return;
5702
- }
5703
- if (!isAlive$1(viewer, visual)) {
5704
- return;
5705
5730
  }
5706
5731
  if (visual instanceof Cesium.Primitive) ;
5707
5732
  else if (visual instanceof Cesium.Cesium3DTileFeature) {
5733
+ if (!isAlive$1(viewer, visual)) {
5734
+ return;
5735
+ }
5708
5736
  var orgColor = visual[ORG_COLOR_KEY];
5709
5737
  if (orgColor != null) {
5710
5738
  visual.color = orgColor;
@@ -5792,11 +5820,12 @@
5792
5820
  this.cameraCullerDispose = null;
5793
5821
  };
5794
5822
  Register.prototype.ForceUpdate = function (params) {
5823
+ var _a;
5795
5824
  var entityIds = params.entityIds;
5796
5825
  for (var i = 0; i < entityIds.length; i++) {
5797
5826
  var entityId = entityIds[i];
5798
5827
  updateEntity(this.viewer, entityId, this);
5799
- this.OnUpdate.Trigger({
5828
+ (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({
5800
5829
  type: EVisualUpdateType.Update,
5801
5830
  entityId: entityId
5802
5831
  });
@@ -8635,6 +8664,28 @@
8635
8664
  });
8636
8665
  }
8637
8666
  (function (TilesetRenderEngine) {
8667
+ /**
8668
+ * Returns when a tileset is ready to be used.
8669
+ * This should be waited for after adding at tileset to the scene and BEFORE any settings are applied to it.
8670
+ * @param cTileset
8671
+ * @returns
8672
+ */
8673
+ function OnTilesetReady(cTileset) {
8674
+ return __awaiter(this, void 0, void 0, function () {
8675
+ return __generator(this, function (_a) {
8676
+ switch (_a.label) {
8677
+ case 0:
8678
+ if (!cTileset["readyPromise"]) return [3 /*break*/, 2];
8679
+ return [4 /*yield*/, cTileset["readyPromise"]];
8680
+ case 1:
8681
+ _a.sent();
8682
+ _a.label = 2;
8683
+ case 2: return [2 /*return*/];
8684
+ }
8685
+ });
8686
+ });
8687
+ }
8688
+ TilesetRenderEngine.OnTilesetReady = OnTilesetReady;
8638
8689
  function ApplyPosition(params) {
8639
8690
  var _a;
8640
8691
  var cTileset = params.cTileset;
@@ -8806,7 +8857,7 @@
8806
8857
  case 2:
8807
8858
  cTileset_1 = _a.sent();
8808
8859
  params.viewer.scene.primitives.add(cTileset_1);
8809
- cTileset_1.readyPromise.then(function () {
8860
+ OnTilesetReady(cTileset_1).then(function () {
8810
8861
  var _a, _b, _c, _d;
8811
8862
  try {
8812
8863
  if (!isAlive$2(params.viewer, cTileset_1)) {
@@ -8856,7 +8907,7 @@
8856
8907
  case 6:
8857
8908
  cTileset_2 = _a.sent();
8858
8909
  params.viewer.scene.primitives.add(cTileset_2);
8859
- cTileset_2.readyPromise.then(function () {
8910
+ OnTilesetReady(cTileset_2).then(function () {
8860
8911
  var _a;
8861
8912
  try {
8862
8913
  if (!isAlive$2(params.viewer, cTileset_2)) {
@@ -8937,7 +8988,7 @@
8937
8988
  case 4:
8938
8989
  cTileset = _a.sent();
8939
8990
  viewer.scene.primitives.add(cTileset);
8940
- cTileset.readyPromise.then(function () {
8991
+ OnTilesetReady(cTileset).then(function () {
8941
8992
  var _a;
8942
8993
  try {
8943
8994
  if (!isAlive$2(viewer, cTileset)) {
@@ -9426,7 +9477,9 @@
9426
9477
  var minMemory = 80;
9427
9478
  var totalPerTileset = Math.max(this.watched.length ? maxMemory / this.watched.length : maxMemory, minMemory);
9428
9479
  this.watched.forEach(function (x) {
9429
- x.maximumMemoryUsage = totalPerTileset;
9480
+ // Newer Cesium killed this property.
9481
+ // TODO: Check if it's needed then.
9482
+ x["maximumMemoryUsage"] = totalPerTileset;
9430
9483
  });
9431
9484
  };
9432
9485
  MemoryWatcher.prototype.destroy = function () {
@@ -9569,7 +9622,7 @@
9569
9622
  return [2 /*return*/];
9570
9623
  }
9571
9624
  this.viewer.scene.requestRender();
9572
- cTileset.readyPromise.then(function () {
9625
+ exports.TilesetRenderEngine.OnTilesetReady(this.cTileset).then(function () {
9573
9626
  try {
9574
9627
  if (_this.disposed || cTileset.isDestroyed()) {
9575
9628
  return;
@@ -10473,6 +10526,7 @@
10473
10526
  if (this.disposed) {
10474
10527
  return;
10475
10528
  }
10529
+ this.disposed = true;
10476
10530
  clearInterval(this.queueCheckInterval);
10477
10531
  if (this.cTileset) {
10478
10532
  var viewer = this.viewer;
@@ -10481,6 +10535,9 @@
10481
10535
  this.viewer.scene.primitives.remove(this.cTileset);
10482
10536
  this.viewer.scene.requestRender();
10483
10537
  }
10538
+ else if (this.cTileset && !this.cTileset.isDestroyed()) {
10539
+ this.cTileset.destroy();
10540
+ }
10484
10541
  this.cTileset = null;
10485
10542
  }
10486
10543
  this.visualsManager.RemoveRegos({
@@ -10494,33 +10551,69 @@
10494
10551
  var menuItem = this.item;
10495
10552
  this.sourceId = (_a = menuItem.BruceEntity) === null || _a === void 0 ? void 0 : _a.SourceId;
10496
10553
  this.entityTypeId = (_b = menuItem.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"];
10497
- this.cTileset = Cesium.createOsmBuildings();
10498
- this.cTileset.show = true;
10499
- this.viewer.scene.requestRender();
10500
- if (this.sourceId) {
10501
- if (menuItem.ghostLoading == true) {
10502
- this.cTileset.style = new Cesium.Cesium3DTileStyle({
10503
- color: "rgba(255, 255, 250, 0.98)"
10504
- });
10505
- }
10506
- this.viewer.scene.primitives.add(this.cTileset);
10507
- this.cTileset.tileLoad.addEventListener(function (tile) {
10508
- try {
10509
- _this.mapCTile(tile);
10510
- }
10511
- catch (e) {
10512
- console.error(e);
10554
+ (function () { return __awaiter(_this, void 0, void 0, function () {
10555
+ var CESIUM, cTileset;
10556
+ var _this = this;
10557
+ return __generator(this, function (_a) {
10558
+ switch (_a.label) {
10559
+ case 0:
10560
+ CESIUM = Cesium;
10561
+ if (!CESIUM["createOsmBuildingsAsync"]) return [3 /*break*/, 2];
10562
+ return [4 /*yield*/, CESIUM.createOsmBuildingsAsync({})];
10563
+ case 1:
10564
+ cTileset = _a.sent();
10565
+ return [3 /*break*/, 3];
10566
+ case 2:
10567
+ if (CESIUM["createOsmBuildings"]) {
10568
+ cTileset = CESIUM.createOsmBuildings();
10569
+ }
10570
+ else {
10571
+ console.warn("'tileset-osm-render-manager.ts' could not locate a create function for OSM buildings.");
10572
+ return [2 /*return*/];
10573
+ }
10574
+ _a.label = 3;
10575
+ case 3:
10576
+ if (this.disposed) {
10577
+ if (this.cTileset && !this.cTileset.isDestroyed()) {
10578
+ this.cTileset.destroy();
10579
+ this.cTileset = null;
10580
+ }
10581
+ return [2 /*return*/];
10582
+ }
10583
+ this.cTileset = cTileset;
10584
+ if (this.sourceId) {
10585
+ if (menuItem.ghostLoading == true) {
10586
+ this.cTileset.style = new Cesium.Cesium3DTileStyle({
10587
+ color: "rgba(255, 255, 250, 0.98)"
10588
+ });
10589
+ }
10590
+ this.viewer.scene.primitives.add(this.cTileset);
10591
+ this.cTileset.tileLoad.addEventListener(function (tile) {
10592
+ if (_this.disposed) {
10593
+ return;
10594
+ }
10595
+ try {
10596
+ _this.mapCTile(tile);
10597
+ }
10598
+ catch (e) {
10599
+ console.error(e);
10600
+ }
10601
+ });
10602
+ this.queueCheckInterval = setInterval(function () {
10603
+ if (_this.featureQueue.length > 0) {
10604
+ _this.processQueue();
10605
+ }
10606
+ }, 5000);
10607
+ }
10608
+ else {
10609
+ this.viewer.scene.primitives.add(this.cTileset);
10610
+ }
10611
+ this.cTileset.show = true;
10612
+ this.viewer.scene.requestRender();
10613
+ return [2 /*return*/];
10513
10614
  }
10514
10615
  });
10515
- this.queueCheckInterval = setInterval(function () {
10516
- if (_this.featureQueue.length > 0) {
10517
- _this.processQueue();
10518
- }
10519
- }, 5000);
10520
- }
10521
- else {
10522
- this.viewer.scene.primitives.add(this.cTileset);
10523
- }
10616
+ }); })();
10524
10617
  };
10525
10618
  Manager.prototype.mapCTile = function (tile) {
10526
10619
  return __awaiter(this, void 0, void 0, function () {
@@ -10857,7 +10950,7 @@
10857
10950
  return [2 /*return*/];
10858
10951
  }
10859
10952
  this.viewer.scene.requestRender();
10860
- cTileset.readyPromise.then(function () {
10953
+ exports.TilesetRenderEngine.OnTilesetReady(this.cTileset).then(function () {
10861
10954
  try {
10862
10955
  if (_this.disposed || _this.viewer.isDestroyed()) {
10863
10956
  return;
@@ -10882,7 +10975,7 @@
10882
10975
  if (isNaN(attenuationMax)) {
10883
10976
  attenuationMax = 20;
10884
10977
  }
10885
- this.cTileset.readyPromise.then(function () {
10978
+ exports.TilesetRenderEngine.OnTilesetReady(this.cTileset).then(function () {
10886
10979
  exports.TilesetRenderEngine.ApplySettings({
10887
10980
  cTileset: _this.cTileset,
10888
10981
  settings: {
@@ -11064,7 +11157,7 @@
11064
11157
  return [2 /*return*/];
11065
11158
  }
11066
11159
  this.viewer.scene.requestRender();
11067
- cTileset.readyPromise.then(function () {
11160
+ exports.TilesetRenderEngine.OnTilesetReady(this.cTileset).then(function () {
11068
11161
  try {
11069
11162
  if (_this.disposed || _this.viewer.isDestroyed()) {
11070
11163
  return;
@@ -11441,7 +11534,7 @@
11441
11534
  return [2 /*return*/];
11442
11535
  }
11443
11536
  this.viewer.scene.requestRender();
11444
- this.cTileset.readyPromise.then(function () {
11537
+ exports.TilesetRenderEngine.OnTilesetReady(this.cTileset).then(function () {
11445
11538
  try {
11446
11539
  if (_this.item.ApplyStyles ||
11447
11540
  _this.item.Type == bruceModels.MenuItem.EType.IonTileset) {
@@ -11455,18 +11548,18 @@
11455
11548
  console.error(e);
11456
11549
  }
11457
11550
  });
11458
- this.cTileset.tileLoad.addEventListener(function (tile) {
11459
- try {
11460
- _this.mapCTile(tile);
11461
- }
11462
- catch (e) {
11463
- console.error(e);
11464
- }
11465
- });
11466
11551
  return [2 /*return*/];
11467
11552
  }
11468
11553
  });
11469
11554
  }); })();
11555
+ this.cTileset.tileLoad.addEventListener(function (tile) {
11556
+ try {
11557
+ _this.mapCTile(tile);
11558
+ }
11559
+ catch (e) {
11560
+ console.error(e);
11561
+ }
11562
+ });
11470
11563
  };
11471
11564
  Manager.prototype.onCTilesetLoad = function () {
11472
11565
  if (this.item.FlyTo) {
@@ -12044,6 +12137,7 @@
12044
12137
  if (this.disposed) {
12045
12138
  return;
12046
12139
  }
12140
+ this.disposed = true;
12047
12141
  this.doDispose();
12048
12142
  };
12049
12143
  Manager.prototype.doDispose = function () {
@@ -13108,6 +13202,8 @@
13108
13202
  this._terrainListenRemoval();
13109
13203
  this._terrainListenRemoval = null;
13110
13204
  }
13205
+ clearTimeout(this.checkTimeout);
13206
+ this.checkTimeout = null;
13111
13207
  _super.prototype.Dispose.call(this);
13112
13208
  };
13113
13209
  WidgetBranding.prototype._generateStyles = function () {
@@ -13154,12 +13250,16 @@
13154
13250
  return [2 /*return*/, false];
13155
13251
  }
13156
13252
  provider = viewer.scene.terrainProvider;
13157
- return [4 /*yield*/, provider.readyPromise];
13158
- case 1:
13159
- _c.sent();
13160
- if (provider != viewer.scene.terrainProvider) {
13253
+ // Newer Cesium versions have a ready property
13254
+ if (provider["ready"] == false) {
13161
13255
  return [2 /*return*/];
13162
13256
  }
13257
+ if (!provider["readyPromise"]) return [3 /*break*/, 2];
13258
+ return [4 /*yield*/, provider["readyPromise"]];
13259
+ case 1:
13260
+ _c.sent();
13261
+ _c.label = 2;
13262
+ case 2:
13163
13263
  credits = provider === null || provider === void 0 ? void 0 : provider._tileCredits;
13164
13264
  return [2 /*return*/, credits && credits.length > 0 && credits[0]._html && ((_b = credits[0]._html) === null || _b === void 0 ? void 0 : _b.includes("ion-credit.png"))];
13165
13265
  }
@@ -13167,21 +13267,23 @@
13167
13267
  });
13168
13268
  };
13169
13269
  WidgetBranding.prototype._updateIon = function () {
13270
+ var _a, _b;
13170
13271
  return __awaiter(this, void 0, void 0, function () {
13171
- var shouldShow, e_1;
13172
- return __generator(this, function (_a) {
13173
- switch (_a.label) {
13272
+ var shouldShow, e_1, provider;
13273
+ var _this = this;
13274
+ return __generator(this, function (_c) {
13275
+ switch (_c.label) {
13174
13276
  case 0:
13175
13277
  if (this.updatingIon) {
13176
13278
  return [2 /*return*/];
13177
13279
  }
13178
13280
  this.updatingIon = true;
13179
- _a.label = 1;
13281
+ _c.label = 1;
13180
13282
  case 1:
13181
- _a.trys.push([1, 3, , 4]);
13283
+ _c.trys.push([1, 3, , 4]);
13182
13284
  return [4 /*yield*/, this._shouldShowIonLogo()];
13183
13285
  case 2:
13184
- shouldShow = _a.sent();
13286
+ shouldShow = _c.sent();
13185
13287
  if (shouldShow && !this.ion.parentElement) {
13186
13288
  this._element.insertBefore(this.ion, this._element.firstChild);
13187
13289
  }
@@ -13190,11 +13292,22 @@
13190
13292
  }
13191
13293
  return [3 /*break*/, 4];
13192
13294
  case 3:
13193
- e_1 = _a.sent();
13295
+ e_1 = _c.sent();
13194
13296
  console.error(e_1);
13195
13297
  return [3 /*break*/, 4];
13196
13298
  case 4:
13197
13299
  this.updatingIon = false;
13300
+ provider = !((_a = this._viewer) === null || _a === void 0 ? void 0 : _a.scene) || ((_b = this._viewer) === null || _b === void 0 ? void 0 : _b.isDestroyed()) ? null : this._viewer.scene.terrainProvider;
13301
+ if (provider) {
13302
+ // Newer Cesium versions have a ready property
13303
+ // If it's not ready, we'll re-check in a moment.
13304
+ if (provider["ready"] == false) {
13305
+ clearTimeout(this.checkTimeout);
13306
+ this.checkTimeout = setTimeout(function () {
13307
+ _this._updateIon();
13308
+ }, 1000);
13309
+ }
13310
+ }
13198
13311
  return [2 /*return*/];
13199
13312
  }
13200
13313
  });
@@ -15857,7 +15970,7 @@
15857
15970
  }
15858
15971
  this._lastSelectedId = firstId;
15859
15972
  try {
15860
- url = "http://localhost:3000/embed";
15973
+ url = "https://embed.nextspace-dev.net/embed";
15861
15974
  urlParams = new URLSearchParams();
15862
15975
  urlParams.append("id", "info-view");
15863
15976
  urlParams.append("entityId", firstId);
@@ -16652,7 +16765,7 @@
16652
16765
  case bruceModels.ProjectViewTile.EDefaultTerrain.FlatTerrain: return [3 /*break*/, 5];
16653
16766
  case bruceModels.ProjectViewTile.EDefaultTerrain.LINZ: return [3 /*break*/, 6];
16654
16767
  }
16655
- return [3 /*break*/, 7];
16768
+ return [3 /*break*/, 10];
16656
16769
  case 1:
16657
16770
  if (!CESIUM.createWorldTerrainAsync) return [3 /*break*/, 3];
16658
16771
  return [4 /*yield*/, CESIUM.createWorldTerrainAsync({
@@ -16663,24 +16776,37 @@
16663
16776
  provider = _b.sent();
16664
16777
  return [3 /*break*/, 4];
16665
16778
  case 3:
16666
- provider = Cesium.createWorldTerrain({
16667
- requestVertexNormals: true,
16668
- requestWaterMask: false
16669
- });
16779
+ if (CESIUM.createWorldTerrain) {
16780
+ provider = CESIUM.createWorldTerrain({
16781
+ requestVertexNormals: true,
16782
+ requestWaterMask: false
16783
+ });
16784
+ }
16670
16785
  _b.label = 4;
16671
- case 4: return [3 /*break*/, 7];
16786
+ case 4: return [3 /*break*/, 10];
16672
16787
  case 5:
16673
16788
  provider = new Cesium.EllipsoidTerrainProvider();
16674
- return [3 /*break*/, 7];
16789
+ return [3 /*break*/, 10];
16675
16790
  case 6:
16676
- provider = new Cesium.CesiumTerrainProvider({
16791
+ if (!CESIUM.CesiumTerrainProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 8];
16792
+ return [4 /*yield*/, CESIUM.CesiumTerrainProvider.fromUrl("https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem", {
16793
+ requestVertexNormals: true,
16794
+ requestWaterMask: false,
16795
+ requestMetadata: false
16796
+ })];
16797
+ case 7:
16798
+ provider = _b.sent();
16799
+ return [3 /*break*/, 9];
16800
+ case 8:
16801
+ provider = new CESIUM.CesiumTerrainProvider({
16677
16802
  url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
16678
16803
  requestVertexNormals: true,
16679
16804
  requestWaterMask: false,
16680
16805
  requestMetadata: false
16681
16806
  });
16682
- return [3 /*break*/, 7];
16683
- case 7: return [2 /*return*/, provider];
16807
+ _b.label = 9;
16808
+ case 9: return [3 /*break*/, 10];
16809
+ case 10: return [2 /*return*/, provider];
16684
16810
  }
16685
16811
  });
16686
16812
  });
@@ -16802,132 +16928,202 @@
16802
16928
  */
16803
16929
  function renderDefaultMapTile(apiGetter, id) {
16804
16930
  return __awaiter(this, void 0, void 0, function () {
16805
- var provider, _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
16806
- var _p, _q, _r, _s, _t, _u;
16807
- return __generator(this, function (_v) {
16808
- switch (_v.label) {
16931
+ var CESIUM, provider, _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
16932
+ var _y, _z, _0, _1, _2, _3, _4, _5, _6;
16933
+ return __generator(this, function (_7) {
16934
+ switch (_7.label) {
16809
16935
  case 0:
16936
+ CESIUM = Cesium;
16810
16937
  _a = id;
16811
16938
  switch (_a) {
16812
16939
  case bruceModels.ProjectViewTile.EDefaultImagery.BingMapsAerial: return [3 /*break*/, 1];
16813
- case bruceModels.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels: return [3 /*break*/, 3];
16814
- case bruceModels.ProjectViewTile.EDefaultImagery.BingMapsRoads: return [3 /*break*/, 5];
16815
- case bruceModels.ProjectViewTile.EDefaultImagery.MapboxSatellite: return [3 /*break*/, 7];
16816
- case bruceModels.ProjectViewTile.EDefaultImagery.MapBoxStreets: return [3 /*break*/, 9];
16817
- case bruceModels.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic: return [3 /*break*/, 11];
16818
- case bruceModels.ProjectViewTile.EDefaultImagery.EsriWorldImagery: return [3 /*break*/, 13];
16819
- case bruceModels.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap: return [3 /*break*/, 14];
16820
- case bruceModels.ProjectViewTile.EDefaultImagery.EsriNationalGeographic: return [3 /*break*/, 15];
16821
- case bruceModels.ProjectViewTile.EDefaultImagery.OpenStreetMap: return [3 /*break*/, 16];
16822
- case bruceModels.ProjectViewTile.EDefaultImagery.LINZ: return [3 /*break*/, 17];
16823
- case bruceModels.ProjectViewTile.EDefaultImagery.StamenWaterColor: return [3 /*break*/, 18];
16824
- case bruceModels.ProjectViewTile.EDefaultImagery.StamenToner: return [3 /*break*/, 19];
16825
- case bruceModels.ProjectViewTile.EDefaultImagery.Grid: return [3 /*break*/, 20];
16940
+ case bruceModels.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels: return [3 /*break*/, 7];
16941
+ case bruceModels.ProjectViewTile.EDefaultImagery.BingMapsRoads: return [3 /*break*/, 13];
16942
+ case bruceModels.ProjectViewTile.EDefaultImagery.MapboxSatellite: return [3 /*break*/, 19];
16943
+ case bruceModels.ProjectViewTile.EDefaultImagery.MapBoxStreets: return [3 /*break*/, 21];
16944
+ case bruceModels.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic: return [3 /*break*/, 23];
16945
+ case bruceModels.ProjectViewTile.EDefaultImagery.EsriWorldImagery: return [3 /*break*/, 25];
16946
+ case bruceModels.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap: return [3 /*break*/, 29];
16947
+ case bruceModels.ProjectViewTile.EDefaultImagery.EsriNationalGeographic: return [3 /*break*/, 33];
16948
+ case bruceModels.ProjectViewTile.EDefaultImagery.OpenStreetMap: return [3 /*break*/, 37];
16949
+ case bruceModels.ProjectViewTile.EDefaultImagery.LINZ: return [3 /*break*/, 38];
16950
+ case bruceModels.ProjectViewTile.EDefaultImagery.StamenWaterColor: return [3 /*break*/, 39];
16951
+ case bruceModels.ProjectViewTile.EDefaultImagery.StamenToner: return [3 /*break*/, 40];
16952
+ case bruceModels.ProjectViewTile.EDefaultImagery.Grid: return [3 /*break*/, 41];
16826
16953
  }
16827
- return [3 /*break*/, 21];
16954
+ return [3 /*break*/, 42];
16828
16955
  case 1:
16829
- _c = (_b = Cesium.BingMapsImageryProvider).bind;
16830
- _p = {
16831
- url: "https://dev.virtualearth.net",
16956
+ if (!Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 4];
16957
+ _c = (_b = CESIUM.BingMapsImageryProvider).fromUrl;
16958
+ _d = ["https://dev.virtualearth.net"];
16959
+ _y = {
16832
16960
  mapStyle: Cesium.BingMapsStyle.AERIAL
16833
16961
  };
16834
16962
  return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
16835
- case 2:
16836
- provider = new (_c.apply(_b, [void 0, (_p.key = _v.sent(),
16837
- _p)]))();
16838
- return [3 /*break*/, 21];
16963
+ case 2: return [4 /*yield*/, _c.apply(_b, _d.concat([(_y.key = _7.sent(),
16964
+ _y)]))];
16839
16965
  case 3:
16840
- _e = (_d = Cesium.BingMapsImageryProvider).bind;
16841
- _q = {
16966
+ provider = _7.sent();
16967
+ return [3 /*break*/, 6];
16968
+ case 4:
16969
+ _f = (_e = CESIUM.BingMapsImageryProvider).bind;
16970
+ _z = {
16842
16971
  url: "https://dev.virtualearth.net",
16843
- mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS
16972
+ mapStyle: Cesium.BingMapsStyle.AERIAL
16844
16973
  };
16845
16974
  return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
16846
- case 4:
16847
- provider = new (_e.apply(_d, [void 0, (_q.key = _v.sent(),
16848
- _q)]))();
16849
- return [3 /*break*/, 21];
16850
16975
  case 5:
16851
- _g = (_f = Cesium.BingMapsImageryProvider).bind;
16852
- _r = {
16976
+ provider = new (_f.apply(_e, [void 0, (_z.key = _7.sent(),
16977
+ _z)]))();
16978
+ _7.label = 6;
16979
+ case 6: return [3 /*break*/, 42];
16980
+ case 7:
16981
+ if (!Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 10];
16982
+ _h = (_g = CESIUM.BingMapsImageryProvider).fromUrl;
16983
+ _j = ["https://dev.virtualearth.net"];
16984
+ _0 = {
16985
+ mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS
16986
+ };
16987
+ return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
16988
+ case 8: return [4 /*yield*/, _h.apply(_g, _j.concat([(_0.key = _7.sent(),
16989
+ _0)]))];
16990
+ case 9:
16991
+ provider = _7.sent();
16992
+ return [3 /*break*/, 12];
16993
+ case 10:
16994
+ _l = (_k = CESIUM.BingMapsImageryProvider).bind;
16995
+ _1 = {
16996
+ url: "https://dev.virtualearth.net",
16997
+ mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS
16998
+ };
16999
+ return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
17000
+ case 11:
17001
+ provider = new (_l.apply(_k, [void 0, (_1.key = _7.sent(),
17002
+ _1)]))();
17003
+ _7.label = 12;
17004
+ case 12: return [3 /*break*/, 42];
17005
+ case 13:
17006
+ if (!Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 16];
17007
+ _o = (_m = CESIUM.BingMapsImageryProvider).fromUrl;
17008
+ _p = ["https://dev.virtualearth.net"];
17009
+ _2 = {
17010
+ mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND
17011
+ };
17012
+ return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
17013
+ case 14: return [4 /*yield*/, _o.apply(_m, _p.concat([(_2.key = _7.sent(),
17014
+ _2)]))];
17015
+ case 15:
17016
+ provider = _7.sent();
17017
+ return [3 /*break*/, 18];
17018
+ case 16:
17019
+ _r = (_q = CESIUM.BingMapsImageryProvider).bind;
17020
+ _3 = {
16853
17021
  url: "https://dev.virtualearth.net",
16854
17022
  mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND
16855
17023
  };
16856
17024
  return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
16857
- case 6:
16858
- provider = new (_g.apply(_f, [void 0, (_r.key = _v.sent(),
16859
- _r)]))();
16860
- return [3 /*break*/, 21];
16861
- case 7:
16862
- _j = (_h = Cesium.MapboxImageryProvider).bind;
16863
- _s = {
17025
+ case 17:
17026
+ provider = new (_r.apply(_q, [void 0, (_3.key = _7.sent(),
17027
+ _3)]))();
17028
+ _7.label = 18;
17029
+ case 18: return [3 /*break*/, 42];
17030
+ case 19:
17031
+ _t = (_s = Cesium.MapboxImageryProvider).bind;
17032
+ _4 = {
16864
17033
  mapId: "mapbox.satellite"
16865
17034
  };
16866
17035
  return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.Mapbox, DEFAULT_MAPBOX_KEY)];
16867
- case 8:
16868
- provider = new (_j.apply(_h, [void 0, (_s.accessToken = _v.sent(),
16869
- _s)]))();
16870
- return [3 /*break*/, 21];
16871
- case 9:
16872
- _l = (_k = Cesium.MapboxStyleImageryProvider).bind;
16873
- _t = {
17036
+ case 20:
17037
+ provider = new (_t.apply(_s, [void 0, (_4.accessToken = _7.sent(),
17038
+ _4)]))();
17039
+ return [3 /*break*/, 42];
17040
+ case 21:
17041
+ _v = (_u = Cesium.MapboxStyleImageryProvider).bind;
17042
+ _5 = {
16874
17043
  styleId: "satellite-streets-v11"
16875
17044
  };
16876
17045
  return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.Mapbox, DEFAULT_MAPBOX_KEY)];
16877
- case 10:
16878
- provider = new (_l.apply(_k, [void 0, (_t.accessToken = _v.sent(),
16879
- _t)]))();
16880
- return [3 /*break*/, 21];
16881
- case 11:
16882
- _o = (_m = Cesium.MapboxStyleImageryProvider).bind;
16883
- _u = {
17046
+ case 22:
17047
+ provider = new (_v.apply(_u, [void 0, (_5.accessToken = _7.sent(),
17048
+ _5)]))();
17049
+ return [3 /*break*/, 42];
17050
+ case 23:
17051
+ _x = (_w = Cesium.MapboxStyleImageryProvider).bind;
17052
+ _6 = {
16884
17053
  styleId: "streets-v11"
16885
17054
  };
16886
17055
  return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.Mapbox, DEFAULT_MAPBOX_KEY)];
16887
- case 12:
16888
- provider = new (_o.apply(_m, [void 0, (_u.accessToken = _v.sent(),
16889
- _u)]))();
16890
- return [3 /*break*/, 21];
16891
- case 13:
16892
- provider = new Cesium.ArcGisMapServerImageryProvider({
17056
+ case 24:
17057
+ provider = new (_x.apply(_w, [void 0, (_6.accessToken = _7.sent(),
17058
+ _6)]))();
17059
+ return [3 /*break*/, 42];
17060
+ case 25:
17061
+ if (!Cesium.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 27];
17062
+ return [4 /*yield*/, CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", {
17063
+ enablePickFeatures: false
17064
+ })];
17065
+ case 26:
17066
+ provider = _7.sent();
17067
+ return [3 /*break*/, 28];
17068
+ case 27:
17069
+ provider = new CESIUM.ArcGisMapServerImageryProvider({
16893
17070
  url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
16894
17071
  enablePickFeatures: false
16895
17072
  });
16896
- return [3 /*break*/, 21];
16897
- case 14:
16898
- provider = new Cesium.ArcGisMapServerImageryProvider({
17073
+ _7.label = 28;
17074
+ case 28: return [3 /*break*/, 42];
17075
+ case 29:
17076
+ if (!Cesium.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 31];
17077
+ return [4 /*yield*/, CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", {
17078
+ enablePickFeatures: false
17079
+ })];
17080
+ case 30:
17081
+ provider = _7.sent();
17082
+ return [3 /*break*/, 32];
17083
+ case 31:
17084
+ provider = new CESIUM.ArcGisMapServerImageryProvider({
16899
17085
  url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
16900
17086
  enablePickFeatures: false
16901
17087
  });
16902
- return [3 /*break*/, 21];
16903
- case 15:
16904
- provider = new Cesium.ArcGisMapServerImageryProvider({
17088
+ _7.label = 32;
17089
+ case 32: return [3 /*break*/, 42];
17090
+ case 33:
17091
+ if (!CESIUM.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 35];
17092
+ return [4 /*yield*/, CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/", {
17093
+ enablePickFeatures: false
17094
+ })];
17095
+ case 34:
17096
+ provider = _7.sent();
17097
+ return [3 /*break*/, 36];
17098
+ case 35:
17099
+ provider = new CESIUM.ArcGisMapServerImageryProvider({
16905
17100
  url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
16906
17101
  enablePickFeatures: false
16907
17102
  });
16908
- return [3 /*break*/, 21];
16909
- case 16:
17103
+ _7.label = 36;
17104
+ case 36: return [3 /*break*/, 42];
17105
+ case 37:
16910
17106
  provider = new Cesium.OpenStreetMapImageryProvider({
16911
17107
  url: "https://a.tile.openstreetmap.org/"
16912
17108
  });
16913
- return [3 /*break*/, 21];
16914
- case 17:
17109
+ return [3 /*break*/, 42];
17110
+ case 38:
16915
17111
  provider = new Cesium.OpenStreetMapImageryProvider({
16916
17112
  url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-img",
16917
17113
  fileExtension: "jpg"
16918
17114
  });
16919
- return [3 /*break*/, 21];
16920
- case 18:
17115
+ return [3 /*break*/, 42];
17116
+ case 39:
16921
17117
  provider = new Cesium.OpenStreetMapImageryProvider({
16922
17118
  url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
16923
17119
  });
16924
- return [3 /*break*/, 21];
16925
- case 19:
17120
+ return [3 /*break*/, 42];
17121
+ case 40:
16926
17122
  provider = new Cesium.OpenStreetMapImageryProvider({
16927
17123
  url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
16928
17124
  });
16929
- return [3 /*break*/, 21];
16930
- case 20:
17125
+ return [3 /*break*/, 42];
17126
+ case 41:
16931
17127
  provider = new Cesium.GridImageryProvider({
16932
17128
  tilingScheme: new Cesium.GeographicTilingScheme(),
16933
17129
  cells: 0,
@@ -16939,8 +17135,8 @@
16939
17135
  tileHeight: 256,
16940
17136
  canvasSize: 256
16941
17137
  });
16942
- return [3 /*break*/, 21];
16943
- case 21: return [2 /*return*/, provider];
17138
+ return [3 /*break*/, 42];
17139
+ case 42: return [2 /*return*/, provider];
16944
17140
  }
16945
17141
  });
16946
17142
  });
@@ -17036,19 +17232,20 @@
17036
17232
  (function (LegacyNavigator) {
17037
17233
  function Render(params) {
17038
17234
  return __awaiter(this, void 0, void 0, function () {
17039
- var enabled, tile, bId, layer, defaultId, provider, provider, min, max, _a, mapboxKey, _b;
17235
+ var CESIUM, enabled, tile, bId, layer, defaultId, provider, provider, min, max, _a, mapboxKey, _b;
17040
17236
  return __generator(this, function (_c) {
17041
17237
  switch (_c.label) {
17042
17238
  case 0:
17043
17239
  if (!params.apiGetter) {
17044
17240
  params.apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
17045
17241
  }
17242
+ CESIUM = Cesium;
17046
17243
  enabled = gatherEnabledImageries(params.viewer);
17047
17244
  tile = params.data;
17048
17245
  bId = createLegacyImageryId(tile);
17049
17246
  layer = enabled.find(function (x) { return x._bId == bId; });
17050
17247
  if (!layer) return [3 /*break*/, 1];
17051
- return [3 /*break*/, 13];
17248
+ return [3 /*break*/, 16];
17052
17249
  case 1:
17053
17250
  if (!isLegacyImageryDefault(tile.Name)) return [3 /*break*/, 3];
17054
17251
  defaultId = legacyMapIdToDefaultId(tile.Name);
@@ -17058,9 +17255,9 @@
17058
17255
  if (provider) {
17059
17256
  layer = createImageryLayer(provider);
17060
17257
  }
17061
- return [3 /*break*/, 13];
17258
+ return [3 /*break*/, 16];
17062
17259
  case 3:
17063
- if (!tile.SourceUrl) return [3 /*break*/, 13];
17260
+ if (!tile.SourceUrl) return [3 /*break*/, 16];
17064
17261
  provider = null;
17065
17262
  min = tile.Minimum;
17066
17263
  max = tile.Maximum;
@@ -17075,17 +17272,17 @@
17075
17272
  case "BruceImagery": return [3 /*break*/, 4];
17076
17273
  case "ArcGisImagery": return [3 /*break*/, 5];
17077
17274
  case "TileMapImagery": return [3 /*break*/, 6];
17078
- case "OpenStreetMapImagery": return [3 /*break*/, 7];
17079
- case "MapBoxImagery": return [3 /*break*/, 8];
17275
+ case "OpenStreetMapImagery": return [3 /*break*/, 10];
17276
+ case "MapBoxImagery": return [3 /*break*/, 11];
17080
17277
  }
17081
- return [3 /*break*/, 12];
17278
+ return [3 /*break*/, 15];
17082
17279
  case 4:
17083
17280
  provider = new Cesium.UrlTemplateImageryProvider({
17084
17281
  url: tile.SourceUrl,
17085
17282
  tileHeight: 256,
17086
17283
  tileWidth: 256
17087
17284
  });
17088
- return [3 /*break*/, 12];
17285
+ return [3 /*break*/, 15];
17089
17286
  case 5:
17090
17287
  provider = new Cesium.OpenStreetMapImageryProvider({
17091
17288
  url: tile.SourceUrl,
@@ -17093,32 +17290,43 @@
17093
17290
  minimumLevel: min,
17094
17291
  maximumLevel: max
17095
17292
  });
17096
- return [3 /*break*/, 12];
17293
+ return [3 /*break*/, 15];
17097
17294
  case 6:
17098
- provider = new Cesium.TileMapServiceImageryProvider({
17295
+ if (!Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 8];
17296
+ return [4 /*yield*/, CESIUM.TileMapServiceImageryProvider.fromUrl(tile.SourceUrl, {
17297
+ minimumLevel: min,
17298
+ maximumLevel: max,
17299
+ fileExtension: prepareFileExt(tile.FileExtension)
17300
+ })];
17301
+ case 7:
17302
+ provider = _c.sent();
17303
+ return [3 /*break*/, 9];
17304
+ case 8:
17305
+ provider = new CESIUM.TileMapServiceImageryProvider({
17099
17306
  url: tile.SourceUrl,
17100
17307
  fileExtension: prepareFileExt(tile.FileExtension),
17101
17308
  minimumLevel: min,
17102
17309
  maximumLevel: max
17103
17310
  });
17104
- return [3 /*break*/, 12];
17105
- case 7:
17311
+ _c.label = 9;
17312
+ case 9: return [3 /*break*/, 15];
17313
+ case 10:
17106
17314
  provider = new Cesium.OpenStreetMapImageryProvider({
17107
17315
  url: tile.SourceUrl,
17108
17316
  fileExtension: prepareFileExt(tile.FileExtension),
17109
17317
  minimumLevel: min,
17110
17318
  maximumLevel: max
17111
17319
  });
17112
- return [3 /*break*/, 12];
17113
- case 8:
17114
- if (!tile.ProgramKey) return [3 /*break*/, 9];
17320
+ return [3 /*break*/, 15];
17321
+ case 11:
17322
+ if (!tile.ProgramKey) return [3 /*break*/, 12];
17115
17323
  _b = tile.ProgramKey;
17116
- return [3 /*break*/, 11];
17117
- case 9: return [4 /*yield*/, findKey(params.apiGetter, bruceModels.ProgramKey.EProgramId.Mapbox, null)];
17118
- case 10:
17324
+ return [3 /*break*/, 14];
17325
+ case 12: return [4 /*yield*/, findKey(params.apiGetter, bruceModels.ProgramKey.EProgramId.Mapbox, null)];
17326
+ case 13:
17119
17327
  _b = _c.sent();
17120
- _c.label = 11;
17121
- case 11:
17328
+ _c.label = 14;
17329
+ case 14:
17122
17330
  mapboxKey = _b;
17123
17331
  provider = new Cesium.UrlTemplateImageryProvider({
17124
17332
  url: "https://api.mapbox.com/styles/v1/"
@@ -17126,13 +17334,13 @@
17126
17334
  "/tiles/256/{z}/{x}/{y}?access_token="
17127
17335
  + mapboxKey
17128
17336
  });
17129
- return [3 /*break*/, 12];
17130
- case 12:
17337
+ return [3 /*break*/, 15];
17338
+ case 15:
17131
17339
  if (provider) {
17132
17340
  layer = createImageryLayer(provider);
17133
17341
  }
17134
- _c.label = 13;
17135
- case 13:
17342
+ _c.label = 16;
17343
+ case 16:
17136
17344
  if (layer) {
17137
17345
  layer._bId = bId;
17138
17346
  layer._bName = tile.Name;
@@ -17299,7 +17507,7 @@
17299
17507
  (function (Navigator) {
17300
17508
  function GetOrCreateLayer(params) {
17301
17509
  return __awaiter(this, void 0, void 0, function () {
17302
- var viewer, apiGetter, meta, enabled, i, layer, layerMeta, defaultImg, provider, api, tileset, boundaries, settings, minLat, maxLat, minLon, maxLon, minLevel, maxLevel, hasLevels, settings_1, _a, cesiumIonKey, _b, mapboxKey, _c, layer;
17510
+ var viewer, apiGetter, meta, CESIUM, enabled, i, layer, layerMeta, defaultImg, provider, api, tileset, boundaries, settings, minLat, maxLat, minLon, maxLon, minLevel, maxLevel, hasLevels, url, settings_1, _a, cesiumIonKey, _b, mapboxKey, _c, layer;
17303
17511
  return __generator(this, function (_d) {
17304
17512
  switch (_d.label) {
17305
17513
  case 0:
@@ -17307,6 +17515,7 @@
17307
17515
  if (!apiGetter) {
17308
17516
  apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
17309
17517
  }
17518
+ CESIUM = Cesium;
17310
17519
  enabled = gatherEnabledImageries(viewer);
17311
17520
  for (i = 0; i < enabled.length; i++) {
17312
17521
  layer = enabled[i];
@@ -17321,7 +17530,7 @@
17321
17530
  return [4 /*yield*/, renderDefaultMapTile(apiGetter, defaultImg.id)];
17322
17531
  case 1:
17323
17532
  provider = _d.sent();
17324
- return [3 /*break*/, 19];
17533
+ return [3 /*break*/, 28];
17325
17534
  case 2:
17326
17535
  api = apiGetter.getApi(meta.accountId);
17327
17536
  // Ensure regional url is loaded.
@@ -17351,8 +17560,27 @@
17351
17560
  minLevel = settings === null || settings === void 0 ? void 0 : settings.levelMin;
17352
17561
  maxLevel = settings === null || settings === void 0 ? void 0 : settings.levelMax;
17353
17562
  hasLevels = !isNaN(minLevel) && !isNaN(maxLevel);
17354
- if (!(tileset.type === bruceModels.Tileset.EType.GeoMap)) return [3 /*break*/, 5];
17355
- provider = new Cesium.TileMapServiceImageryProvider({
17563
+ if (!(tileset.type === bruceModels.Tileset.EType.GeoMap)) return [3 /*break*/, 8];
17564
+ if (!Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 6];
17565
+ url = bruceModels.Tileset.GetPublicFileUrl({
17566
+ api: api,
17567
+ tilesetId: meta.tilesetId,
17568
+ file: "",
17569
+ viaCdn: true,
17570
+ viaCdnCacheToken: tileset.generateVersion
17571
+ });
17572
+ return [4 /*yield*/, CESIUM.TileMapServiceImageryProvider.fromUrl(url, {
17573
+ fileExtension: "png",
17574
+ // Tested to not cause increased lag.
17575
+ rectangle: boundaries,
17576
+ maximumLevel: hasLevels ? maxLevel : undefined,
17577
+ minimumLevel: hasLevels ? minLevel : undefined,
17578
+ })];
17579
+ case 5:
17580
+ provider = _d.sent();
17581
+ return [3 /*break*/, 7];
17582
+ case 6:
17583
+ provider = new CESIUM.TileMapServiceImageryProvider({
17356
17584
  url: bruceModels.Tileset.GetPublicFileUrl({
17357
17585
  api: api,
17358
17586
  tilesetId: meta.tilesetId,
@@ -17366,43 +17594,53 @@
17366
17594
  maximumLevel: hasLevels ? maxLevel : undefined,
17367
17595
  minimumLevel: hasLevels ? minLevel : undefined,
17368
17596
  });
17369
- return [3 /*break*/, 19];
17370
- case 5:
17371
- if (!(tileset.type === bruceModels.Tileset.EType.ExternalGeoMap)) return [3 /*break*/, 18];
17597
+ _d.label = 7;
17598
+ case 7: return [3 /*break*/, 28];
17599
+ case 8:
17600
+ if (!(tileset.type === bruceModels.Tileset.EType.ExternalGeoMap)) return [3 /*break*/, 27];
17372
17601
  settings_1 = tileset.settings;
17373
17602
  _a = settings_1.mapType;
17374
17603
  switch (_a) {
17375
- case bruceModels.Tileset.Settings.EExternalMapType.CesiumIon: return [3 /*break*/, 6];
17376
- case bruceModels.Tileset.Settings.EExternalMapType.MapBoxImagery: return [3 /*break*/, 10];
17377
- case bruceModels.Tileset.Settings.EExternalMapType.OpenStreetMapImagery: return [3 /*break*/, 14];
17378
- case bruceModels.Tileset.Settings.EExternalMapType.TileMapImagery: return [3 /*break*/, 15];
17379
- case bruceModels.Tileset.Settings.EExternalMapType.CustomTemplate: return [3 /*break*/, 16];
17604
+ case bruceModels.Tileset.Settings.EExternalMapType.CesiumIon: return [3 /*break*/, 9];
17605
+ case bruceModels.Tileset.Settings.EExternalMapType.MapBoxImagery: return [3 /*break*/, 16];
17606
+ case bruceModels.Tileset.Settings.EExternalMapType.OpenStreetMapImagery: return [3 /*break*/, 20];
17607
+ case bruceModels.Tileset.Settings.EExternalMapType.TileMapImagery: return [3 /*break*/, 21];
17608
+ case bruceModels.Tileset.Settings.EExternalMapType.CustomTemplate: return [3 /*break*/, 25];
17380
17609
  }
17381
- return [3 /*break*/, 17];
17382
- case 6:
17383
- if (!settings_1.key) return [3 /*break*/, 7];
17610
+ return [3 /*break*/, 26];
17611
+ case 9:
17612
+ if (!settings_1.key) return [3 /*break*/, 10];
17384
17613
  _b = settings_1.key;
17385
- return [3 /*break*/, 9];
17386
- case 7: return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.CesiumIon, null)];
17387
- case 8:
17614
+ return [3 /*break*/, 12];
17615
+ case 10: return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.CesiumIon, null)];
17616
+ case 11:
17388
17617
  _b = _d.sent();
17389
- _d.label = 9;
17390
- case 9:
17618
+ _d.label = 12;
17619
+ case 12:
17391
17620
  cesiumIonKey = _b;
17392
- provider = new Cesium.IonImageryProvider({
17621
+ if (!Cesium.IonImageryProvider.hasOwnProperty("fromAssetId")) return [3 /*break*/, 14];
17622
+ return [4 /*yield*/, CESIUM.IonImageryProvider.fromAssetId(Number(settings_1.externalId), {
17623
+ accessToken: cesiumIonKey
17624
+ })];
17625
+ case 13:
17626
+ provider = _d.sent();
17627
+ return [3 /*break*/, 15];
17628
+ case 14:
17629
+ provider = new CESIUM.IonImageryProvider({
17393
17630
  assetId: Number(settings_1.externalId),
17394
17631
  accessToken: cesiumIonKey
17395
17632
  });
17396
- return [3 /*break*/, 17];
17397
- case 10:
17398
- if (!settings_1.key) return [3 /*break*/, 11];
17633
+ _d.label = 15;
17634
+ case 15: return [3 /*break*/, 26];
17635
+ case 16:
17636
+ if (!settings_1.key) return [3 /*break*/, 17];
17399
17637
  _c = settings_1.key;
17400
- return [3 /*break*/, 13];
17401
- case 11: return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.Mapbox, null)];
17402
- case 12:
17638
+ return [3 /*break*/, 19];
17639
+ case 17: return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.Mapbox, null)];
17640
+ case 18:
17403
17641
  _c = _d.sent();
17404
- _d.label = 13;
17405
- case 13:
17642
+ _d.label = 19;
17643
+ case 19:
17406
17644
  mapboxKey = _c;
17407
17645
  provider = new Cesium.UrlTemplateImageryProvider({
17408
17646
  url: "https://api.mapbox.com/styles/v1/"
@@ -17410,8 +17648,8 @@
17410
17648
  "/tiles/256/{z}/{x}/{y}?access_token="
17411
17649
  + mapboxKey
17412
17650
  });
17413
- return [3 /*break*/, 17];
17414
- case 14:
17651
+ return [3 /*break*/, 26];
17652
+ case 20:
17415
17653
  provider = new Cesium.OpenStreetMapImageryProvider({
17416
17654
  url: settings_1.url,
17417
17655
  fileExtension: prepareFileExt(settings_1.fileExtension),
@@ -17420,9 +17658,21 @@
17420
17658
  // maximumLevel: hasLevels ? maxLevel : undefined,
17421
17659
  // minimumLevel: hasLevels ? minLevel : undefined,
17422
17660
  });
17423
- return [3 /*break*/, 17];
17424
- case 15:
17425
- provider = new Cesium.TileMapServiceImageryProvider({
17661
+ return [3 /*break*/, 26];
17662
+ case 21:
17663
+ if (!Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 23];
17664
+ return [4 /*yield*/, CESIUM.TileMapServiceImageryProvider.fromUrl(settings_1.url, {
17665
+ fileExtension: prepareFileExt(settings_1.fileExtension),
17666
+ // Unused until tested properly. In the past these settings caused large lag.
17667
+ // rectangle: boundaries,
17668
+ // maximumLevel: hasLevels ? maxLevel : undefined,
17669
+ // minimumLevel: hasLevels ? minLevel : undefined,
17670
+ })];
17671
+ case 22:
17672
+ provider = _d.sent();
17673
+ return [3 /*break*/, 24];
17674
+ case 23:
17675
+ provider = new CESIUM.TileMapServiceImageryProvider({
17426
17676
  url: settings_1.url,
17427
17677
  fileExtension: prepareFileExt(settings_1.fileExtension),
17428
17678
  // Unused until tested properly. In the past these settings caused large lag.
@@ -17430,14 +17680,15 @@
17430
17680
  // maximumLevel: hasLevels ? maxLevel : undefined,
17431
17681
  // minimumLevel: hasLevels ? minLevel : undefined,
17432
17682
  });
17433
- return [3 /*break*/, 17];
17434
- case 16:
17683
+ _d.label = 24;
17684
+ case 24: return [3 /*break*/, 26];
17685
+ case 25:
17435
17686
  provider = new Cesium.UrlTemplateImageryProvider({
17436
17687
  url: settings_1.url
17437
17688
  });
17438
- return [3 /*break*/, 17];
17439
- case 17: return [3 /*break*/, 19];
17440
- case 18:
17689
+ return [3 /*break*/, 26];
17690
+ case 26: return [3 /*break*/, 28];
17691
+ case 27:
17441
17692
  if (tileset.type === bruceModels.Tileset.EType.EntitiesMap) {
17442
17693
  provider = new Cesium.UrlTemplateImageryProvider({
17443
17694
  url: bruceModels.Tileset.GetPublicFileUrl({
@@ -17455,8 +17706,8 @@
17455
17706
  // maximumLevel: hasLevels ? maxLevel : undefined,
17456
17707
  });
17457
17708
  }
17458
- _d.label = 19;
17459
- case 19:
17709
+ _d.label = 28;
17710
+ case 28:
17460
17711
  if (provider) {
17461
17712
  layer = viewer.imageryLayers.addImageryProvider(provider);
17462
17713
  layer._bMeta = meta;
@@ -17577,7 +17828,7 @@
17577
17828
  function Render(params) {
17578
17829
  var _a;
17579
17830
  return __awaiter(this, void 0, void 0, function () {
17580
- var bId, curProvider, provider, id;
17831
+ var bId, curProvider, CESIUM, provider, id;
17581
17832
  return __generator(this, function (_b) {
17582
17833
  switch (_b.label) {
17583
17834
  case 0:
@@ -17586,23 +17837,32 @@
17586
17837
  if (curProvider._bId && curProvider._bId === bId) {
17587
17838
  return [2 /*return*/];
17588
17839
  }
17840
+ CESIUM = Cesium;
17589
17841
  provider = null;
17590
17842
  if (!isLegacyTerrainDefault(params.data.Name)) return [3 /*break*/, 2];
17591
17843
  id = legacyTerrIdToDefaultId(params.data.Name);
17592
17844
  return [4 /*yield*/, renderDefaultTerrTile(id)];
17593
17845
  case 1:
17594
17846
  provider = (_b.sent());
17595
- return [3 /*break*/, 3];
17847
+ return [3 /*break*/, 5];
17596
17848
  case 2:
17597
- if (params.data.SourceUrl) {
17598
- provider = new Cesium.CesiumTerrainProvider({
17599
- url: params.data.SourceUrl,
17849
+ if (!params.data.SourceUrl) return [3 /*break*/, 5];
17850
+ if (!Cesium.CesiumTerrainProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 4];
17851
+ return [4 /*yield*/, CESIUM.CesiumTerrainProvider.fromUrl(params.data.SourceUrl, {
17600
17852
  requestWaterMask: params.data.RequestWaterMask,
17601
17853
  requestVertexNormals: true
17602
- });
17603
- }
17604
- _b.label = 3;
17854
+ })];
17605
17855
  case 3:
17856
+ provider = (_b.sent());
17857
+ return [3 /*break*/, 5];
17858
+ case 4:
17859
+ provider = new CESIUM.CesiumTerrainProvider({
17860
+ url: params.data.SourceUrl,
17861
+ requestWaterMask: params.data.RequestWaterMask,
17862
+ requestVertexNormals: true
17863
+ });
17864
+ _b.label = 5;
17865
+ case 5:
17606
17866
  if (provider) {
17607
17867
  provider._bId = bId;
17608
17868
  provider._bName = (_a = params.data) === null || _a === void 0 ? void 0 : _a.Name;
@@ -17703,7 +17963,7 @@
17703
17963
  function Render(params) {
17704
17964
  var _a;
17705
17965
  return __awaiter(this, void 0, void 0, function () {
17706
- var iteration, enabledMeta, provider_1, leave, defaultTerr, provider, api, tileset, url, vertexes, settings;
17966
+ var iteration, CESIUM, enabledMeta, provider_1, leave, defaultTerr, provider, api, tileset, url, vertexes, settings;
17707
17967
  return __generator(this, function (_b) {
17708
17968
  switch (_b.label) {
17709
17969
  case 0:
@@ -17711,6 +17971,7 @@
17711
17971
  params.apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
17712
17972
  }
17713
17973
  iteration = newIteration(params.viewer, "terrain");
17974
+ CESIUM = Cesium;
17714
17975
  enabledMeta = (_a = params.viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a._bMeta;
17715
17976
  if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.tile.tilesetId &&
17716
17977
  (enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.tile.accountId) {
@@ -17740,7 +18001,7 @@
17740
18001
  return [4 /*yield*/, renderDefaultTerrTile(defaultTerr.id)];
17741
18002
  case 1:
17742
18003
  provider = (_b.sent());
17743
- return [3 /*break*/, 5];
18004
+ return [3 /*break*/, 7];
17744
18005
  case 2:
17745
18006
  api = params.apiGetter.getApi(params.tile.accountId);
17746
18007
  // Ensure regional url is loaded.
@@ -17783,14 +18044,21 @@
17783
18044
  else {
17784
18045
  console.error("Invalid tileset type.", tileset);
17785
18046
  }
17786
- if (url) {
17787
- provider = new Cesium.CesiumTerrainProvider({
17788
- url: url,
18047
+ if (!url) return [3 /*break*/, 7];
18048
+ if (!CESIUM.CesiumTerrainProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 6];
18049
+ return [4 /*yield*/, CESIUM.CesiumTerrainProvider.fromUrl(url, {
17789
18050
  requestVertexNormals: vertexes
17790
- });
17791
- }
17792
- _b.label = 5;
18051
+ })];
17793
18052
  case 5:
18053
+ provider = (_b.sent());
18054
+ return [3 /*break*/, 7];
18055
+ case 6:
18056
+ provider = new CESIUM.CesiumTerrainProvider({
18057
+ url: url,
18058
+ requestVertexNormals: vertexes
18059
+ });
18060
+ _b.label = 7;
18061
+ case 7:
17794
18062
  if (provider) {
17795
18063
  provider._bMeta = {
17796
18064
  accountId: params.tile.accountId,
@@ -18890,7 +19158,7 @@
18890
19158
  CesiumViewMonitor.Monitor = Monitor;
18891
19159
  })(exports.CesiumViewMonitor || (exports.CesiumViewMonitor = {}));
18892
19160
 
18893
- var VERSION$1 = "3.1.8";
19161
+ var VERSION$1 = "3.2.0";
18894
19162
 
18895
19163
  exports.VERSION = VERSION$1;
18896
19164
  exports.CesiumParabola = CesiumParabola;