bruce-cesium 0.3.5 → 0.3.7

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 (44) hide show
  1. package/dist/bruce-cesium.es5.js +1060 -579
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +1057 -576
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +30 -30
  6. package/dist/lib/rendering/entity-render-engine.js +848 -848
  7. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  8. package/dist/lib/rendering/menu-item-manager.js +252 -252
  9. package/dist/lib/rendering/render-addons/measure-addon.js +186 -186
  10. package/dist/lib/rendering/render-addons/render-addon.js +2 -2
  11. package/dist/lib/rendering/render-helper.js +296 -279
  12. package/dist/lib/rendering/render-helper.js.map +1 -1
  13. package/dist/lib/rendering/render-managers/common/shared-getters.js +31 -31
  14. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +146 -146
  15. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
  16. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +143 -143
  17. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +234 -234
  18. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  19. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +139 -139
  20. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
  21. package/dist/lib/rendering/render-managers/render-manager.js +50 -50
  22. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +236 -230
  23. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
  24. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +320 -320
  25. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -1
  26. package/dist/lib/rendering/tile-render-engine.js +822 -542
  27. package/dist/lib/rendering/tile-render-engine.js.map +1 -1
  28. package/dist/lib/rendering/tileset-render-engine.js +499 -472
  29. package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
  30. package/dist/lib/rendering/view-render-engine.js +300 -138
  31. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  32. package/dist/lib/rendering/visuals-register.js +394 -394
  33. package/dist/lib/utils/drawing-utils.js +42 -42
  34. package/dist/lib/utils/entity-utils.js +99 -99
  35. package/dist/lib/utils/measure-utils.js +34 -34
  36. package/dist/lib/utils/view-utils.js +34 -34
  37. package/dist/lib/utils/view-utils.js.map +1 -1
  38. package/dist/lib/viewer/cesium-view-monitor.js +231 -231
  39. package/dist/lib/viewer/viewer-utils.js +85 -85
  40. package/dist/types/rendering/render-helper.d.ts +1 -1
  41. package/dist/types/rendering/tile-render-engine.d.ts +60 -44
  42. package/dist/types/rendering/tileset-render-engine.d.ts +3 -1
  43. package/dist/types/utils/view-utils.d.ts +1 -1
  44. package/package.json +76 -73
@@ -923,7 +923,7 @@
923
923
  return __generator(this, function (_c) {
924
924
  switch (_c.label) {
925
925
  case 0:
926
- api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
926
+ api = params.apiGetter.getApi();
927
927
  cEntities = {};
928
928
  i = 0;
929
929
  _c.label = 1;
@@ -1034,7 +1034,7 @@
1034
1034
  return __generator(this, function (_c) {
1035
1035
  switch (_c.label) {
1036
1036
  case 0:
1037
- api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
1037
+ api = params.apiGetter.getApi();
1038
1038
  cEntities = {};
1039
1039
  i = 0;
1040
1040
  _c.label = 1;
@@ -1153,7 +1153,7 @@
1153
1153
  return __generator(this, function (_c) {
1154
1154
  switch (_c.label) {
1155
1155
  case 0:
1156
- api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
1156
+ api = params.apiGetter.getApi();
1157
1157
  cEntities = {};
1158
1158
  i = 0;
1159
1159
  _c.label = 1;
@@ -1266,7 +1266,7 @@
1266
1266
  return __generator(this, function (_e) {
1267
1267
  switch (_e.label) {
1268
1268
  case 0:
1269
- api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
1269
+ api = params.apiGetter.getApi();
1270
1270
  cEntities = {};
1271
1271
  reqBody = {
1272
1272
  "strict": false,
@@ -1408,7 +1408,7 @@
1408
1408
  if (this.disposed) {
1409
1409
  throw (new Error("This item is disposed."));
1410
1410
  }
1411
- api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
1411
+ api = this.apiGetter.getApi();
1412
1412
  this.getter = this.sharedGetters.GetOrCreateFilterGetter({
1413
1413
  api: api,
1414
1414
  attrFilter: (_a = this.item.BruceEntity.Filter) !== null && _a !== void 0 ? _a : {},
@@ -1458,7 +1458,7 @@
1458
1458
  return [2 /*return*/];
1459
1459
  }
1460
1460
  this.isRunningCheck = true;
1461
- api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
1461
+ api = this.apiGetter.getApi();
1462
1462
  _a.label = 1;
1463
1463
  case 1:
1464
1464
  _a.trys.push([1, 5, , 6]);
@@ -2094,7 +2094,7 @@
2094
2094
  if (this.disposed) {
2095
2095
  return [2 /*return*/];
2096
2096
  }
2097
- api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
2097
+ api = this.apiGetter.getApi();
2098
2098
  return [4 /*yield*/, bruceModels.Entity.GetListByIds(api, entityIds)];
2099
2099
  case 1:
2100
2100
  entities = _b.sent();
@@ -2194,7 +2194,7 @@
2194
2194
  if (this.disposed) {
2195
2195
  return [2 /*return*/];
2196
2196
  }
2197
- api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
2197
+ api = this.apiGetter.getApi();
2198
2198
  return [4 /*yield*/, bruceModels.Entity.Get(api, id)];
2199
2199
  case 1:
2200
2200
  entity = _b.sent();
@@ -2239,31 +2239,46 @@
2239
2239
  }
2240
2240
  var TilesetRenderEngine;
2241
2241
  (function (TilesetRenderEngine) {
2242
- function ApplySettings(cTileset, tileset) {
2242
+ function ApplyPosition(cTileset, tileset, coords) {
2243
2243
  if (tileset.type == bruceModels.Tileset.EType.Cad) {
2244
2244
  var settings = tileset.settings;
2245
- var root = cTileset.root;
2246
- var transform = settings.transform;
2247
- if (!transform) {
2248
- transform = {
2249
- heading: 0,
2250
- pitch: 0,
2251
- roll: 0,
2252
- scale: 1
2253
- };
2254
- }
2255
- var point = settings.location;
2256
- var pos = Cesium.Cartesian3.fromDegrees(point.longitude, point.latitude, point.altitude);
2245
+ var location_1;
2246
+ var transform = void 0;
2247
+ // Position using root entity + ucs.
2248
+ if (coords === null || coords === void 0 ? void 0 : coords.ucs) {
2249
+ location_1 = coords.ucs.location;
2250
+ transform = coords.transform;
2251
+ }
2252
+ // Position using tileset.
2253
+ else {
2254
+ transform = settings.transform;
2255
+ location_1 = settings.location;
2256
+ }
2257
+ if (!(location_1 === null || location_1 === void 0 ? void 0 : location_1.latitude)) {
2258
+ return;
2259
+ }
2260
+ transform = __assign({ heading: 0, pitch: 0, roll: 0, scale: 1, x: 0, y: 0, z: 0 }, transform);
2261
+ if (transform.scale <= 0) {
2262
+ transform.scale = 0.000001;
2263
+ }
2264
+ var pos = Cesium.Cartesian3.fromDegrees(location_1.longitude, location_1.latitude, location_1.altitude);
2257
2265
  var hpr = Cesium.HeadingPitchRoll.fromDegrees(transform.heading, transform.pitch, transform.roll, new Cesium.HeadingPitchRoll());
2266
+ var root = cTileset.root;
2258
2267
  root.transform = Cesium.Transforms.headingPitchRollToFixedFrame(pos, hpr);
2259
- var scale = +(transform === null || transform === void 0 ? void 0 : transform.scale);
2260
- if (!scale || scale <= 0) {
2261
- scale = 0.000001;
2262
- }
2263
- var scaleMatrix = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(scale, scale, scale), new Cesium.Matrix4());
2268
+ var scaleMatrix = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(transform.scale, transform.scale, transform.scale), new Cesium.Matrix4());
2264
2269
  root.transform = Cesium.Matrix4.multiply(root.transform, scaleMatrix, root.transform);
2270
+ root.transform = Cesium.Matrix4.multiplyByTranslation(root.transform, new Cesium.Cartesian3(transform.x, transform.y, transform.z), root.transform);
2265
2271
  // Force matrix to update
2266
2272
  root.updateTransform();
2273
+ }
2274
+ else {
2275
+ throw ("Not implemented.");
2276
+ }
2277
+ }
2278
+ TilesetRenderEngine.ApplyPosition = ApplyPosition;
2279
+ function ApplySettings(cTileset, tileset) {
2280
+ if (tileset.type == bruceModels.Tileset.EType.Cad) {
2281
+ var settings = tileset.settings;
2267
2282
  var maxScreenSpaceError = settings.maximumScreenSpaceError;
2268
2283
  if (maxScreenSpaceError || maxScreenSpaceError == 0) {
2269
2284
  cTileset.maximumScreenSpaceError = maxScreenSpaceError;
@@ -2275,7 +2290,7 @@
2275
2290
  }
2276
2291
  TilesetRenderEngine.ApplySettings = ApplySettings;
2277
2292
  function Render(params) {
2278
- var api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
2293
+ var api = params.apiGetter.getApi(params.apiGetter.accountId);
2279
2294
  if (params.tileset.type == bruceModels.Tileset.EType.Cad) {
2280
2295
  var cTileset_1 = new Cesium.Cesium3DTileset({
2281
2296
  url: bruceModels.Tileset.GetPublicFileUrl(api, params.tileset.id, "tileset.json") + "?generation=" + params.tileset.generateVersion
@@ -2283,6 +2298,7 @@
2283
2298
  params.viewer.scene.primitives.add(cTileset_1);
2284
2299
  cTileset_1.readyPromise.then(function () {
2285
2300
  ApplySettings(cTileset_1, params.tileset);
2301
+ ApplyPosition(cTileset_1, params.tileset, params.coords);
2286
2302
  });
2287
2303
  return cTileset_1;
2288
2304
  }
@@ -2687,7 +2703,7 @@
2687
2703
  Manager.prototype.Init = function () {
2688
2704
  var _a;
2689
2705
  return __awaiter(this, void 0, void 0, function () {
2690
- var tilesetId, api, tileset, cTileset;
2706
+ var tilesetId, api, tileset, settings, rootId, coords, cTileset;
2691
2707
  var _this = this;
2692
2708
  return __generator(this, function (_b) {
2693
2709
  switch (_b.label) {
@@ -2696,17 +2712,23 @@
2696
2712
  if (!tilesetId) {
2697
2713
  return [2 /*return*/];
2698
2714
  }
2699
- api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
2715
+ api = this.apiGetter.getApi();
2700
2716
  return [4 /*yield*/, bruceModels.Tileset.Get(api, tilesetId)];
2701
2717
  case 1:
2702
2718
  tileset = _b.sent();
2703
2719
  if (!tileset) {
2704
2720
  return [2 /*return*/];
2705
2721
  }
2722
+ settings = tileset.settings;
2723
+ rootId = settings.rootEntityId;
2724
+ return [4 /*yield*/, bruceModels.EntityCoords.GetEntityCoords(api, rootId)];
2725
+ case 2:
2726
+ coords = _b.sent();
2706
2727
  cTileset = this.cTileset = TilesetRenderEngine.Render({
2707
2728
  apiGetter: this.apiGetter,
2708
2729
  tileset: tileset,
2709
- viewer: this.viewer
2730
+ viewer: this.viewer,
2731
+ coords: coords
2710
2732
  });
2711
2733
  cTileset.readyPromise.then(function () {
2712
2734
  _this.onCTilesetLoad();
@@ -3101,7 +3123,7 @@
3101
3123
  for (i = 0; i < features.length; i++) {
3102
3124
  _loop_1(i);
3103
3125
  }
3104
- api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
3126
+ api = this.apiGetter.getApi();
3105
3127
  return [4 /*yield*/, bruceModels.EntitySource.GetEntityIdsBySourceKeys(api, this.sourceId, featureIds)];
3106
3128
  case 1:
3107
3129
  bIds = _a.sent();
@@ -3451,73 +3473,6 @@
3451
3473
  });
3452
3474
  }
3453
3475
  RenderHelper.RenderEntityFilter = RenderEntityFilter;
3454
- function RenderBookmarkItems(params, viewId, bookmarkId) {
3455
- var _a, _b, _c, _d;
3456
- return __awaiter(this, void 0, void 0, function () {
3457
- function traverseItems(item) {
3458
- return __awaiter(this, void 0, void 0, function () {
3459
- var itemId, i;
3460
- return __generator(this, function (_a) {
3461
- switch (_a.label) {
3462
- case 0:
3463
- if (!enabledItemIds.includes(item.id)) return [3 /*break*/, 2];
3464
- return [4 /*yield*/, params.manager.RenderItem({
3465
- item: item,
3466
- apiGetter: params.apiGetter
3467
- })];
3468
- case 1:
3469
- itemId = _a.sent();
3470
- renderedItemIds.push(itemId);
3471
- _a.label = 2;
3472
- case 2:
3473
- if (!item.Children) return [3 /*break*/, 6];
3474
- i = 0;
3475
- _a.label = 3;
3476
- case 3:
3477
- if (!(i < item.Children.length)) return [3 /*break*/, 6];
3478
- return [4 /*yield*/, traverseItems(item.Children[i])];
3479
- case 4:
3480
- _a.sent();
3481
- _a.label = 5;
3482
- case 5:
3483
- i++;
3484
- return [3 /*break*/, 3];
3485
- case 6: return [2 /*return*/];
3486
- }
3487
- });
3488
- });
3489
- }
3490
- var api, view, bookmark, items, enabledItemIds, renderedItemIds, i;
3491
- return __generator(this, function (_e) {
3492
- switch (_e.label) {
3493
- case 0:
3494
- api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
3495
- return [4 /*yield*/, bruceModels.ProjectView.Get(api, viewId)];
3496
- case 1:
3497
- view = _e.sent();
3498
- return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, viewId, bookmarkId)];
3499
- case 2:
3500
- bookmark = _e.sent();
3501
- items = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.LayersMenu) !== null && _b !== void 0 ? _b : [];
3502
- enabledItemIds = (_d = (_c = bookmark.Settings) === null || _c === void 0 ? void 0 : _c.selectedItemIds) !== null && _d !== void 0 ? _d : [];
3503
- renderedItemIds = [];
3504
- i = 0;
3505
- _e.label = 3;
3506
- case 3:
3507
- if (!(i < items.length)) return [3 /*break*/, 6];
3508
- return [4 /*yield*/, traverseItems(items[i])];
3509
- case 4:
3510
- _e.sent();
3511
- _e.label = 5;
3512
- case 5:
3513
- i++;
3514
- return [3 /*break*/, 3];
3515
- case 6: return [2 /*return*/, renderedItemIds];
3516
- }
3517
- });
3518
- });
3519
- }
3520
- RenderHelper.RenderBookmarkItems = RenderBookmarkItems;
3521
3476
  function RenderMenuItems(params, menuItems) {
3522
3477
  return __awaiter(this, void 0, void 0, function () {
3523
3478
  var renderedItemIds, i, menuItem, itemId;
@@ -3553,7 +3508,7 @@
3553
3508
  return __generator(this, function (_a) {
3554
3509
  switch (_a.label) {
3555
3510
  case 0:
3556
- api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
3511
+ api = params.apiGetter.getApi();
3557
3512
  return [4 /*yield*/, bruceModels.Tileset.Get(api, tilesetId)];
3558
3513
  case 1:
3559
3514
  tileset = _a.sent();
@@ -3580,9 +3535,101 @@
3580
3535
  });
3581
3536
  }
3582
3537
  RenderHelper.RenderTileset = RenderTileset;
3538
+ function RenderBookmarkItems(params, viewId, bookmarkId) {
3539
+ return __awaiter(this, void 0, void 0, function () {
3540
+ var api, view, bookmark, enabledIds, menuItems, version, vSettings, bSettings, vSettings, bSettings, renderedItemIds, traverseItems_1, i;
3541
+ var _this = this;
3542
+ return __generator(this, function (_a) {
3543
+ switch (_a.label) {
3544
+ case 0:
3545
+ api = params.apiGetter.getApi();
3546
+ return [4 /*yield*/, bruceModels.ProjectView.Get(api, viewId)];
3547
+ case 1:
3548
+ view = _a.sent();
3549
+ return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, viewId, bookmarkId)];
3550
+ case 2:
3551
+ bookmark = _a.sent();
3552
+ if (view.DataVersion != bookmark.DataVersion) {
3553
+ throw new Error("View and bookmark settings version mismatch.");
3554
+ }
3555
+ enabledIds = [];
3556
+ menuItems = [];
3557
+ version = view.DataVersion;
3558
+ if (view.Settings && bookmark.Settings) {
3559
+ if (version === 2) {
3560
+ vSettings = view.Settings;
3561
+ bSettings = bookmark.Settings;
3562
+ menuItems = vSettings.menuItems;
3563
+ enabledIds = bSettings.menuItemIds;
3564
+ }
3565
+ else {
3566
+ vSettings = view.Settings;
3567
+ bSettings = bookmark.Settings;
3568
+ menuItems = vSettings.LayersMenu;
3569
+ enabledIds = bSettings.selectedItemIds;
3570
+ }
3571
+ }
3572
+ renderedItemIds = [];
3573
+ if (!((menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) && (enabledIds === null || enabledIds === void 0 ? void 0 : enabledIds.length))) return [3 /*break*/, 6];
3574
+ traverseItems_1 = function (item) { return __awaiter(_this, void 0, void 0, function () {
3575
+ var itemId, i;
3576
+ return __generator(this, function (_a) {
3577
+ switch (_a.label) {
3578
+ case 0:
3579
+ if (!enabledIds.includes(item.id)) return [3 /*break*/, 2];
3580
+ return [4 /*yield*/, params.manager.RenderItem({
3581
+ item: item,
3582
+ apiGetter: params.apiGetter
3583
+ })];
3584
+ case 1:
3585
+ itemId = _a.sent();
3586
+ renderedItemIds.push(itemId);
3587
+ _a.label = 2;
3588
+ case 2:
3589
+ if (!item.Children) return [3 /*break*/, 6];
3590
+ i = 0;
3591
+ _a.label = 3;
3592
+ case 3:
3593
+ if (!(i < item.Children.length)) return [3 /*break*/, 6];
3594
+ return [4 /*yield*/, traverseItems_1(item.Children[i])];
3595
+ case 4:
3596
+ _a.sent();
3597
+ _a.label = 5;
3598
+ case 5:
3599
+ i++;
3600
+ return [3 /*break*/, 3];
3601
+ case 6: return [2 /*return*/];
3602
+ }
3603
+ });
3604
+ }); };
3605
+ i = 0;
3606
+ _a.label = 3;
3607
+ case 3:
3608
+ if (!(i < menuItems.length)) return [3 /*break*/, 6];
3609
+ return [4 /*yield*/, traverseItems_1(menuItems[i])];
3610
+ case 4:
3611
+ _a.sent();
3612
+ _a.label = 5;
3613
+ case 5:
3614
+ i++;
3615
+ return [3 /*break*/, 3];
3616
+ case 6: return [2 /*return*/, renderedItemIds];
3617
+ }
3618
+ });
3619
+ });
3620
+ }
3621
+ RenderHelper.RenderBookmarkItems = RenderBookmarkItems;
3583
3622
  })(exports.RenderHelper || (exports.RenderHelper = {}));
3584
3623
 
3624
+ var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
3625
+ var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
3585
3626
  var re = /[\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E3C-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FCD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA698-\uA69E\uA6F8-\uA6FF\uA78F\uA794-\uA79F\uA7AB-\uA7F7\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C5-\uA8CD\uA8DA-\uA8DF\uA8FC-\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9E0-\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAA7C-\uAA7F\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F-\uABBF\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE27-\uFE2F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]/g;
3627
+ /**
3628
+ * Prepares a legacy imagery name for comparison.
3629
+ * Legacy data did not have ids... we do what we can.
3630
+ * @param name
3631
+ * @returns
3632
+ */
3586
3633
  function prepLegacyName(name) {
3587
3634
  if (!name) {
3588
3635
  return "";
@@ -3595,26 +3642,68 @@
3595
3642
  }
3596
3643
  return name;
3597
3644
  }
3598
- var EDefaultTerrain;
3599
- (function (EDefaultTerrain) {
3600
- EDefaultTerrain["CesiumWorldTerrain"] = "cesiumworldterrain";
3601
- EDefaultTerrain["Linz"] = "linz";
3602
- EDefaultTerrain["FlatTerrain"] = "flatterrain";
3603
- })(EDefaultTerrain || (EDefaultTerrain = {}));
3604
- var DEFAULT_TERRAIN_NAMES = [
3605
- EDefaultTerrain.CesiumWorldTerrain,
3606
- EDefaultTerrain.Linz,
3607
- EDefaultTerrain.FlatTerrain
3608
- ];
3609
- function isDefaultTerrain(name) {
3645
+ /**
3646
+ * Constructs an terrain provider for a default terrain type.
3647
+ * Warning: This does not add it to the viewer.
3648
+ * @param id
3649
+ * @returns
3650
+ */
3651
+ function renderDefaultTerrTile(id) {
3652
+ var provider;
3653
+ switch (id) {
3654
+ case bruceModels.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain:
3655
+ provider = Cesium.createWorldTerrain({
3656
+ requestVertexNormals: true,
3657
+ requestWaterMask: false
3658
+ });
3659
+ break;
3660
+ case bruceModels.ProjectViewTile.EDefaultTerrain.FlatTerrain:
3661
+ provider = new Cesium.EllipsoidTerrainProvider();
3662
+ break;
3663
+ case bruceModels.ProjectViewTile.EDefaultTerrain.LINZ:
3664
+ provider = new Cesium.CesiumTerrainProvider({
3665
+ url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
3666
+ requestVertexNormals: true,
3667
+ });
3668
+ break;
3669
+ }
3670
+ return provider;
3671
+ }
3672
+ /**
3673
+ * Maps a legacy terrain's name to a default terrain id.
3674
+ * @param name
3675
+ * @returns
3676
+ */
3677
+ function legacyTerrIdToDefaultId(name) {
3610
3678
  name = prepLegacyName(name);
3611
- return DEFAULT_TERRAIN_NAMES.includes(name);
3679
+ switch (name) {
3680
+ case "cesiumworldterrain":
3681
+ return bruceModels.ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain;
3682
+ case "linz":
3683
+ return bruceModels.ProjectViewTile.EDefaultTerrain.LINZ;
3684
+ case "flatterrain":
3685
+ return bruceModels.ProjectViewTile.EDefaultTerrain.FlatTerrain;
3686
+ }
3687
+ }
3688
+ /**
3689
+ * Returns if a given legacy terrain's name correspondings to a default source.
3690
+ * @param name
3691
+ * @returns
3692
+ */
3693
+ function isLegacyTerrainDefault(name) {
3694
+ name = legacyTerrIdToDefaultId(name);
3695
+ return bruceModels.ProjectViewTile.DefaultTerrains.find(function (x) { return x.id == name; }) != null;
3612
3696
  }
3613
- function createTerrainBId(source) {
3697
+ /**
3698
+ * Returns a best attempt at a unique id from a given legacy terrain source.
3699
+ * @param source
3700
+ * @returns
3701
+ */
3702
+ function createLegacyTerrId(source) {
3614
3703
  if (!source) {
3615
3704
  return "";
3616
3705
  }
3617
- if (isDefaultTerrain(source.Name)) {
3706
+ if (isLegacyTerrainDefault(source.Name)) {
3618
3707
  return source.Name;
3619
3708
  }
3620
3709
  if (source.SourceUrl) {
@@ -3622,11 +3711,16 @@
3622
3711
  }
3623
3712
  return "";
3624
3713
  }
3625
- function createImageryBId(source) {
3714
+ /**
3715
+ * Returns a best attempt at a unique id from a given legacy imagery source.
3716
+ * @param source
3717
+ * @returns
3718
+ */
3719
+ function createLegacyImageryId(source) {
3626
3720
  if (!source) {
3627
3721
  return "";
3628
3722
  }
3629
- if (isDefaultImagery(source.Name)) {
3723
+ if (isLegacyImageryDefault(source.Name)) {
3630
3724
  return source.Name;
3631
3725
  }
3632
3726
  if (source.SourceUrl) {
@@ -3634,43 +3728,11 @@
3634
3728
  }
3635
3729
  return "";
3636
3730
  }
3637
- var EDefaultImagery;
3638
- (function (EDefaultImagery) {
3639
- EDefaultImagery["BingMapsAerial"] = "bingmapsaerial";
3640
- EDefaultImagery["BingMapsAerialWithLabels"] = "bingmapsaerialwithlabels";
3641
- EDefaultImagery["BingMapsRoads"] = "bingmapsroads";
3642
- EDefaultImagery["MapboxSatellite"] = "mapboxsatellite";
3643
- EDefaultImagery["MapBoxStreets"] = "mapboxstreets";
3644
- EDefaultImagery["MapBoxStreetsClassic"] = "mapboxstreetsclassic";
3645
- EDefaultImagery["EsriWorldImagery"] = "esriworldimagery";
3646
- EDefaultImagery["EsriWorldStreetMap"] = "esriworldstreetmap";
3647
- EDefaultImagery["EsriNationalGeographic"] = "esrinationalgeographic";
3648
- EDefaultImagery["OpenStreetMap"] = "openstreetmap";
3649
- EDefaultImagery["StamenWaterColor"] = "stamenwatercolor";
3650
- EDefaultImagery["StamenToner"] = "stamentoner";
3651
- EDefaultImagery["Grid"] = "grid";
3652
- })(EDefaultImagery || (EDefaultImagery = {}));
3653
- var DEFAULT_IMAGERY_NAMES = [
3654
- EDefaultImagery.BingMapsAerial,
3655
- EDefaultImagery.BingMapsAerialWithLabels,
3656
- EDefaultImagery.BingMapsRoads,
3657
- EDefaultImagery.MapboxSatellite,
3658
- EDefaultImagery.MapBoxStreets,
3659
- EDefaultImagery.MapBoxStreetsClassic,
3660
- EDefaultImagery.EsriWorldImagery,
3661
- EDefaultImagery.EsriWorldStreetMap,
3662
- EDefaultImagery.EsriNationalGeographic,
3663
- EDefaultImagery.OpenStreetMap,
3664
- EDefaultImagery.StamenWaterColor,
3665
- EDefaultImagery.StamenToner,
3666
- EDefaultImagery.Grid
3667
- ];
3668
- function isDefaultImagery(name) {
3669
- name = prepLegacyName(name);
3670
- return DEFAULT_IMAGERY_NAMES.includes(name);
3671
- }
3672
- var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
3673
- var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
3731
+ /**
3732
+ * Turns Cesium collection of enabled imageries into an array.
3733
+ * @param viewer
3734
+ * @returns
3735
+ */
3674
3736
  function gatherEnabledImageries(viewer) {
3675
3737
  var collection = viewer.imageryLayers;
3676
3738
  var layers = [];
@@ -3680,6 +3742,154 @@
3680
3742
  }
3681
3743
  return layers;
3682
3744
  }
3745
+ /**
3746
+ * Constructs an imagery provider for a default imagery type.
3747
+ * Warning: This does not add it to the viewer.
3748
+ * @param id
3749
+ * @returns
3750
+ */
3751
+ function renderDefaultMapTile(id) {
3752
+ var provider;
3753
+ switch (id) {
3754
+ case bruceModels.ProjectViewTile.EDefaultImagery.BingMapsAerial:
3755
+ // TODO: Read account key if available.
3756
+ provider = new Cesium.BingMapsImageryProvider({
3757
+ url: "https://dev.virtualearth.net",
3758
+ mapStyle: Cesium.BingMapsStyle.AERIAL,
3759
+ key: DEFAULT_BING_KEY
3760
+ });
3761
+ break;
3762
+ case bruceModels.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels:
3763
+ // TODO: Read account key if available.
3764
+ provider = new Cesium.BingMapsImageryProvider({
3765
+ url: "https://dev.virtualearth.net",
3766
+ mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS,
3767
+ key: DEFAULT_BING_KEY
3768
+ });
3769
+ break;
3770
+ case bruceModels.ProjectViewTile.EDefaultImagery.BingMapsRoads:
3771
+ // TODO: Read account key if available.
3772
+ provider = new Cesium.BingMapsImageryProvider({
3773
+ url: "https://dev.virtualearth.net",
3774
+ mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND,
3775
+ key: DEFAULT_BING_KEY
3776
+ });
3777
+ break;
3778
+ case bruceModels.ProjectViewTile.EDefaultImagery.MapboxSatellite:
3779
+ // TODO: Read account key if available.
3780
+ provider = new Cesium.MapboxImageryProvider({
3781
+ mapId: "mapbox.satellite",
3782
+ accessToken: DEFAULT_MAPBOX_KEY
3783
+ });
3784
+ break;
3785
+ case bruceModels.ProjectViewTile.EDefaultImagery.MapBoxStreets:
3786
+ // TODO: Read account key if available.
3787
+ provider = new Cesium.MapboxImageryProvider({
3788
+ mapId: "satellite-streets-v11",
3789
+ accessToken: DEFAULT_MAPBOX_KEY
3790
+ });
3791
+ break;
3792
+ case bruceModels.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic:
3793
+ // TODO: Read account key if available.
3794
+ provider = new Cesium.MapboxImageryProvider({
3795
+ mapId: "streets-v11",
3796
+ accessToken: DEFAULT_MAPBOX_KEY
3797
+ });
3798
+ break;
3799
+ case bruceModels.ProjectViewTile.EDefaultImagery.EsriWorldImagery:
3800
+ provider = new Cesium.ArcGisMapServerImageryProvider({
3801
+ url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
3802
+ enablePickFeatures: false
3803
+ });
3804
+ break;
3805
+ case bruceModels.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap:
3806
+ provider = new Cesium.ArcGisMapServerImageryProvider({
3807
+ url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
3808
+ enablePickFeatures: false
3809
+ });
3810
+ break;
3811
+ case bruceModels.ProjectViewTile.EDefaultImagery.EsriNationalGeographic:
3812
+ provider = new Cesium.ArcGisMapServerImageryProvider({
3813
+ url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
3814
+ enablePickFeatures: false
3815
+ });
3816
+ break;
3817
+ case bruceModels.ProjectViewTile.EDefaultImagery.OpenStreetMap:
3818
+ provider = new Cesium.OpenStreetMapImageryProvider({
3819
+ url: "https://a.tile.openstreetmap.org/"
3820
+ });
3821
+ break;
3822
+ case bruceModels.ProjectViewTile.EDefaultImagery.StamenWaterColor:
3823
+ provider = new Cesium.OpenStreetMapImageryProvider({
3824
+ url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
3825
+ });
3826
+ break;
3827
+ case bruceModels.ProjectViewTile.EDefaultImagery.StamenToner:
3828
+ provider = new Cesium.OpenStreetMapImageryProvider({
3829
+ url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
3830
+ });
3831
+ break;
3832
+ case bruceModels.ProjectViewTile.EDefaultImagery.Grid:
3833
+ provider = new Cesium.GridImageryProvider({
3834
+ tilingScheme: new Cesium.GeographicTilingScheme(),
3835
+ cells: 0,
3836
+ color: Cesium.Color.fromCssColorString("rgb(97, 151, 237)"),
3837
+ glowColor: Cesium.Color.fromCssColorString("rgb(54, 54, 54)"),
3838
+ glowWidth: 4,
3839
+ backgroundColor: Cesium.Color.TRANSPARENT,
3840
+ tileWidth: 256,
3841
+ tileHeight: 256,
3842
+ canvasSize: 256
3843
+ });
3844
+ break;
3845
+ }
3846
+ return provider;
3847
+ }
3848
+ /**
3849
+ * Maps a legacy imagery's name to a default imagery id.
3850
+ * @param name
3851
+ * @returns
3852
+ */
3853
+ function legacyMapIdToDefaultId(name) {
3854
+ name = prepLegacyName(name);
3855
+ switch (name) {
3856
+ case "bingmapsaerial":
3857
+ return bruceModels.ProjectViewTile.EDefaultImagery.BingMapsAerial;
3858
+ case "bingmapsaerialwithlabels":
3859
+ return bruceModels.ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels;
3860
+ case "bingmapsroads":
3861
+ return bruceModels.ProjectViewTile.EDefaultImagery.BingMapsRoads;
3862
+ case "mapboxsatellite":
3863
+ return bruceModels.ProjectViewTile.EDefaultImagery.MapboxSatellite;
3864
+ case "mapboxstreets":
3865
+ return bruceModels.ProjectViewTile.EDefaultImagery.MapBoxStreets;
3866
+ case "mapboxstreetsclassic":
3867
+ return bruceModels.ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic;
3868
+ case "esriworldimagery":
3869
+ return bruceModels.ProjectViewTile.EDefaultImagery.EsriWorldImagery;
3870
+ case "esriworldstreetmap":
3871
+ return bruceModels.ProjectViewTile.EDefaultImagery.EsriWorldStreetMap;
3872
+ case "esrinationalgeographic":
3873
+ return bruceModels.ProjectViewTile.EDefaultImagery.EsriNationalGeographic;
3874
+ case "openstreetmap":
3875
+ return bruceModels.ProjectViewTile.EDefaultImagery.OpenStreetMap;
3876
+ case "stamenwatercolor":
3877
+ return bruceModels.ProjectViewTile.EDefaultImagery.StamenWaterColor;
3878
+ case "stamentoner":
3879
+ return bruceModels.ProjectViewTile.EDefaultImagery.StamenToner;
3880
+ case "grid":
3881
+ return bruceModels.ProjectViewTile.EDefaultImagery.Grid;
3882
+ }
3883
+ }
3884
+ /**
3885
+ * Returns if a given legacy imagery's name correspondings to a default source.
3886
+ * @param name
3887
+ * @returns
3888
+ */
3889
+ function isLegacyImageryDefault(name) {
3890
+ name = legacyMapIdToDefaultId(name);
3891
+ return bruceModels.ProjectViewTile.DefaultImagery.find(function (x) { return x.id == name; }) != null;
3892
+ }
3683
3893
  (function (TileRenderEngine) {
3684
3894
  /**
3685
3895
  * Legacy data did name comparisons instead of ids.
@@ -3695,479 +3905,750 @@
3695
3905
  TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
3696
3906
  var Map;
3697
3907
  (function (Map) {
3698
- function Render(params) {
3699
- throw ("Not implemented");
3700
- }
3701
- Map.Render = Render;
3702
- function RenderLegacy(params) {
3703
- var enabled = gatherEnabledImageries(params.viewer);
3704
- var tile = params.data;
3705
- var bId = createImageryBId(tile);
3706
- var layer = enabled.find(function (x) { return x._bId == bId; });
3707
- if (layer) ;
3708
- else if (isDefaultImagery(tile.Name)) {
3709
- var provider = null;
3710
- // TODO: Rest of defaults.
3711
- // TODO: Should be enum.
3712
- switch (prepLegacyName(tile.Name)) {
3713
- case EDefaultImagery.BingMapsAerial:
3714
- // TODO: Read account key if available.
3715
- provider = new Cesium.BingMapsImageryProvider({
3716
- url: "https://dev.virtualearth.net",
3717
- mapStyle: Cesium.BingMapsStyle.AERIAL,
3718
- key: DEFAULT_BING_KEY
3719
- });
3720
- break;
3721
- case EDefaultImagery.BingMapsAerialWithLabels:
3722
- // TODO: Read account key if available.
3723
- provider = new Cesium.BingMapsImageryProvider({
3724
- url: "https://dev.virtualearth.net",
3725
- mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS,
3726
- key: DEFAULT_BING_KEY
3727
- });
3728
- break;
3729
- case EDefaultImagery.BingMapsRoads:
3730
- // TODO: Read account key if available.
3731
- provider = new Cesium.BingMapsImageryProvider({
3732
- url: "https://dev.virtualearth.net",
3733
- mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND,
3734
- key: DEFAULT_BING_KEY
3735
- });
3736
- break;
3737
- case EDefaultImagery.MapboxSatellite:
3738
- // TODO: Read account key if available.
3739
- provider = new Cesium.MapboxImageryProvider({
3740
- mapId: "mapbox.satellite",
3741
- accessToken: DEFAULT_MAPBOX_KEY
3742
- });
3743
- break;
3744
- case EDefaultImagery.MapBoxStreets:
3745
- // TODO: Read account key if available.
3746
- provider = new Cesium.MapboxImageryProvider({
3747
- mapId: "satellite-streets-v11",
3748
- accessToken: DEFAULT_MAPBOX_KEY
3749
- });
3750
- break;
3751
- case EDefaultImagery.MapBoxStreetsClassic:
3752
- // TODO: Read account key if available.
3753
- provider = new Cesium.MapboxImageryProvider({
3754
- mapId: "streets-v11",
3755
- accessToken: DEFAULT_MAPBOX_KEY
3756
- });
3757
- break;
3758
- case EDefaultImagery.EsriWorldImagery:
3759
- provider = new Cesium.ArcGisMapServerImageryProvider({
3760
- url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
3761
- enablePickFeatures: false
3762
- });
3763
- break;
3764
- case EDefaultImagery.EsriWorldStreetMap:
3765
- provider = new Cesium.ArcGisMapServerImageryProvider({
3766
- url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
3767
- enablePickFeatures: false
3768
- });
3769
- break;
3770
- case EDefaultImagery.EsriNationalGeographic:
3771
- provider = new Cesium.ArcGisMapServerImageryProvider({
3772
- url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
3773
- enablePickFeatures: false
3774
- });
3775
- break;
3776
- case EDefaultImagery.OpenStreetMap:
3777
- provider = new Cesium.OpenStreetMapImageryProvider({
3778
- url: "https://a.tile.openstreetmap.org/"
3779
- });
3780
- break;
3781
- case EDefaultImagery.StamenWaterColor:
3782
- provider = new Cesium.OpenStreetMapImageryProvider({
3783
- url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
3784
- });
3785
- break;
3786
- case EDefaultImagery.StamenToner:
3787
- provider = new Cesium.OpenStreetMapImageryProvider({
3788
- url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
3789
- });
3790
- break;
3791
- case EDefaultImagery.Grid:
3792
- provider = new Cesium.GridImageryProvider({
3793
- tilingScheme: new Cesium.GeographicTilingScheme(),
3794
- cells: 0,
3795
- color: Cesium.Color.fromCssColorString("rgb(97, 151, 237)"),
3796
- glowColor: Cesium.Color.fromCssColorString("rgb(54, 54, 54)"),
3797
- glowWidth: 4,
3798
- backgroundColor: Cesium.Color.TRANSPARENT,
3799
- tileWidth: 256,
3800
- tileHeight: 256,
3801
- canvasSize: 256
3802
- });
3803
- break;
3804
- }
3805
- if (provider) {
3806
- layer = new Cesium.ImageryLayer(provider);
3807
- }
3808
- }
3809
- else if (tile.SourceUrl) {
3810
- var provider = null;
3811
- var min = tile.Minimum;
3812
- var max = tile.Maximum;
3813
- if (min != undefined && min <= -1) {
3814
- min = undefined;
3815
- }
3816
- if (max != undefined && max <= -1) {
3817
- max = undefined;
3818
- }
3819
- switch (tile.Type) {
3820
- case "BruceImagery":
3821
- provider = new Cesium.UrlTemplateImageryProvider({
3822
- url: tile.SourceUrl,
3823
- tileHeight: 256,
3824
- tileWidth: 256
3825
- });
3826
- break;
3827
- case "ArcGisImagery":
3828
- provider = new Cesium.OpenStreetMapImageryProvider({
3829
- url: tile.SourceUrl,
3830
- fileExtension: tile.FileExtension,
3831
- minimumLevel: min,
3832
- maximumLevel: max
3833
- });
3834
- break;
3835
- case "TileMapImagery":
3836
- provider = new Cesium.TileMapServiceImageryProvider({
3837
- url: tile.SourceUrl,
3838
- fileExtension: tile.FileExtension,
3839
- minimumLevel: min,
3840
- maximumLevel: max
3841
- });
3842
- break;
3843
- case "OpenStreetMapImagery":
3844
- provider = new Cesium.OpenStreetMapImageryProvider({
3845
- url: tile.SourceUrl,
3846
- fileExtension: tile.FileExtension,
3847
- minimumLevel: min,
3848
- maximumLevel: max
3849
- });
3850
- break;
3851
- case "MapBoxImagery":
3852
- // TODO: Read default account key when missing.
3853
- provider = new Cesium.UrlTemplateImageryProvider({
3854
- url: "https://api.mapbox.com/styles/v1/"
3855
- + tile.MapBoxUsername + "/" + tile.MapBoxID +
3856
- "/tiles/256/{z}/{x}/{y}?access_token="
3857
- + tile.ProgramKey
3858
- });
3859
- break;
3908
+ var V1;
3909
+ (function (V1) {
3910
+ function Render(params) {
3911
+ var enabled = gatherEnabledImageries(params.viewer);
3912
+ var tile = params.data;
3913
+ var bId = createLegacyImageryId(tile);
3914
+ var layer = enabled.find(function (x) { return x._bId == bId; });
3915
+ if (layer) ;
3916
+ else if (isLegacyImageryDefault(tile.Name)) {
3917
+ var defaultId = legacyMapIdToDefaultId(tile.Name);
3918
+ var provider = renderDefaultMapTile(defaultId);
3919
+ if (provider) {
3920
+ layer = new Cesium.ImageryLayer(provider);
3921
+ }
3860
3922
  }
3861
- if (provider) {
3862
- layer = new Cesium.ImageryLayer(provider);
3923
+ else if (tile.SourceUrl) {
3924
+ var provider = null;
3925
+ var min = tile.Minimum;
3926
+ var max = tile.Maximum;
3927
+ if (min != undefined && min <= -1) {
3928
+ min = undefined;
3929
+ }
3930
+ if (max != undefined && max <= -1) {
3931
+ max = undefined;
3932
+ }
3933
+ switch (tile.Type) {
3934
+ case "BruceImagery":
3935
+ provider = new Cesium.UrlTemplateImageryProvider({
3936
+ url: tile.SourceUrl,
3937
+ tileHeight: 256,
3938
+ tileWidth: 256
3939
+ });
3940
+ break;
3941
+ case "ArcGisImagery":
3942
+ provider = new Cesium.OpenStreetMapImageryProvider({
3943
+ url: tile.SourceUrl,
3944
+ fileExtension: tile.FileExtension,
3945
+ minimumLevel: min,
3946
+ maximumLevel: max
3947
+ });
3948
+ break;
3949
+ case "TileMapImagery":
3950
+ provider = new Cesium.TileMapServiceImageryProvider({
3951
+ url: tile.SourceUrl,
3952
+ fileExtension: tile.FileExtension,
3953
+ minimumLevel: min,
3954
+ maximumLevel: max
3955
+ });
3956
+ break;
3957
+ case "OpenStreetMapImagery":
3958
+ provider = new Cesium.OpenStreetMapImageryProvider({
3959
+ url: tile.SourceUrl,
3960
+ fileExtension: tile.FileExtension,
3961
+ minimumLevel: min,
3962
+ maximumLevel: max
3963
+ });
3964
+ break;
3965
+ case "MapBoxImagery":
3966
+ // TODO: Read default account key when missing.
3967
+ provider = new Cesium.UrlTemplateImageryProvider({
3968
+ url: "https://api.mapbox.com/styles/v1/"
3969
+ + tile.MapBoxUsername + "/" + tile.MapBoxID +
3970
+ "/tiles/256/{z}/{x}/{y}?access_token="
3971
+ + tile.ProgramKey
3972
+ });
3973
+ break;
3974
+ }
3975
+ if (provider) {
3976
+ layer = new Cesium.ImageryLayer(provider);
3977
+ }
3863
3978
  }
3864
- }
3865
- if (layer) {
3866
- layer._bId = bId;
3867
- layer._bName = tile.Name;
3868
- if (!params.viewer.imageryLayers.contains(layer)) {
3869
- params.viewer.imageryLayers.add(layer);
3979
+ if (layer) {
3980
+ layer._bId = bId;
3981
+ layer._bName = tile.Name;
3982
+ if (!params.viewer.imageryLayers.contains(layer)) {
3983
+ params.viewer.imageryLayers.add(layer);
3984
+ }
3870
3985
  }
3986
+ return layer;
3871
3987
  }
3872
- return layer;
3873
- }
3874
- Map.RenderLegacy = RenderLegacy;
3875
- function RenderLegacyView(params) {
3876
- var _a, _b, _c, _d, _e;
3877
- return __awaiter(this, void 0, void 0, function () {
3878
- var api, view, bookmark, data, dataNames, i, source, tiles, i, name_1, j, tile, enabled, layers, _loop_1, i, i, tile, layer, i, layer;
3879
- return __generator(this, function (_f) {
3880
- switch (_f.label) {
3881
- case 0:
3882
- api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
3883
- return [4 /*yield*/, bruceModels.ProjectView.Get(api, params.viewId)];
3884
- case 1:
3885
- view = _f.sent();
3886
- bookmark = null;
3887
- if (!params.bookmarkId) return [3 /*break*/, 3];
3888
- return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
3889
- case 2:
3890
- bookmark = _f.sent();
3891
- _f.label = 3;
3892
- case 3:
3893
- data = [];
3894
- dataNames = [];
3895
- if ((_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _a === void 0 ? void 0 : _a.imagery) {
3896
- for (i = 0; i < bookmark.Settings.imagery.length; i++) {
3897
- source = bookmark.Settings.imagery[i];
3898
- dataNames.push(source.title);
3988
+ V1.Render = Render;
3989
+ function RenderView(params) {
3990
+ var _a;
3991
+ return __awaiter(this, void 0, void 0, function () {
3992
+ var api, view, bookmark, vSettings, bSettings, data, dataNames, i, source, tiles, i, name_1, j, tile, enabled, layers, _loop_1, i, i, tile, layer, i, layer;
3993
+ return __generator(this, function (_b) {
3994
+ switch (_b.label) {
3995
+ case 0:
3996
+ api = params.apiGetter.getApi();
3997
+ return [4 /*yield*/, bruceModels.ProjectView.Get(api, params.viewId)];
3998
+ case 1:
3999
+ view = _b.sent();
4000
+ bookmark = null;
4001
+ if (!params.bookmarkId) return [3 /*break*/, 3];
4002
+ return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
4003
+ case 2:
4004
+ bookmark = (_b.sent());
4005
+ _b.label = 3;
4006
+ case 3:
4007
+ vSettings = view.Settings;
4008
+ bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
4009
+ data = [];
4010
+ dataNames = [];
4011
+ if (bSettings === null || bSettings === void 0 ? void 0 : bSettings.imagery) {
4012
+ for (i = 0; i < bSettings.imagery.length; i++) {
4013
+ source = bSettings.imagery[i];
4014
+ dataNames.push(source.title);
4015
+ }
3899
4016
  }
3900
- }
3901
- else if ((_b = view.Settings) === null || _b === void 0 ? void 0 : _b.DefaultMapTiles) {
3902
- dataNames.push(view.Settings.DefaultMapTiles);
3903
- }
3904
- tiles = (_d = (_c = view.Settings) === null || _c === void 0 ? void 0 : _c.CesiumMapSources) !== null && _d !== void 0 ? _d : [];
3905
- return [4 /*yield*/, bruceModels.ProjectViewTileSource.MergeMapTemplateData(params.apiGetter, tiles, ((_e = view.Settings) === null || _e === void 0 ? void 0 : _e.CesiumMapSources) == null)];
3906
- case 4:
3907
- _f.sent();
3908
- for (i = 0; i < dataNames.length; i++) {
3909
- name_1 = dataNames[i];
3910
- for (j = 0; j < tiles.length; j++) {
3911
- tile = tiles[j];
3912
- if (CompareLegacyNames(tile.Name, name_1)) {
3913
- data.push(tile);
3914
- break;
4017
+ else if (vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultMapTiles) {
4018
+ dataNames.push(vSettings.DefaultMapTiles);
4019
+ }
4020
+ tiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) !== null && _a !== void 0 ? _a : [];
4021
+ return [4 /*yield*/, bruceModels.ProjectViewLegacyTile.MergeMapTemplateData(params.apiGetter, tiles, (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) == null)];
4022
+ case 4:
4023
+ _b.sent();
4024
+ for (i = 0; i < dataNames.length; i++) {
4025
+ name_1 = dataNames[i];
4026
+ for (j = 0; j < tiles.length; j++) {
4027
+ tile = tiles[j];
4028
+ if (CompareLegacyNames(tile.Name, name_1)) {
4029
+ data.push(tile);
4030
+ break;
4031
+ }
3915
4032
  }
3916
4033
  }
3917
- }
3918
- enabled = gatherEnabledImageries(params.viewer);
3919
- layers = [];
3920
- // Gather layers we want to render.
3921
- // Any new layer is added to viewer at the bottom.
3922
- if (params.ignoreIds) {
3923
- _loop_1 = function (i) {
3924
- var id = params.ignoreIds[i];
3925
- var layer = enabled.find(function (x) {
3926
- var layer = x;
3927
- if (layer._bId === id) {
3928
- return true;
4034
+ enabled = gatherEnabledImageries(params.viewer);
4035
+ layers = [];
4036
+ // Gather layers we want to render.
4037
+ // Any new layer is added to viewer at the bottom.
4038
+ if (params.ignoreIds) {
4039
+ _loop_1 = function (i) {
4040
+ var id = params.ignoreIds[i];
4041
+ var layer = enabled.find(function (x) {
4042
+ var layer = x;
4043
+ if (layer._bId === id) {
4044
+ return true;
4045
+ }
4046
+ });
4047
+ if (layer) {
4048
+ layers.push(layer);
3929
4049
  }
4050
+ };
4051
+ for (i = 0; i < params.ignoreIds.length; i++) {
4052
+ _loop_1(i);
4053
+ }
4054
+ }
4055
+ for (i = 0; i < data.length; i++) {
4056
+ tile = data[i];
4057
+ layer = Render({
4058
+ apiGetter: params.apiGetter,
4059
+ viewer: params.viewer,
4060
+ data: tile,
3930
4061
  });
3931
4062
  if (layer) {
3932
4063
  layers.push(layer);
3933
4064
  }
3934
- };
3935
- for (i = 0; i < params.ignoreIds.length; i++) {
3936
- _loop_1(i);
3937
4065
  }
3938
- }
3939
- for (i = 0; i < data.length; i++) {
3940
- tile = data[i];
3941
- layer = RenderLegacy({
3942
- apiGetter: params.apiGetter,
3943
- viewer: params.viewer,
3944
- data: tile,
4066
+ // Sort currently enabled (after new ones added) to match desired order.
4067
+ enabled = gatherEnabledImageries(params.viewer);
4068
+ enabled.sort(function (a, b) {
4069
+ var indexA = layers.indexOf(a);
4070
+ var indexB = layers.indexOf(b);
4071
+ if (indexA < 0 && indexB < 0) {
4072
+ return 0;
4073
+ }
4074
+ if (indexA < 0) {
4075
+ return 1;
4076
+ }
4077
+ if (indexB < 0) {
4078
+ return -1;
4079
+ }
4080
+ return indexA - indexB;
3945
4081
  });
3946
- if (layer) {
3947
- layers.push(layer);
4082
+ // Move enabled layers to match desired order.
4083
+ // Remove any layers that aren't in enabled list.
4084
+ for (i = 0; i < enabled.length; i++) {
4085
+ layer = enabled[i];
4086
+ if (layers.includes(layer)) {
4087
+ params.viewer.imageryLayers.raiseToTop(layer);
4088
+ }
4089
+ else {
4090
+ params.viewer.imageryLayers.remove(layer);
4091
+ }
3948
4092
  }
3949
- }
3950
- // Sort currently enabled (after new ones added) to match desired order.
3951
- enabled = gatherEnabledImageries(params.viewer);
3952
- enabled.sort(function (a, b) {
3953
- var indexA = layers.indexOf(a);
3954
- var indexB = layers.indexOf(b);
3955
- if (indexA < 0 && indexB < 0) {
3956
- return 0;
4093
+ return [2 /*return*/];
4094
+ }
4095
+ });
4096
+ });
4097
+ }
4098
+ V1.RenderView = RenderView;
4099
+ })(V1 = Map.V1 || (Map.V1 = {}));
4100
+ var V2;
4101
+ (function (V2) {
4102
+ function GetOrCreateLayer(viewer, apiGetter, meta) {
4103
+ return __awaiter(this, void 0, void 0, function () {
4104
+ var defaultImg, provider, api, tileset, settings, layer;
4105
+ return __generator(this, function (_a) {
4106
+ switch (_a.label) {
4107
+ case 0:
4108
+ defaultImg = meta.accountId ? null : bruceModels.ProjectViewTile.DefaultImagery.find(function (x) { return x.id === meta.tilesetId; });
4109
+ provider = null;
4110
+ if (!defaultImg) return [3 /*break*/, 1];
4111
+ provider = renderDefaultMapTile(defaultImg.id);
4112
+ return [3 /*break*/, 3];
4113
+ case 1:
4114
+ api = apiGetter.getApi(meta.accountId);
4115
+ return [4 /*yield*/, bruceModels.Tileset.Get(api, meta.tilesetId)];
4116
+ case 2:
4117
+ tileset = _a.sent();
4118
+ if (tileset.type === bruceModels.Tileset.EType.GeoMap) {
4119
+ provider = new Cesium.TileMapServiceImageryProvider({
4120
+ url: bruceModels.Tileset.GetPublicFileUrl(api, meta.tilesetId, ""),
4121
+ fileExtension: ".png"
4122
+ });
3957
4123
  }
3958
- if (indexA < 0) {
3959
- return 1;
4124
+ else if (tileset.type === bruceModels.Tileset.EType.ExternalGeoMap) {
4125
+ settings = tileset.settings;
4126
+ switch (settings.mapType) {
4127
+ case bruceModels.TilesetExtMapTiles.EType.CesiumIon:
4128
+ provider = new Cesium.IonImageryProvider({
4129
+ assetId: settings.ionId,
4130
+ // TODO
4131
+ accessToken: null
4132
+ });
4133
+ break;
4134
+ case bruceModels.TilesetExtMapTiles.EType.MapBoxImagery:
4135
+ // TODO: Read default account key when missing.
4136
+ provider = new Cesium.UrlTemplateImageryProvider({
4137
+ url: "https://api.mapbox.com/styles/v1/"
4138
+ + settings.mapBoxAccount + "/" + settings.mapBoxStyleId +
4139
+ "/tiles/256/{z}/{x}/{y}?access_token="
4140
+ + settings.mapBoxKey
4141
+ });
4142
+ break;
4143
+ case bruceModels.TilesetExtMapTiles.EType.OpenStreetMapImagery:
4144
+ provider = new Cesium.OpenStreetMapImageryProvider({
4145
+ url: settings.url,
4146
+ fileExtension: settings.sourceExt
4147
+ });
4148
+ break;
4149
+ case bruceModels.TilesetExtMapTiles.EType.TileMapImagery:
4150
+ provider = new Cesium.TileMapServiceImageryProvider({
4151
+ url: settings.url,
4152
+ fileExtension: settings.sourceExt
4153
+ });
4154
+ break;
4155
+ }
3960
4156
  }
3961
- if (indexB < 0) {
3962
- return -1;
4157
+ else if (tileset.type === bruceModels.Tileset.EType.EntitiesMap) {
4158
+ provider = new Cesium.UrlTemplateImageryProvider({
4159
+ url: bruceModels.Tileset.GetPublicFileUrl(api, meta.tilesetId, "{z}/{x}/{y}.png"),
4160
+ tileHeight: 256,
4161
+ tileWidth: 256
4162
+ });
3963
4163
  }
3964
- return indexA - indexB;
3965
- });
3966
- // Move enabled layers to match desired order.
3967
- // Remove any layers that aren't in enabled list.
3968
- enabled = enabled.reverse();
3969
- for (i = 0; i < enabled.length; i++) {
3970
- layer = enabled[i];
3971
- if (layers.includes(layer)) {
3972
- params.viewer.imageryLayers.raiseToTop(layer);
4164
+ _a.label = 3;
4165
+ case 3:
4166
+ if (provider) {
4167
+ layer = viewer.imageryLayers.addImageryProvider(provider);
4168
+ layer._bMeta = meta;
4169
+ return [2 /*return*/, layer];
3973
4170
  }
3974
- else {
3975
- params.viewer.imageryLayers.remove(layer);
4171
+ return [2 /*return*/, null];
4172
+ }
4173
+ });
4174
+ });
4175
+ }
4176
+ V2.GetOrCreateLayer = GetOrCreateLayer;
4177
+ function Render(params) {
4178
+ return __awaiter(this, void 0, void 0, function () {
4179
+ var _loop_2, i, curEnabled, toDisable, curEnabledArr, _loop_3, i, i, _loop_4, i;
4180
+ return __generator(this, function (_a) {
4181
+ switch (_a.label) {
4182
+ case 0:
4183
+ _loop_2 = function (i) {
4184
+ var enabled, source;
4185
+ return __generator(this, function (_a) {
4186
+ switch (_a.label) {
4187
+ case 0:
4188
+ enabled = params.enabled[i];
4189
+ source = params.sources.find(function (x) { return x.accountId === enabled.accountId && x.tilesetId === enabled.tilesetId; });
4190
+ if (!source) {
4191
+ console.error("Missing source for enabled imagery.", enabled);
4192
+ }
4193
+ return [4 /*yield*/, GetOrCreateLayer(params.viewer, params.apiGetter, {
4194
+ accountId: source.accountId,
4195
+ tilesetId: source.tilesetId,
4196
+ })];
4197
+ case 1:
4198
+ _a.sent();
4199
+ return [2 /*return*/];
4200
+ }
4201
+ });
4202
+ };
4203
+ i = 0;
4204
+ _a.label = 1;
4205
+ case 1:
4206
+ if (!(i < params.enabled.length)) return [3 /*break*/, 4];
4207
+ return [5 /*yield**/, _loop_2(i)];
4208
+ case 2:
4209
+ _a.sent();
4210
+ _a.label = 3;
4211
+ case 3:
4212
+ i++;
4213
+ return [3 /*break*/, 1];
4214
+ case 4:
4215
+ curEnabled = params.viewer.imageryLayers;
4216
+ toDisable = [];
4217
+ curEnabledArr = [];
4218
+ _loop_3 = function (i) {
4219
+ var layer = curEnabled.get(i);
4220
+ var meta = layer === null || layer === void 0 ? void 0 : layer._bMeta;
4221
+ var disable = !params.enabled.find(function (x) { return x.accountId === (meta === null || meta === void 0 ? void 0 : meta.accountId) && x.tilesetId === (meta === null || meta === void 0 ? void 0 : meta.tilesetId); });
4222
+ if (disable) {
4223
+ toDisable.push(layer);
4224
+ }
4225
+ else {
4226
+ curEnabledArr.push(layer);
4227
+ }
4228
+ };
4229
+ for (i = 0; i < curEnabled.length; i++) {
4230
+ _loop_3(i);
3976
4231
  }
3977
- }
3978
- return [2 /*return*/];
3979
- }
4232
+ for (i = 0; i < toDisable.length; i++) {
4233
+ params.viewer.imageryLayers.remove(toDisable[i]);
4234
+ }
4235
+ _loop_4 = function (i) {
4236
+ var enabled = params.enabled[i];
4237
+ var layer = curEnabledArr.find(function (x) { var _a, _b; return ((_a = x._bMeta) === null || _a === void 0 ? void 0 : _a.accountId) === enabled.accountId && ((_b = x._bMeta) === null || _b === void 0 ? void 0 : _b.tilesetId) === enabled.tilesetId; });
4238
+ if (layer) {
4239
+ params.viewer.imageryLayers.raiseToTop(layer);
4240
+ layer.alpha = Number(enabled.alpha);
4241
+ layer.brightness = Number(enabled.brightness);
4242
+ layer.contrast = Number(enabled.contrast);
4243
+ layer.hue = Number(enabled.hue);
4244
+ layer.saturation = Number(enabled.saturation);
4245
+ layer.gamma = Number(enabled.gamma);
4246
+ }
4247
+ };
4248
+ for (i = 0; i < params.enabled.length; i++) {
4249
+ _loop_4(i);
4250
+ }
4251
+ return [2 /*return*/];
4252
+ }
4253
+ });
3980
4254
  });
3981
- });
3982
- }
3983
- Map.RenderLegacyView = RenderLegacyView;
4255
+ }
4256
+ V2.Render = Render;
4257
+ })(V2 = Map.V2 || (Map.V2 = {}));
3984
4258
  })(Map = TileRenderEngine.Map || (TileRenderEngine.Map = {}));
3985
4259
  var Terrain;
3986
4260
  (function (Terrain) {
3987
- function Render(params) {
3988
- throw ("Not implemented");
3989
- }
3990
- Terrain.Render = Render;
3991
- function RenderLegacy(params) {
3992
- var _a;
3993
- var bId = createTerrainBId(params.data);
3994
- var curProvider = params.viewer.terrainProvider;
3995
- if (curProvider._bId && curProvider._bId === bId) {
3996
- return;
3997
- }
3998
- var provider = null;
3999
- if (isDefaultTerrain(params.data.Name)) {
4000
- var name_2 = prepLegacyName(params.data.Name);
4001
- switch (name_2) {
4002
- case EDefaultTerrain.CesiumWorldTerrain:
4003
- provider = Cesium.createWorldTerrain({
4004
- requestVertexNormals: true
4005
- });
4006
- break;
4007
- case EDefaultTerrain.Linz:
4008
- provider = new Cesium.CesiumTerrainProvider({
4009
- url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
4010
- requestVertexNormals: true
4011
- });
4012
- break;
4013
- case EDefaultTerrain.FlatTerrain:
4014
- provider = new Cesium.EllipsoidTerrainProvider();
4015
- break;
4261
+ var V1;
4262
+ (function (V1) {
4263
+ function Render(params) {
4264
+ var _a;
4265
+ var bId = createLegacyTerrId(params.data);
4266
+ var curProvider = params.viewer.terrainProvider;
4267
+ if (curProvider._bId && curProvider._bId === bId) {
4268
+ return;
4269
+ }
4270
+ var provider = null;
4271
+ if (isLegacyTerrainDefault(params.data.Name)) {
4272
+ var id = legacyTerrIdToDefaultId(params.data.Name);
4273
+ provider = renderDefaultTerrTile(id);
4274
+ }
4275
+ else if (params.data.SourceUrl) {
4276
+ provider = new Cesium.CesiumTerrainProvider({
4277
+ url: params.data.SourceUrl,
4278
+ requestWaterMask: params.data.RequestWaterMask,
4279
+ requestVertexNormals: true
4280
+ });
4281
+ }
4282
+ if (provider) {
4283
+ provider._bId = bId;
4284
+ provider._bName = (_a = params.data) === null || _a === void 0 ? void 0 : _a.Name;
4285
+ params.viewer.terrainProvider = provider;
4016
4286
  }
4017
4287
  }
4018
- else if (params.data.SourceUrl) {
4019
- provider = new Cesium.CesiumTerrainProvider({
4020
- url: params.data.SourceUrl,
4021
- requestWaterMask: params.data.RequestWaterMask,
4022
- requestVertexNormals: true
4288
+ V1.Render = Render;
4289
+ function RenderView(params) {
4290
+ var _a, _b;
4291
+ return __awaiter(this, void 0, void 0, function () {
4292
+ var api, view, bookmark, vSettings, bSettings, terrainTiles, terrainTile, terrainTileName, i, tile;
4293
+ return __generator(this, function (_c) {
4294
+ switch (_c.label) {
4295
+ case 0:
4296
+ api = params.apiGetter.getApi();
4297
+ return [4 /*yield*/, bruceModels.ProjectView.Get(api, params.viewId)];
4298
+ case 1:
4299
+ view = _c.sent();
4300
+ bookmark = null;
4301
+ if (!params.bookmarkId) return [3 /*break*/, 3];
4302
+ return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
4303
+ case 2:
4304
+ bookmark = (_c.sent());
4305
+ _c.label = 3;
4306
+ case 3:
4307
+ vSettings = view.Settings;
4308
+ bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
4309
+ terrainTiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumTerrainSources) !== null && _a !== void 0 ? _a : [];
4310
+ terrainTile = null;
4311
+ terrainTileName = null;
4312
+ if ((_b = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _b === void 0 ? void 0 : _b.terrain) {
4313
+ terrainTileName = bSettings.terrain;
4314
+ }
4315
+ else {
4316
+ terrainTileName = vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultTerrain;
4317
+ }
4318
+ return [4 /*yield*/, bruceModels.ProjectViewLegacyTile.MergeTerrainTemplateData(params.apiGetter, terrainTiles, (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumTerrainSources) == null)];
4319
+ case 4:
4320
+ _c.sent();
4321
+ for (i = 0; i < terrainTiles.length; i++) {
4322
+ tile = terrainTiles[i];
4323
+ if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
4324
+ terrainTile = tile;
4325
+ break;
4326
+ }
4327
+ }
4328
+ if (terrainTile) {
4329
+ Render({
4330
+ data: terrainTile,
4331
+ viewer: params.viewer,
4332
+ });
4333
+ }
4334
+ return [2 /*return*/];
4335
+ }
4336
+ });
4023
4337
  });
4024
4338
  }
4025
- if (provider) {
4026
- provider._bId = bId;
4027
- provider._bName = (_a = params.data) === null || _a === void 0 ? void 0 : _a.Name;
4028
- params.viewer.terrainProvider = provider;
4029
- }
4030
- }
4031
- Terrain.RenderLegacy = RenderLegacy;
4032
- function RenderLegacyView(params) {
4033
- var _a, _b, _c, _d, _e;
4034
- return __awaiter(this, void 0, void 0, function () {
4035
- var api, view, bookmark, terrainTiles, terrainTile, terrainTileName, i, tile;
4036
- return __generator(this, function (_f) {
4037
- switch (_f.label) {
4038
- case 0:
4039
- api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
4040
- return [4 /*yield*/, bruceModels.ProjectView.Get(api, params.viewId)];
4041
- case 1:
4042
- view = _f.sent();
4043
- bookmark = null;
4044
- if (!params.bookmarkId) return [3 /*break*/, 3];
4045
- return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
4046
- case 2:
4047
- bookmark = _f.sent();
4048
- _f.label = 3;
4049
- case 3:
4050
- terrainTiles = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.CesiumTerrainSources) !== null && _b !== void 0 ? _b : [];
4051
- terrainTile = null;
4052
- terrainTileName = null;
4053
- if ((_c = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _c === void 0 ? void 0 : _c.terrain) {
4054
- terrainTileName = bookmark.Settings.terrain;
4055
- }
4056
- else {
4057
- terrainTileName = (_d = view.Settings) === null || _d === void 0 ? void 0 : _d.DefaultTerrain;
4058
- }
4059
- return [4 /*yield*/, bruceModels.ProjectViewTileSource.MergeTerrainTemplateData(params.apiGetter, terrainTiles, ((_e = view.Settings) === null || _e === void 0 ? void 0 : _e.CesiumTerrainSources) == null)];
4060
- case 4:
4061
- _f.sent();
4062
- for (i = 0; i < terrainTiles.length; i++) {
4063
- tile = terrainTiles[i];
4064
- if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
4065
- terrainTile = tile;
4066
- break;
4339
+ V1.RenderView = RenderView;
4340
+ })(V1 = Terrain.V1 || (Terrain.V1 = {}));
4341
+ var V2;
4342
+ (function (V2) {
4343
+ function Render(params) {
4344
+ var _a;
4345
+ return __awaiter(this, void 0, void 0, function () {
4346
+ var enabledMeta, defaultTerr, provider, api, tileset, url, vertexes, settings;
4347
+ return __generator(this, function (_b) {
4348
+ switch (_b.label) {
4349
+ case 0:
4350
+ enabledMeta = (_a = params.viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a._bMeta;
4351
+ if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.source.tilesetId &&
4352
+ (enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.source.accountId) {
4353
+ return [2 /*return*/];
4067
4354
  }
4068
- }
4069
- if (terrainTile) {
4070
- TileRenderEngine.Terrain.RenderLegacy({
4071
- data: terrainTile,
4072
- viewer: params.viewer,
4073
- });
4074
- }
4075
- return [2 /*return*/];
4076
- }
4355
+ defaultTerr = params.source.accountId ? null : bruceModels.ProjectViewTile.DefaultTerrains.find(function (x) { return x.id === params.source.tilesetId; });
4356
+ provider = null;
4357
+ if (!defaultTerr) return [3 /*break*/, 1];
4358
+ provider = renderDefaultTerrTile(defaultTerr.id);
4359
+ return [3 /*break*/, 3];
4360
+ case 1:
4361
+ api = params.apiGetter.getApi(params.source.accountId);
4362
+ return [4 /*yield*/, bruceModels.Tileset.Get(api, params.source.tilesetId)];
4363
+ case 2:
4364
+ tileset = _b.sent();
4365
+ url = void 0;
4366
+ vertexes = true;
4367
+ if (tileset.type === bruceModels.Tileset.EType.Terrain) {
4368
+ url = bruceModels.Tileset.GetPublicFileUrl(api, tileset.id, "");
4369
+ }
4370
+ else if (tileset.type === bruceModels.Tileset.EType.ExternalTerrain) {
4371
+ settings = tileset.settings;
4372
+ url = settings.url;
4373
+ vertexes = settings.requestVertexNormals == null ? true : settings.requestVertexNormals;
4374
+ }
4375
+ else {
4376
+ console.error("Invalid tileset type.", tileset);
4377
+ }
4378
+ if (url) {
4379
+ provider = new Cesium.CesiumTerrainProvider({
4380
+ url: url,
4381
+ requestVertexNormals: vertexes
4382
+ });
4383
+ }
4384
+ _b.label = 3;
4385
+ case 3:
4386
+ if (provider) {
4387
+ provider._bMeta = {
4388
+ accountId: params.source.accountId,
4389
+ tilesetId: params.source.tilesetId
4390
+ };
4391
+ params.viewer.terrainProvider = provider;
4392
+ }
4393
+ return [2 /*return*/];
4394
+ }
4395
+ });
4077
4396
  });
4078
- });
4079
- }
4080
- Terrain.RenderLegacyView = RenderLegacyView;
4397
+ }
4398
+ V2.Render = Render;
4399
+ })(V2 = Terrain.V2 || (Terrain.V2 = {}));
4081
4400
  })(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
4082
4401
  })(exports.TileRenderEngine || (exports.TileRenderEngine = {}));
4083
4402
 
4084
- (function (ViewRenderEngine) {
4085
- function Render(params) {
4086
- var _a, _b, _c, _d, _e;
4087
- return __awaiter(this, void 0, void 0, function () {
4088
- var api, view, bookmark, frustum, scene, curFrustum, camera, pos, go, enabledItems, newItemIds, _i, enabledItems_1, id;
4089
- return __generator(this, function (_f) {
4090
- switch (_f.label) {
4091
- case 0:
4092
- api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
4093
- return [4 /*yield*/, bruceModels.ProjectView.Get(api, params.viewId)];
4094
- case 1:
4095
- view = _f.sent();
4096
- bookmark = null;
4097
- if (!params.bookmarkId) return [3 /*break*/, 3];
4098
- return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
4099
- case 2:
4100
- bookmark = _f.sent();
4101
- _f.label = 3;
4102
- case 3: return [4 /*yield*/, exports.TileRenderEngine.Terrain.RenderLegacyView({
4403
+ function renderV1(params, bookmark, view) {
4404
+ var _a, _b;
4405
+ return __awaiter(this, void 0, void 0, function () {
4406
+ var vSettings, bSettings, frustum, scene, curFrustum, camera, pos, go, enabledItems, newItemIds, _i, enabledItems_1, id;
4407
+ return __generator(this, function (_c) {
4408
+ switch (_c.label) {
4409
+ case 0:
4410
+ vSettings = view.Settings;
4411
+ bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
4412
+ return [4 /*yield*/, exports.TileRenderEngine.Terrain.V1.RenderView({
4103
4413
  apiGetter: params.apiGetter,
4104
4414
  bookmarkId: params.bookmarkId,
4105
4415
  viewer: params.manager.Viewer,
4106
4416
  viewId: params.viewId,
4107
4417
  })];
4108
- case 4:
4109
- _f.sent();
4110
- return [4 /*yield*/, exports.TileRenderEngine.Map.RenderLegacyView({
4111
- apiGetter: params.apiGetter,
4112
- bookmarkId: params.bookmarkId,
4113
- viewer: params.manager.Viewer,
4114
- viewId: params.viewId,
4115
- ignoreIds: []
4116
- })];
4117
- case 5:
4118
- _f.sent();
4119
- frustum = (_a = bookmark.Settings) === null || _a === void 0 ? void 0 : _a.cameraFrustum;
4120
- if (frustum == null) {
4121
- frustum = bruceModels.Camera.EFrustum.Perspective;
4418
+ case 1:
4419
+ _c.sent();
4420
+ return [4 /*yield*/, exports.TileRenderEngine.Map.V1.RenderView({
4421
+ apiGetter: params.apiGetter,
4422
+ bookmarkId: params.bookmarkId,
4423
+ viewer: params.manager.Viewer,
4424
+ viewId: params.viewId,
4425
+ ignoreIds: []
4426
+ })];
4427
+ case 2:
4428
+ _c.sent();
4429
+ frustum = bSettings === null || bSettings === void 0 ? void 0 : bSettings.cameraFrustum;
4430
+ if (frustum == null) {
4431
+ frustum = bruceModels.Camera.EFrustum.Perspective;
4432
+ }
4433
+ scene = params.manager.Viewer.scene;
4434
+ curFrustum = scene.camera.frustum instanceof Cesium.OrthographicFrustum ? bruceModels.Camera.EFrustum.Orthographic : bruceModels.Camera.EFrustum.Perspective;
4435
+ if (curFrustum != frustum) {
4436
+ if (frustum == bruceModels.Camera.EFrustum.Perspective) {
4437
+ scene.camera.switchToPerspectiveFrustum();
4438
+ scene.screenSpaceCameraController.enableTilt = true;
4122
4439
  }
4123
- scene = params.manager.Viewer.scene;
4124
- curFrustum = scene.camera.frustum instanceof Cesium.OrthographicFrustum ? bruceModels.Camera.EFrustum.Orthographic : bruceModels.Camera.EFrustum.Perspective;
4125
- if (curFrustum != frustum) {
4126
- if (frustum == bruceModels.Camera.EFrustum.Perspective) {
4127
- scene.camera.switchToPerspectiveFrustum();
4128
- scene.screenSpaceCameraController.enableTilt = true;
4129
- }
4130
- else {
4131
- scene.camera.switchToOrthographicFrustum();
4132
- scene.screenSpaceCameraController.enableTilt = false;
4133
- }
4134
- params.skipTransition = true;
4440
+ else {
4441
+ scene.camera.switchToOrthographicFrustum();
4442
+ scene.screenSpaceCameraController.enableTilt = false;
4443
+ }
4444
+ params.skipTransition = true;
4445
+ }
4446
+ camera = bookmark.Camera;
4447
+ pos = Cesium.Cartesian3.fromDegrees(+camera.position.longitude, +camera.position.latitude, +camera.position.height);
4448
+ params.manager.Viewer.scene.camera.flyTo({
4449
+ destination: pos,
4450
+ orientation: {
4451
+ heading: +camera.heading,
4452
+ pitch: +camera.pitch,
4453
+ roll: +camera.roll
4454
+ },
4455
+ duration: params.skipTransition ? 0 : 2
4456
+ });
4457
+ go = (_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _a === void 0 ? void 0 : _a.groundOcclusion;
4458
+ if (go == null) {
4459
+ go = vSettings === null || vSettings === void 0 ? void 0 : vSettings.GroundOcclusion;
4460
+ }
4461
+ if (go == null) {
4462
+ go = false;
4463
+ }
4464
+ params.manager.Viewer.scene.globe.depthTestAgainstTerrain = go;
4465
+ enabledItems = params.manager.GetEnabledItemIds();
4466
+ newItemIds = (_b = bSettings === null || bSettings === void 0 ? void 0 : bSettings.selectedItemIds) !== null && _b !== void 0 ? _b : [];
4467
+ for (_i = 0, enabledItems_1 = enabledItems; _i < enabledItems_1.length; _i++) {
4468
+ id = enabledItems_1[_i];
4469
+ if (newItemIds.indexOf(id) === -1) {
4470
+ params.manager.RemoveItemById(id);
4471
+ }
4472
+ }
4473
+ if (!params.bookmarkId) return [3 /*break*/, 4];
4474
+ return [4 /*yield*/, exports.RenderHelper.RenderBookmarkItems({
4475
+ apiGetter: params.apiGetter,
4476
+ manager: params.manager,
4477
+ }, params.viewId, params.bookmarkId)];
4478
+ case 3:
4479
+ _c.sent();
4480
+ _c.label = 4;
4481
+ case 4: return [2 /*return*/];
4482
+ }
4483
+ });
4484
+ });
4485
+ }
4486
+ function renderV2(params, bookmark, view) {
4487
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
4488
+ return __awaiter(this, void 0, void 0, function () {
4489
+ var viewer, scene, vSettings, bSettings, defaults, camera, newLens, curLens, transition, pos, gOcclusion, terrain, source, imagery, iSources, curEnabled, newItemIds, _i, curEnabled_1, id;
4490
+ return __generator(this, function (_p) {
4491
+ switch (_p.label) {
4492
+ case 0:
4493
+ viewer = params.manager.Viewer;
4494
+ scene = viewer.scene;
4495
+ vSettings = view.Settings;
4496
+ bSettings = ((_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) !== null && _a !== void 0 ? _a : {});
4497
+ defaults = (_b = vSettings.defaults) !== null && _b !== void 0 ? _b : {};
4498
+ camera = ((_c = bookmark.Camera) !== null && _c !== void 0 ? _c : {});
4499
+ newLens = camera.cameraFrustum;
4500
+ if (newLens == null) {
4501
+ newLens = (_d = defaults.camera) === null || _d === void 0 ? void 0 : _d.cameraFrustum;
4502
+ }
4503
+ if (newLens == null) {
4504
+ // TODO: Need global default.
4505
+ newLens = bruceModels.Camera.EFrustum.Perspective;
4506
+ }
4507
+ curLens = scene.camera.frustum instanceof Cesium.OrthographicFrustum ?
4508
+ bruceModels.Camera.EFrustum.Orthographic :
4509
+ bruceModels.Camera.EFrustum.Perspective;
4510
+ if (newLens != curLens) {
4511
+ if (newLens == bruceModels.Camera.EFrustum.Perspective) {
4512
+ scene.camera.switchToPerspectiveFrustum();
4513
+ scene.screenSpaceCameraController.enableTilt = true;
4514
+ }
4515
+ else {
4516
+ scene.camera.switchToOrthographicFrustum();
4517
+ scene.screenSpaceCameraController.enableTilt = false;
4135
4518
  }
4136
- camera = bookmark.Camera;
4137
- pos = Cesium.Cartesian3.fromDegrees(+camera.position.longitude, +camera.position.latitude, +camera.position.height);
4138
- params.manager.Viewer.scene.camera.flyTo({
4519
+ }
4520
+ transition = params.skipTransition ? 0 : curLens === newLens ? camera.transition : 0;
4521
+ if (transition == null) {
4522
+ transition = (_e = defaults.camera) === null || _e === void 0 ? void 0 : _e.transition;
4523
+ }
4524
+ if (transition == null) {
4525
+ // TODO: Need global default.
4526
+ transition = 2000;
4527
+ }
4528
+ if (bruceModels.Carto.ValidateCarto(camera)) {
4529
+ pos = Cesium.Cartesian3.fromDegrees(+camera.longitude, +camera.latitude, +camera.altitude);
4530
+ scene.camera.flyTo({
4139
4531
  destination: pos,
4140
4532
  orientation: {
4141
4533
  heading: +camera.heading,
4142
4534
  pitch: +camera.pitch,
4143
4535
  roll: +camera.roll
4144
4536
  },
4145
- duration: params.skipTransition ? 0 : 2
4537
+ duration: transition != 0 ? transition / 1000 : 0
4146
4538
  });
4147
- go = (_b = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _b === void 0 ? void 0 : _b.groundOcclusion;
4148
- if (go == null) {
4149
- go = (_c = view.Settings) === null || _c === void 0 ? void 0 : _c.GroundOcclusion;
4150
- }
4151
- if (go == null) {
4152
- go = false;
4153
- }
4154
- params.manager.Viewer.scene.globe.depthTestAgainstTerrain = go;
4155
- enabledItems = params.manager.GetEnabledItemIds();
4156
- newItemIds = (_e = (_d = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _d === void 0 ? void 0 : _d.selectedItemIds) !== null && _e !== void 0 ? _e : [];
4157
- for (_i = 0, enabledItems_1 = enabledItems; _i < enabledItems_1.length; _i++) {
4158
- id = enabledItems_1[_i];
4159
- if (newItemIds.indexOf(id) === -1) {
4160
- params.manager.RemoveItemById(id);
4539
+ }
4540
+ gOcclusion = bSettings === null || bSettings === void 0 ? void 0 : bSettings.groundOcclusion;
4541
+ if (gOcclusion == null) {
4542
+ gOcclusion = (_f = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _f === void 0 ? void 0 : _f.groundOcclusion;
4543
+ }
4544
+ if (gOcclusion == null) {
4545
+ // TODO: Need global default.
4546
+ gOcclusion = true;
4547
+ }
4548
+ scene.globe.depthTestAgainstTerrain = Boolean(gOcclusion);
4549
+ terrain = (_g = bSettings === null || bSettings === void 0 ? void 0 : bSettings.terrain) !== null && _g !== void 0 ? _g : (_h = defaults.settings) === null || _h === void 0 ? void 0 : _h.terrain;
4550
+ if (!terrain) return [3 /*break*/, 2];
4551
+ source = (_j = vSettings.terrains) === null || _j === void 0 ? void 0 : _j.find(function (x) { return x.accountId === terrain.accountId && x.tilesetId === terrain.tilesetId; });
4552
+ if (!source) return [3 /*break*/, 2];
4553
+ return [4 /*yield*/, exports.TileRenderEngine.Terrain.V2.Render({
4554
+ apiGetter: params.apiGetter,
4555
+ enabled: terrain,
4556
+ source: source,
4557
+ viewer: params.manager.Viewer,
4558
+ })];
4559
+ case 1:
4560
+ _p.sent();
4561
+ _p.label = 2;
4562
+ case 2:
4563
+ imagery = (_k = bSettings.imagery) !== null && _k !== void 0 ? _k : (_l = defaults.settings) === null || _l === void 0 ? void 0 : _l.imagery;
4564
+ if (imagery == null) {
4565
+ // TODO: Need global default.
4566
+ imagery = [
4567
+ {
4568
+ accountId: null,
4569
+ tilesetId: bruceModels.ProjectViewTile.EDefaultImagery.MapboxSatellite,
4570
+ alpha: 1,
4571
+ brightness: 1,
4572
+ contrast: 1,
4573
+ gamma: 1,
4574
+ hue: 0,
4575
+ saturation: 1
4161
4576
  }
4577
+ ];
4578
+ }
4579
+ iSources = (_m = vSettings.imageries) === null || _m === void 0 ? void 0 : _m.filter(function (x) {
4580
+ return imagery.find(function (y) {
4581
+ y.accountId === x.accountId && y.tilesetId === x.tilesetId;
4582
+ });
4583
+ });
4584
+ return [4 /*yield*/, exports.TileRenderEngine.Map.V2.Render({
4585
+ apiGetter: params.apiGetter,
4586
+ enabled: imagery,
4587
+ sources: iSources,
4588
+ viewer: params.manager.Viewer,
4589
+ })];
4590
+ case 3:
4591
+ _p.sent();
4592
+ curEnabled = params.manager.GetEnabledItemIds();
4593
+ newItemIds = (_o = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _o !== void 0 ? _o : [];
4594
+ _i = 0, curEnabled_1 = curEnabled;
4595
+ _p.label = 4;
4596
+ case 4:
4597
+ if (!(_i < curEnabled_1.length)) return [3 /*break*/, 7];
4598
+ id = curEnabled_1[_i];
4599
+ if (!(newItemIds.indexOf(id) === -1)) return [3 /*break*/, 6];
4600
+ return [4 /*yield*/, params.manager.RemoveItemById(id)];
4601
+ case 5:
4602
+ _p.sent();
4603
+ _p.label = 6;
4604
+ case 6:
4605
+ _i++;
4606
+ return [3 /*break*/, 4];
4607
+ case 7:
4608
+ if (!params.bookmarkId) return [3 /*break*/, 9];
4609
+ return [4 /*yield*/, exports.RenderHelper.RenderBookmarkItems({
4610
+ apiGetter: params.apiGetter,
4611
+ manager: params.manager,
4612
+ }, params.viewId, params.bookmarkId)];
4613
+ case 8:
4614
+ _p.sent();
4615
+ _p.label = 9;
4616
+ case 9: return [2 /*return*/];
4617
+ }
4618
+ });
4619
+ });
4620
+ }
4621
+ (function (ViewRenderEngine) {
4622
+ function Render(params) {
4623
+ return __awaiter(this, void 0, void 0, function () {
4624
+ var api, view, bookmark, version;
4625
+ return __generator(this, function (_a) {
4626
+ switch (_a.label) {
4627
+ case 0:
4628
+ api = params.apiGetter.getApi();
4629
+ return [4 /*yield*/, bruceModels.ProjectView.Get(api, params.viewId)];
4630
+ case 1:
4631
+ view = _a.sent();
4632
+ bookmark = null;
4633
+ if (!params.bookmarkId) return [3 /*break*/, 3];
4634
+ return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
4635
+ case 2:
4636
+ bookmark = _a.sent();
4637
+ _a.label = 3;
4638
+ case 3:
4639
+ if (bookmark && view.DataVersion != bookmark.DataVersion) {
4640
+ throw new Error("View and bookmark settings version mismatch.");
4162
4641
  }
4163
- if (!params.bookmarkId) return [3 /*break*/, 7];
4164
- return [4 /*yield*/, exports.RenderHelper.RenderBookmarkItems({
4165
- apiGetter: params.apiGetter,
4166
- manager: params.manager,
4167
- }, params.viewId, params.bookmarkId)];
4642
+ version = view.DataVersion;
4643
+ if (!(version === 2)) return [3 /*break*/, 5];
4644
+ return [4 /*yield*/, renderV2(params, bookmark, view)];
4645
+ case 4:
4646
+ _a.sent();
4647
+ return [3 /*break*/, 7];
4648
+ case 5: return [4 /*yield*/, renderV1(params, bookmark, view)];
4168
4649
  case 6:
4169
- _f.sent();
4170
- _f.label = 7;
4650
+ _a.sent();
4651
+ _a.label = 7;
4171
4652
  case 7: return [2 /*return*/];
4172
4653
  }
4173
4654
  });