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
@@ -100,7 +100,7 @@ function renderDefaultTerrTile(id) {
100
100
  case bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain: return [3 /*break*/, 5];
101
101
  case bruce_models_1.ProjectViewTile.EDefaultTerrain.LINZ: return [3 /*break*/, 6];
102
102
  }
103
- return [3 /*break*/, 7];
103
+ return [3 /*break*/, 10];
104
104
  case 1:
105
105
  if (!CESIUM.createWorldTerrainAsync) return [3 /*break*/, 3];
106
106
  return [4 /*yield*/, CESIUM.createWorldTerrainAsync({
@@ -111,24 +111,37 @@ function renderDefaultTerrTile(id) {
111
111
  provider = _b.sent();
112
112
  return [3 /*break*/, 4];
113
113
  case 3:
114
- provider = Cesium.createWorldTerrain({
115
- requestVertexNormals: true,
116
- requestWaterMask: false
117
- });
114
+ if (CESIUM.createWorldTerrain) {
115
+ provider = CESIUM.createWorldTerrain({
116
+ requestVertexNormals: true,
117
+ requestWaterMask: false
118
+ });
119
+ }
118
120
  _b.label = 4;
119
- case 4: return [3 /*break*/, 7];
121
+ case 4: return [3 /*break*/, 10];
120
122
  case 5:
121
123
  provider = new Cesium.EllipsoidTerrainProvider();
122
- return [3 /*break*/, 7];
124
+ return [3 /*break*/, 10];
123
125
  case 6:
124
- provider = new Cesium.CesiumTerrainProvider({
126
+ if (!CESIUM.CesiumTerrainProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 8];
127
+ return [4 /*yield*/, CESIUM.CesiumTerrainProvider.fromUrl("https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem", {
128
+ requestVertexNormals: true,
129
+ requestWaterMask: false,
130
+ requestMetadata: false
131
+ })];
132
+ case 7:
133
+ provider = _b.sent();
134
+ return [3 /*break*/, 9];
135
+ case 8:
136
+ provider = new CESIUM.CesiumTerrainProvider({
125
137
  url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
126
138
  requestVertexNormals: true,
127
139
  requestWaterMask: false,
128
140
  requestMetadata: false
129
141
  });
130
- return [3 /*break*/, 7];
131
- case 7: return [2 /*return*/, provider];
142
+ _b.label = 9;
143
+ case 9: return [3 /*break*/, 10];
144
+ case 10: return [2 /*return*/, provider];
132
145
  }
133
146
  });
134
147
  });
@@ -250,132 +263,202 @@ function findKey(apiGetter, keyId, defaultKey) {
250
263
  */
251
264
  function renderDefaultMapTile(apiGetter, id) {
252
265
  return __awaiter(this, void 0, void 0, function () {
253
- var provider, _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
254
- var _p, _q, _r, _s, _t, _u;
255
- return __generator(this, function (_v) {
256
- switch (_v.label) {
266
+ 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;
267
+ var _y, _z, _0, _1, _2, _3, _4, _5, _6;
268
+ return __generator(this, function (_7) {
269
+ switch (_7.label) {
257
270
  case 0:
271
+ CESIUM = Cesium;
258
272
  _a = id;
259
273
  switch (_a) {
260
274
  case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerial: return [3 /*break*/, 1];
261
- case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels: return [3 /*break*/, 3];
262
- case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads: return [3 /*break*/, 5];
263
- case bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite: return [3 /*break*/, 7];
264
- case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreets: return [3 /*break*/, 9];
265
- case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic: return [3 /*break*/, 11];
266
- case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldImagery: return [3 /*break*/, 13];
267
- case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap: return [3 /*break*/, 14];
268
- case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriNationalGeographic: return [3 /*break*/, 15];
269
- case bruce_models_1.ProjectViewTile.EDefaultImagery.OpenStreetMap: return [3 /*break*/, 16];
270
- case bruce_models_1.ProjectViewTile.EDefaultImagery.LINZ: return [3 /*break*/, 17];
271
- case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenWaterColor: return [3 /*break*/, 18];
272
- case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenToner: return [3 /*break*/, 19];
273
- case bruce_models_1.ProjectViewTile.EDefaultImagery.Grid: return [3 /*break*/, 20];
275
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels: return [3 /*break*/, 7];
276
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.BingMapsRoads: return [3 /*break*/, 13];
277
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite: return [3 /*break*/, 19];
278
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreets: return [3 /*break*/, 21];
279
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic: return [3 /*break*/, 23];
280
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldImagery: return [3 /*break*/, 25];
281
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap: return [3 /*break*/, 29];
282
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.EsriNationalGeographic: return [3 /*break*/, 33];
283
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.OpenStreetMap: return [3 /*break*/, 37];
284
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.LINZ: return [3 /*break*/, 38];
285
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenWaterColor: return [3 /*break*/, 39];
286
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.StamenToner: return [3 /*break*/, 40];
287
+ case bruce_models_1.ProjectViewTile.EDefaultImagery.Grid: return [3 /*break*/, 41];
274
288
  }
275
- return [3 /*break*/, 21];
289
+ return [3 /*break*/, 42];
276
290
  case 1:
277
- _c = (_b = Cesium.BingMapsImageryProvider).bind;
278
- _p = {
279
- url: "https://dev.virtualearth.net",
291
+ if (!Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 4];
292
+ _c = (_b = CESIUM.BingMapsImageryProvider).fromUrl;
293
+ _d = ["https://dev.virtualearth.net"];
294
+ _y = {
280
295
  mapStyle: Cesium.BingMapsStyle.AERIAL
281
296
  };
282
297
  return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
283
- case 2:
284
- provider = new (_c.apply(_b, [void 0, (_p.key = _v.sent(),
285
- _p)]))();
286
- return [3 /*break*/, 21];
298
+ case 2: return [4 /*yield*/, _c.apply(_b, _d.concat([(_y.key = _7.sent(),
299
+ _y)]))];
287
300
  case 3:
288
- _e = (_d = Cesium.BingMapsImageryProvider).bind;
289
- _q = {
301
+ provider = _7.sent();
302
+ return [3 /*break*/, 6];
303
+ case 4:
304
+ _f = (_e = CESIUM.BingMapsImageryProvider).bind;
305
+ _z = {
290
306
  url: "https://dev.virtualearth.net",
291
- mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS
307
+ mapStyle: Cesium.BingMapsStyle.AERIAL
292
308
  };
293
309
  return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
294
- case 4:
295
- provider = new (_e.apply(_d, [void 0, (_q.key = _v.sent(),
296
- _q)]))();
297
- return [3 /*break*/, 21];
298
310
  case 5:
299
- _g = (_f = Cesium.BingMapsImageryProvider).bind;
300
- _r = {
311
+ provider = new (_f.apply(_e, [void 0, (_z.key = _7.sent(),
312
+ _z)]))();
313
+ _7.label = 6;
314
+ case 6: return [3 /*break*/, 42];
315
+ case 7:
316
+ if (!Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 10];
317
+ _h = (_g = CESIUM.BingMapsImageryProvider).fromUrl;
318
+ _j = ["https://dev.virtualearth.net"];
319
+ _0 = {
320
+ mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS
321
+ };
322
+ return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
323
+ case 8: return [4 /*yield*/, _h.apply(_g, _j.concat([(_0.key = _7.sent(),
324
+ _0)]))];
325
+ case 9:
326
+ provider = _7.sent();
327
+ return [3 /*break*/, 12];
328
+ case 10:
329
+ _l = (_k = CESIUM.BingMapsImageryProvider).bind;
330
+ _1 = {
301
331
  url: "https://dev.virtualearth.net",
332
+ mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS
333
+ };
334
+ return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
335
+ case 11:
336
+ provider = new (_l.apply(_k, [void 0, (_1.key = _7.sent(),
337
+ _1)]))();
338
+ _7.label = 12;
339
+ case 12: return [3 /*break*/, 42];
340
+ case 13:
341
+ if (!Cesium.BingMapsImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 16];
342
+ _o = (_m = CESIUM.BingMapsImageryProvider).fromUrl;
343
+ _p = ["https://dev.virtualearth.net"];
344
+ _2 = {
302
345
  mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND
303
346
  };
304
347
  return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
305
- case 6:
306
- provider = new (_g.apply(_f, [void 0, (_r.key = _v.sent(),
307
- _r)]))();
308
- return [3 /*break*/, 21];
309
- case 7:
310
- _j = (_h = Cesium.MapboxImageryProvider).bind;
311
- _s = {
348
+ case 14: return [4 /*yield*/, _o.apply(_m, _p.concat([(_2.key = _7.sent(),
349
+ _2)]))];
350
+ case 15:
351
+ provider = _7.sent();
352
+ return [3 /*break*/, 18];
353
+ case 16:
354
+ _r = (_q = CESIUM.BingMapsImageryProvider).bind;
355
+ _3 = {
356
+ url: "https://dev.virtualearth.net",
357
+ mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND
358
+ };
359
+ return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)];
360
+ case 17:
361
+ provider = new (_r.apply(_q, [void 0, (_3.key = _7.sent(),
362
+ _3)]))();
363
+ _7.label = 18;
364
+ case 18: return [3 /*break*/, 42];
365
+ case 19:
366
+ _t = (_s = Cesium.MapboxImageryProvider).bind;
367
+ _4 = {
312
368
  mapId: "mapbox.satellite"
313
369
  };
314
370
  return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.Mapbox, DEFAULT_MAPBOX_KEY)];
315
- case 8:
316
- provider = new (_j.apply(_h, [void 0, (_s.accessToken = _v.sent(),
317
- _s)]))();
318
- return [3 /*break*/, 21];
319
- case 9:
320
- _l = (_k = Cesium.MapboxStyleImageryProvider).bind;
321
- _t = {
371
+ case 20:
372
+ provider = new (_t.apply(_s, [void 0, (_4.accessToken = _7.sent(),
373
+ _4)]))();
374
+ return [3 /*break*/, 42];
375
+ case 21:
376
+ _v = (_u = Cesium.MapboxStyleImageryProvider).bind;
377
+ _5 = {
322
378
  styleId: "satellite-streets-v11"
323
379
  };
324
380
  return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.Mapbox, DEFAULT_MAPBOX_KEY)];
325
- case 10:
326
- provider = new (_l.apply(_k, [void 0, (_t.accessToken = _v.sent(),
327
- _t)]))();
328
- return [3 /*break*/, 21];
329
- case 11:
330
- _o = (_m = Cesium.MapboxStyleImageryProvider).bind;
331
- _u = {
381
+ case 22:
382
+ provider = new (_v.apply(_u, [void 0, (_5.accessToken = _7.sent(),
383
+ _5)]))();
384
+ return [3 /*break*/, 42];
385
+ case 23:
386
+ _x = (_w = Cesium.MapboxStyleImageryProvider).bind;
387
+ _6 = {
332
388
  styleId: "streets-v11"
333
389
  };
334
390
  return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.Mapbox, DEFAULT_MAPBOX_KEY)];
335
- case 12:
336
- provider = new (_o.apply(_m, [void 0, (_u.accessToken = _v.sent(),
337
- _u)]))();
338
- return [3 /*break*/, 21];
339
- case 13:
340
- provider = new Cesium.ArcGisMapServerImageryProvider({
391
+ case 24:
392
+ provider = new (_x.apply(_w, [void 0, (_6.accessToken = _7.sent(),
393
+ _6)]))();
394
+ return [3 /*break*/, 42];
395
+ case 25:
396
+ if (!Cesium.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 27];
397
+ return [4 /*yield*/, CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", {
398
+ enablePickFeatures: false
399
+ })];
400
+ case 26:
401
+ provider = _7.sent();
402
+ return [3 /*break*/, 28];
403
+ case 27:
404
+ provider = new CESIUM.ArcGisMapServerImageryProvider({
341
405
  url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
342
406
  enablePickFeatures: false
343
407
  });
344
- return [3 /*break*/, 21];
345
- case 14:
346
- provider = new Cesium.ArcGisMapServerImageryProvider({
408
+ _7.label = 28;
409
+ case 28: return [3 /*break*/, 42];
410
+ case 29:
411
+ if (!Cesium.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 31];
412
+ return [4 /*yield*/, CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", {
413
+ enablePickFeatures: false
414
+ })];
415
+ case 30:
416
+ provider = _7.sent();
417
+ return [3 /*break*/, 32];
418
+ case 31:
419
+ provider = new CESIUM.ArcGisMapServerImageryProvider({
347
420
  url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
348
421
  enablePickFeatures: false
349
422
  });
350
- return [3 /*break*/, 21];
351
- case 15:
352
- provider = new Cesium.ArcGisMapServerImageryProvider({
423
+ _7.label = 32;
424
+ case 32: return [3 /*break*/, 42];
425
+ case 33:
426
+ if (!CESIUM.ArcGisMapServerImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 35];
427
+ return [4 /*yield*/, CESIUM.ArcGisMapServerImageryProvider.fromUrl("https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/", {
428
+ enablePickFeatures: false
429
+ })];
430
+ case 34:
431
+ provider = _7.sent();
432
+ return [3 /*break*/, 36];
433
+ case 35:
434
+ provider = new CESIUM.ArcGisMapServerImageryProvider({
353
435
  url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
354
436
  enablePickFeatures: false
355
437
  });
356
- return [3 /*break*/, 21];
357
- case 16:
438
+ _7.label = 36;
439
+ case 36: return [3 /*break*/, 42];
440
+ case 37:
358
441
  provider = new Cesium.OpenStreetMapImageryProvider({
359
442
  url: "https://a.tile.openstreetmap.org/"
360
443
  });
361
- return [3 /*break*/, 21];
362
- case 17:
444
+ return [3 /*break*/, 42];
445
+ case 38:
363
446
  provider = new Cesium.OpenStreetMapImageryProvider({
364
447
  url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-img",
365
448
  fileExtension: "jpg"
366
449
  });
367
- return [3 /*break*/, 21];
368
- case 18:
450
+ return [3 /*break*/, 42];
451
+ case 39:
369
452
  provider = new Cesium.OpenStreetMapImageryProvider({
370
453
  url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
371
454
  });
372
- return [3 /*break*/, 21];
373
- case 19:
455
+ return [3 /*break*/, 42];
456
+ case 40:
374
457
  provider = new Cesium.OpenStreetMapImageryProvider({
375
458
  url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
376
459
  });
377
- return [3 /*break*/, 21];
378
- case 20:
460
+ return [3 /*break*/, 42];
461
+ case 41:
379
462
  provider = new Cesium.GridImageryProvider({
380
463
  tilingScheme: new Cesium.GeographicTilingScheme(),
381
464
  cells: 0,
@@ -387,8 +470,8 @@ function renderDefaultMapTile(apiGetter, id) {
387
470
  tileHeight: 256,
388
471
  canvasSize: 256
389
472
  });
390
- return [3 /*break*/, 21];
391
- case 21: return [2 /*return*/, provider];
473
+ return [3 /*break*/, 42];
474
+ case 42: return [2 /*return*/, provider];
392
475
  }
393
476
  });
394
477
  });
@@ -485,19 +568,20 @@ var TileRenderEngine;
485
568
  (function (LegacyNavigator) {
486
569
  function Render(params) {
487
570
  return __awaiter(this, void 0, void 0, function () {
488
- var enabled, tile, bId, layer, defaultId, provider, provider, min, max, _a, mapboxKey, _b;
571
+ var CESIUM, enabled, tile, bId, layer, defaultId, provider, provider, min, max, _a, mapboxKey, _b;
489
572
  return __generator(this, function (_c) {
490
573
  switch (_c.label) {
491
574
  case 0:
492
575
  if (!params.apiGetter) {
493
576
  params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
494
577
  }
578
+ CESIUM = Cesium;
495
579
  enabled = gatherEnabledImageries(params.viewer);
496
580
  tile = params.data;
497
581
  bId = createLegacyImageryId(tile);
498
582
  layer = enabled.find(function (x) { return x._bId == bId; });
499
583
  if (!layer) return [3 /*break*/, 1];
500
- return [3 /*break*/, 13];
584
+ return [3 /*break*/, 16];
501
585
  case 1:
502
586
  if (!isLegacyImageryDefault(tile.Name)) return [3 /*break*/, 3];
503
587
  defaultId = legacyMapIdToDefaultId(tile.Name);
@@ -507,9 +591,9 @@ var TileRenderEngine;
507
591
  if (provider) {
508
592
  layer = createImageryLayer(provider);
509
593
  }
510
- return [3 /*break*/, 13];
594
+ return [3 /*break*/, 16];
511
595
  case 3:
512
- if (!tile.SourceUrl) return [3 /*break*/, 13];
596
+ if (!tile.SourceUrl) return [3 /*break*/, 16];
513
597
  provider = null;
514
598
  min = tile.Minimum;
515
599
  max = tile.Maximum;
@@ -524,17 +608,17 @@ var TileRenderEngine;
524
608
  case "BruceImagery": return [3 /*break*/, 4];
525
609
  case "ArcGisImagery": return [3 /*break*/, 5];
526
610
  case "TileMapImagery": return [3 /*break*/, 6];
527
- case "OpenStreetMapImagery": return [3 /*break*/, 7];
528
- case "MapBoxImagery": return [3 /*break*/, 8];
611
+ case "OpenStreetMapImagery": return [3 /*break*/, 10];
612
+ case "MapBoxImagery": return [3 /*break*/, 11];
529
613
  }
530
- return [3 /*break*/, 12];
614
+ return [3 /*break*/, 15];
531
615
  case 4:
532
616
  provider = new Cesium.UrlTemplateImageryProvider({
533
617
  url: tile.SourceUrl,
534
618
  tileHeight: 256,
535
619
  tileWidth: 256
536
620
  });
537
- return [3 /*break*/, 12];
621
+ return [3 /*break*/, 15];
538
622
  case 5:
539
623
  provider = new Cesium.OpenStreetMapImageryProvider({
540
624
  url: tile.SourceUrl,
@@ -542,32 +626,43 @@ var TileRenderEngine;
542
626
  minimumLevel: min,
543
627
  maximumLevel: max
544
628
  });
545
- return [3 /*break*/, 12];
629
+ return [3 /*break*/, 15];
546
630
  case 6:
547
- provider = new Cesium.TileMapServiceImageryProvider({
631
+ if (!Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 8];
632
+ return [4 /*yield*/, CESIUM.TileMapServiceImageryProvider.fromUrl(tile.SourceUrl, {
633
+ minimumLevel: min,
634
+ maximumLevel: max,
635
+ fileExtension: prepareFileExt(tile.FileExtension)
636
+ })];
637
+ case 7:
638
+ provider = _c.sent();
639
+ return [3 /*break*/, 9];
640
+ case 8:
641
+ provider = new CESIUM.TileMapServiceImageryProvider({
548
642
  url: tile.SourceUrl,
549
643
  fileExtension: prepareFileExt(tile.FileExtension),
550
644
  minimumLevel: min,
551
645
  maximumLevel: max
552
646
  });
553
- return [3 /*break*/, 12];
554
- case 7:
647
+ _c.label = 9;
648
+ case 9: return [3 /*break*/, 15];
649
+ case 10:
555
650
  provider = new Cesium.OpenStreetMapImageryProvider({
556
651
  url: tile.SourceUrl,
557
652
  fileExtension: prepareFileExt(tile.FileExtension),
558
653
  minimumLevel: min,
559
654
  maximumLevel: max
560
655
  });
561
- return [3 /*break*/, 12];
562
- case 8:
563
- if (!tile.ProgramKey) return [3 /*break*/, 9];
656
+ return [3 /*break*/, 15];
657
+ case 11:
658
+ if (!tile.ProgramKey) return [3 /*break*/, 12];
564
659
  _b = tile.ProgramKey;
565
- return [3 /*break*/, 11];
566
- case 9: return [4 /*yield*/, findKey(params.apiGetter, bruce_models_1.ProgramKey.EProgramId.Mapbox, null)];
567
- case 10:
660
+ return [3 /*break*/, 14];
661
+ case 12: return [4 /*yield*/, findKey(params.apiGetter, bruce_models_1.ProgramKey.EProgramId.Mapbox, null)];
662
+ case 13:
568
663
  _b = _c.sent();
569
- _c.label = 11;
570
- case 11:
664
+ _c.label = 14;
665
+ case 14:
571
666
  mapboxKey = _b;
572
667
  provider = new Cesium.UrlTemplateImageryProvider({
573
668
  url: "https://api.mapbox.com/styles/v1/"
@@ -575,13 +670,13 @@ var TileRenderEngine;
575
670
  "/tiles/256/{z}/{x}/{y}?access_token="
576
671
  + mapboxKey
577
672
  });
578
- return [3 /*break*/, 12];
579
- case 12:
673
+ return [3 /*break*/, 15];
674
+ case 15:
580
675
  if (provider) {
581
676
  layer = createImageryLayer(provider);
582
677
  }
583
- _c.label = 13;
584
- case 13:
678
+ _c.label = 16;
679
+ case 16:
585
680
  if (layer) {
586
681
  layer._bId = bId;
587
682
  layer._bName = tile.Name;
@@ -748,7 +843,7 @@ var TileRenderEngine;
748
843
  (function (Navigator) {
749
844
  function GetOrCreateLayer(params) {
750
845
  return __awaiter(this, void 0, void 0, function () {
751
- 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;
846
+ 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;
752
847
  return __generator(this, function (_d) {
753
848
  switch (_d.label) {
754
849
  case 0:
@@ -756,6 +851,7 @@ var TileRenderEngine;
756
851
  if (!apiGetter) {
757
852
  apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
758
853
  }
854
+ CESIUM = Cesium;
759
855
  enabled = gatherEnabledImageries(viewer);
760
856
  for (i = 0; i < enabled.length; i++) {
761
857
  layer = enabled[i];
@@ -770,7 +866,7 @@ var TileRenderEngine;
770
866
  return [4 /*yield*/, renderDefaultMapTile(apiGetter, defaultImg.id)];
771
867
  case 1:
772
868
  provider = _d.sent();
773
- return [3 /*break*/, 19];
869
+ return [3 /*break*/, 28];
774
870
  case 2:
775
871
  api = apiGetter.getApi(meta.accountId);
776
872
  // Ensure regional url is loaded.
@@ -800,8 +896,27 @@ var TileRenderEngine;
800
896
  minLevel = settings === null || settings === void 0 ? void 0 : settings.levelMin;
801
897
  maxLevel = settings === null || settings === void 0 ? void 0 : settings.levelMax;
802
898
  hasLevels = !isNaN(minLevel) && !isNaN(maxLevel);
803
- if (!(tileset.type === bruce_models_1.Tileset.EType.GeoMap)) return [3 /*break*/, 5];
804
- provider = new Cesium.TileMapServiceImageryProvider({
899
+ if (!(tileset.type === bruce_models_1.Tileset.EType.GeoMap)) return [3 /*break*/, 8];
900
+ if (!Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 6];
901
+ url = bruce_models_1.Tileset.GetPublicFileUrl({
902
+ api: api,
903
+ tilesetId: meta.tilesetId,
904
+ file: "",
905
+ viaCdn: true,
906
+ viaCdnCacheToken: tileset.generateVersion
907
+ });
908
+ return [4 /*yield*/, CESIUM.TileMapServiceImageryProvider.fromUrl(url, {
909
+ fileExtension: "png",
910
+ // Tested to not cause increased lag.
911
+ rectangle: boundaries,
912
+ maximumLevel: hasLevels ? maxLevel : undefined,
913
+ minimumLevel: hasLevels ? minLevel : undefined,
914
+ })];
915
+ case 5:
916
+ provider = _d.sent();
917
+ return [3 /*break*/, 7];
918
+ case 6:
919
+ provider = new CESIUM.TileMapServiceImageryProvider({
805
920
  url: bruce_models_1.Tileset.GetPublicFileUrl({
806
921
  api: api,
807
922
  tilesetId: meta.tilesetId,
@@ -815,43 +930,53 @@ var TileRenderEngine;
815
930
  maximumLevel: hasLevels ? maxLevel : undefined,
816
931
  minimumLevel: hasLevels ? minLevel : undefined,
817
932
  });
818
- return [3 /*break*/, 19];
819
- case 5:
820
- if (!(tileset.type === bruce_models_1.Tileset.EType.ExternalGeoMap)) return [3 /*break*/, 18];
933
+ _d.label = 7;
934
+ case 7: return [3 /*break*/, 28];
935
+ case 8:
936
+ if (!(tileset.type === bruce_models_1.Tileset.EType.ExternalGeoMap)) return [3 /*break*/, 27];
821
937
  settings_1 = tileset.settings;
822
938
  _a = settings_1.mapType;
823
939
  switch (_a) {
824
- case bruce_models_1.Tileset.Settings.EExternalMapType.CesiumIon: return [3 /*break*/, 6];
825
- case bruce_models_1.Tileset.Settings.EExternalMapType.MapBoxImagery: return [3 /*break*/, 10];
826
- case bruce_models_1.Tileset.Settings.EExternalMapType.OpenStreetMapImagery: return [3 /*break*/, 14];
827
- case bruce_models_1.Tileset.Settings.EExternalMapType.TileMapImagery: return [3 /*break*/, 15];
828
- case bruce_models_1.Tileset.Settings.EExternalMapType.CustomTemplate: return [3 /*break*/, 16];
940
+ case bruce_models_1.Tileset.Settings.EExternalMapType.CesiumIon: return [3 /*break*/, 9];
941
+ case bruce_models_1.Tileset.Settings.EExternalMapType.MapBoxImagery: return [3 /*break*/, 16];
942
+ case bruce_models_1.Tileset.Settings.EExternalMapType.OpenStreetMapImagery: return [3 /*break*/, 20];
943
+ case bruce_models_1.Tileset.Settings.EExternalMapType.TileMapImagery: return [3 /*break*/, 21];
944
+ case bruce_models_1.Tileset.Settings.EExternalMapType.CustomTemplate: return [3 /*break*/, 25];
829
945
  }
830
- return [3 /*break*/, 17];
831
- case 6:
832
- if (!settings_1.key) return [3 /*break*/, 7];
946
+ return [3 /*break*/, 26];
947
+ case 9:
948
+ if (!settings_1.key) return [3 /*break*/, 10];
833
949
  _b = settings_1.key;
834
- return [3 /*break*/, 9];
835
- case 7: return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.CesiumIon, null)];
836
- case 8:
950
+ return [3 /*break*/, 12];
951
+ case 10: return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.CesiumIon, null)];
952
+ case 11:
837
953
  _b = _d.sent();
838
- _d.label = 9;
839
- case 9:
954
+ _d.label = 12;
955
+ case 12:
840
956
  cesiumIonKey = _b;
841
- provider = new Cesium.IonImageryProvider({
957
+ if (!Cesium.IonImageryProvider.hasOwnProperty("fromAssetId")) return [3 /*break*/, 14];
958
+ return [4 /*yield*/, CESIUM.IonImageryProvider.fromAssetId(Number(settings_1.externalId), {
959
+ accessToken: cesiumIonKey
960
+ })];
961
+ case 13:
962
+ provider = _d.sent();
963
+ return [3 /*break*/, 15];
964
+ case 14:
965
+ provider = new CESIUM.IonImageryProvider({
842
966
  assetId: Number(settings_1.externalId),
843
967
  accessToken: cesiumIonKey
844
968
  });
845
- return [3 /*break*/, 17];
846
- case 10:
847
- if (!settings_1.key) return [3 /*break*/, 11];
969
+ _d.label = 15;
970
+ case 15: return [3 /*break*/, 26];
971
+ case 16:
972
+ if (!settings_1.key) return [3 /*break*/, 17];
848
973
  _c = settings_1.key;
849
- return [3 /*break*/, 13];
850
- case 11: return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.Mapbox, null)];
851
- case 12:
974
+ return [3 /*break*/, 19];
975
+ case 17: return [4 /*yield*/, findKey(apiGetter, bruce_models_1.ProgramKey.EProgramId.Mapbox, null)];
976
+ case 18:
852
977
  _c = _d.sent();
853
- _d.label = 13;
854
- case 13:
978
+ _d.label = 19;
979
+ case 19:
855
980
  mapboxKey = _c;
856
981
  provider = new Cesium.UrlTemplateImageryProvider({
857
982
  url: "https://api.mapbox.com/styles/v1/"
@@ -859,8 +984,8 @@ var TileRenderEngine;
859
984
  "/tiles/256/{z}/{x}/{y}?access_token="
860
985
  + mapboxKey
861
986
  });
862
- return [3 /*break*/, 17];
863
- case 14:
987
+ return [3 /*break*/, 26];
988
+ case 20:
864
989
  provider = new Cesium.OpenStreetMapImageryProvider({
865
990
  url: settings_1.url,
866
991
  fileExtension: prepareFileExt(settings_1.fileExtension),
@@ -869,9 +994,21 @@ var TileRenderEngine;
869
994
  // maximumLevel: hasLevels ? maxLevel : undefined,
870
995
  // minimumLevel: hasLevels ? minLevel : undefined,
871
996
  });
872
- return [3 /*break*/, 17];
873
- case 15:
874
- provider = new Cesium.TileMapServiceImageryProvider({
997
+ return [3 /*break*/, 26];
998
+ case 21:
999
+ if (!Cesium.TileMapServiceImageryProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 23];
1000
+ return [4 /*yield*/, CESIUM.TileMapServiceImageryProvider.fromUrl(settings_1.url, {
1001
+ fileExtension: prepareFileExt(settings_1.fileExtension),
1002
+ // Unused until tested properly. In the past these settings caused large lag.
1003
+ // rectangle: boundaries,
1004
+ // maximumLevel: hasLevels ? maxLevel : undefined,
1005
+ // minimumLevel: hasLevels ? minLevel : undefined,
1006
+ })];
1007
+ case 22:
1008
+ provider = _d.sent();
1009
+ return [3 /*break*/, 24];
1010
+ case 23:
1011
+ provider = new CESIUM.TileMapServiceImageryProvider({
875
1012
  url: settings_1.url,
876
1013
  fileExtension: prepareFileExt(settings_1.fileExtension),
877
1014
  // Unused until tested properly. In the past these settings caused large lag.
@@ -879,14 +1016,15 @@ var TileRenderEngine;
879
1016
  // maximumLevel: hasLevels ? maxLevel : undefined,
880
1017
  // minimumLevel: hasLevels ? minLevel : undefined,
881
1018
  });
882
- return [3 /*break*/, 17];
883
- case 16:
1019
+ _d.label = 24;
1020
+ case 24: return [3 /*break*/, 26];
1021
+ case 25:
884
1022
  provider = new Cesium.UrlTemplateImageryProvider({
885
1023
  url: settings_1.url
886
1024
  });
887
- return [3 /*break*/, 17];
888
- case 17: return [3 /*break*/, 19];
889
- case 18:
1025
+ return [3 /*break*/, 26];
1026
+ case 26: return [3 /*break*/, 28];
1027
+ case 27:
890
1028
  if (tileset.type === bruce_models_1.Tileset.EType.EntitiesMap) {
891
1029
  provider = new Cesium.UrlTemplateImageryProvider({
892
1030
  url: bruce_models_1.Tileset.GetPublicFileUrl({
@@ -904,8 +1042,8 @@ var TileRenderEngine;
904
1042
  // maximumLevel: hasLevels ? maxLevel : undefined,
905
1043
  });
906
1044
  }
907
- _d.label = 19;
908
- case 19:
1045
+ _d.label = 28;
1046
+ case 28:
909
1047
  if (provider) {
910
1048
  layer = viewer.imageryLayers.addImageryProvider(provider);
911
1049
  layer._bMeta = meta;
@@ -1026,7 +1164,7 @@ var TileRenderEngine;
1026
1164
  function Render(params) {
1027
1165
  var _a;
1028
1166
  return __awaiter(this, void 0, void 0, function () {
1029
- var bId, curProvider, provider, id;
1167
+ var bId, curProvider, CESIUM, provider, id;
1030
1168
  return __generator(this, function (_b) {
1031
1169
  switch (_b.label) {
1032
1170
  case 0:
@@ -1035,23 +1173,32 @@ var TileRenderEngine;
1035
1173
  if (curProvider._bId && curProvider._bId === bId) {
1036
1174
  return [2 /*return*/];
1037
1175
  }
1176
+ CESIUM = Cesium;
1038
1177
  provider = null;
1039
1178
  if (!isLegacyTerrainDefault(params.data.Name)) return [3 /*break*/, 2];
1040
1179
  id = legacyTerrIdToDefaultId(params.data.Name);
1041
1180
  return [4 /*yield*/, renderDefaultTerrTile(id)];
1042
1181
  case 1:
1043
1182
  provider = (_b.sent());
1044
- return [3 /*break*/, 3];
1183
+ return [3 /*break*/, 5];
1045
1184
  case 2:
1046
- if (params.data.SourceUrl) {
1047
- provider = new Cesium.CesiumTerrainProvider({
1048
- url: params.data.SourceUrl,
1185
+ if (!params.data.SourceUrl) return [3 /*break*/, 5];
1186
+ if (!Cesium.CesiumTerrainProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 4];
1187
+ return [4 /*yield*/, CESIUM.CesiumTerrainProvider.fromUrl(params.data.SourceUrl, {
1049
1188
  requestWaterMask: params.data.RequestWaterMask,
1050
1189
  requestVertexNormals: true
1051
- });
1052
- }
1053
- _b.label = 3;
1190
+ })];
1054
1191
  case 3:
1192
+ provider = (_b.sent());
1193
+ return [3 /*break*/, 5];
1194
+ case 4:
1195
+ provider = new CESIUM.CesiumTerrainProvider({
1196
+ url: params.data.SourceUrl,
1197
+ requestWaterMask: params.data.RequestWaterMask,
1198
+ requestVertexNormals: true
1199
+ });
1200
+ _b.label = 5;
1201
+ case 5:
1055
1202
  if (provider) {
1056
1203
  provider._bId = bId;
1057
1204
  provider._bName = (_a = params.data) === null || _a === void 0 ? void 0 : _a.Name;
@@ -1152,7 +1299,7 @@ var TileRenderEngine;
1152
1299
  function Render(params) {
1153
1300
  var _a;
1154
1301
  return __awaiter(this, void 0, void 0, function () {
1155
- var iteration, enabledMeta, provider_1, leave, defaultTerr, provider, api, tileset, url, vertexes, settings;
1302
+ var iteration, CESIUM, enabledMeta, provider_1, leave, defaultTerr, provider, api, tileset, url, vertexes, settings;
1156
1303
  return __generator(this, function (_b) {
1157
1304
  switch (_b.label) {
1158
1305
  case 0:
@@ -1160,6 +1307,7 @@ var TileRenderEngine;
1160
1307
  params.apiGetter = bruce_models_1.ENVIRONMENT.Api().GetBruceGetter();
1161
1308
  }
1162
1309
  iteration = newIteration(params.viewer, "terrain");
1310
+ CESIUM = Cesium;
1163
1311
  enabledMeta = (_a = params.viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a._bMeta;
1164
1312
  if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.tile.tilesetId &&
1165
1313
  (enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.tile.accountId) {
@@ -1189,7 +1337,7 @@ var TileRenderEngine;
1189
1337
  return [4 /*yield*/, renderDefaultTerrTile(defaultTerr.id)];
1190
1338
  case 1:
1191
1339
  provider = (_b.sent());
1192
- return [3 /*break*/, 5];
1340
+ return [3 /*break*/, 7];
1193
1341
  case 2:
1194
1342
  api = params.apiGetter.getApi(params.tile.accountId);
1195
1343
  // Ensure regional url is loaded.
@@ -1232,14 +1380,21 @@ var TileRenderEngine;
1232
1380
  else {
1233
1381
  console.error("Invalid tileset type.", tileset);
1234
1382
  }
1235
- if (url) {
1236
- provider = new Cesium.CesiumTerrainProvider({
1237
- url: url,
1383
+ if (!url) return [3 /*break*/, 7];
1384
+ if (!CESIUM.CesiumTerrainProvider.hasOwnProperty("fromUrl")) return [3 /*break*/, 6];
1385
+ return [4 /*yield*/, CESIUM.CesiumTerrainProvider.fromUrl(url, {
1238
1386
  requestVertexNormals: vertexes
1239
- });
1240
- }
1241
- _b.label = 5;
1387
+ })];
1242
1388
  case 5:
1389
+ provider = (_b.sent());
1390
+ return [3 /*break*/, 7];
1391
+ case 6:
1392
+ provider = new CESIUM.CesiumTerrainProvider({
1393
+ url: url,
1394
+ requestVertexNormals: vertexes
1395
+ });
1396
+ _b.label = 7;
1397
+ case 7:
1243
1398
  if (provider) {
1244
1399
  provider._bMeta = {
1245
1400
  accountId: params.tile.accountId,