bruce-cesium 0.3.6 → 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.
- package/dist/bruce-cesium.es5.js +1018 -559
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +1015 -556
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +30 -30
- package/dist/lib/rendering/entity-render-engine.js +848 -848
- package/dist/lib/rendering/entity-render-engine.js.map +1 -1
- package/dist/lib/rendering/menu-item-manager.js +252 -252
- package/dist/lib/rendering/render-addons/measure-addon.js +186 -186
- package/dist/lib/rendering/render-addons/render-addon.js +2 -2
- package/dist/lib/rendering/render-helper.js +296 -279
- package/dist/lib/rendering/render-helper.js.map +1 -1
- package/dist/lib/rendering/render-managers/common/shared-getters.js +31 -31
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +146 -146
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +143 -143
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +234 -234
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +139 -139
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/render-manager.js +50 -50
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +236 -236
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +320 -320
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -1
- package/dist/lib/rendering/tile-render-engine.js +822 -542
- package/dist/lib/rendering/tile-render-engine.js.map +1 -1
- package/dist/lib/rendering/tileset-render-engine.js +499 -499
- package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
- package/dist/lib/rendering/view-render-engine.js +300 -138
- package/dist/lib/rendering/view-render-engine.js.map +1 -1
- package/dist/lib/rendering/visuals-register.js +394 -394
- package/dist/lib/utils/drawing-utils.js +42 -42
- package/dist/lib/utils/entity-utils.js +99 -99
- package/dist/lib/utils/measure-utils.js +34 -34
- package/dist/lib/utils/view-utils.js +34 -34
- package/dist/lib/utils/view-utils.js.map +1 -1
- package/dist/lib/viewer/cesium-view-monitor.js +231 -231
- package/dist/lib/viewer/viewer-utils.js +85 -85
- package/dist/types/rendering/render-helper.d.ts +1 -1
- package/dist/types/rendering/tile-render-engine.d.ts +60 -44
- package/dist/types/utils/view-utils.d.ts +1 -1
- package/package.json +76 -73
package/dist/bruce-cesium.umd.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
2197
|
+
api = this.apiGetter.getApi();
|
|
2198
2198
|
return [4 /*yield*/, bruceModels.Entity.Get(api, id)];
|
|
2199
2199
|
case 1:
|
|
2200
2200
|
entity = _b.sent();
|
|
@@ -2290,7 +2290,7 @@
|
|
|
2290
2290
|
}
|
|
2291
2291
|
TilesetRenderEngine.ApplySettings = ApplySettings;
|
|
2292
2292
|
function Render(params) {
|
|
2293
|
-
var api = params.apiGetter.getApi(params.apiGetter.accountId
|
|
2293
|
+
var api = params.apiGetter.getApi(params.apiGetter.accountId);
|
|
2294
2294
|
if (params.tileset.type == bruceModels.Tileset.EType.Cad) {
|
|
2295
2295
|
var cTileset_1 = new Cesium.Cesium3DTileset({
|
|
2296
2296
|
url: bruceModels.Tileset.GetPublicFileUrl(api, params.tileset.id, "tileset.json") + "?generation=" + params.tileset.generateVersion
|
|
@@ -2712,7 +2712,7 @@
|
|
|
2712
2712
|
if (!tilesetId) {
|
|
2713
2713
|
return [2 /*return*/];
|
|
2714
2714
|
}
|
|
2715
|
-
api = this.apiGetter.getApi(
|
|
2715
|
+
api = this.apiGetter.getApi();
|
|
2716
2716
|
return [4 /*yield*/, bruceModels.Tileset.Get(api, tilesetId)];
|
|
2717
2717
|
case 1:
|
|
2718
2718
|
tileset = _b.sent();
|
|
@@ -3123,7 +3123,7 @@
|
|
|
3123
3123
|
for (i = 0; i < features.length; i++) {
|
|
3124
3124
|
_loop_1(i);
|
|
3125
3125
|
}
|
|
3126
|
-
api = this.apiGetter.getApi(
|
|
3126
|
+
api = this.apiGetter.getApi();
|
|
3127
3127
|
return [4 /*yield*/, bruceModels.EntitySource.GetEntityIdsBySourceKeys(api, this.sourceId, featureIds)];
|
|
3128
3128
|
case 1:
|
|
3129
3129
|
bIds = _a.sent();
|
|
@@ -3473,73 +3473,6 @@
|
|
|
3473
3473
|
});
|
|
3474
3474
|
}
|
|
3475
3475
|
RenderHelper.RenderEntityFilter = RenderEntityFilter;
|
|
3476
|
-
function RenderBookmarkItems(params, viewId, bookmarkId) {
|
|
3477
|
-
var _a, _b, _c, _d;
|
|
3478
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
3479
|
-
function traverseItems(item) {
|
|
3480
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
3481
|
-
var itemId, i;
|
|
3482
|
-
return __generator(this, function (_a) {
|
|
3483
|
-
switch (_a.label) {
|
|
3484
|
-
case 0:
|
|
3485
|
-
if (!enabledItemIds.includes(item.id)) return [3 /*break*/, 2];
|
|
3486
|
-
return [4 /*yield*/, params.manager.RenderItem({
|
|
3487
|
-
item: item,
|
|
3488
|
-
apiGetter: params.apiGetter
|
|
3489
|
-
})];
|
|
3490
|
-
case 1:
|
|
3491
|
-
itemId = _a.sent();
|
|
3492
|
-
renderedItemIds.push(itemId);
|
|
3493
|
-
_a.label = 2;
|
|
3494
|
-
case 2:
|
|
3495
|
-
if (!item.Children) return [3 /*break*/, 6];
|
|
3496
|
-
i = 0;
|
|
3497
|
-
_a.label = 3;
|
|
3498
|
-
case 3:
|
|
3499
|
-
if (!(i < item.Children.length)) return [3 /*break*/, 6];
|
|
3500
|
-
return [4 /*yield*/, traverseItems(item.Children[i])];
|
|
3501
|
-
case 4:
|
|
3502
|
-
_a.sent();
|
|
3503
|
-
_a.label = 5;
|
|
3504
|
-
case 5:
|
|
3505
|
-
i++;
|
|
3506
|
-
return [3 /*break*/, 3];
|
|
3507
|
-
case 6: return [2 /*return*/];
|
|
3508
|
-
}
|
|
3509
|
-
});
|
|
3510
|
-
});
|
|
3511
|
-
}
|
|
3512
|
-
var api, view, bookmark, items, enabledItemIds, renderedItemIds, i;
|
|
3513
|
-
return __generator(this, function (_e) {
|
|
3514
|
-
switch (_e.label) {
|
|
3515
|
-
case 0:
|
|
3516
|
-
api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
|
|
3517
|
-
return [4 /*yield*/, bruceModels.ProjectView.Get(api, viewId)];
|
|
3518
|
-
case 1:
|
|
3519
|
-
view = _e.sent();
|
|
3520
|
-
return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, viewId, bookmarkId)];
|
|
3521
|
-
case 2:
|
|
3522
|
-
bookmark = _e.sent();
|
|
3523
|
-
items = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.LayersMenu) !== null && _b !== void 0 ? _b : [];
|
|
3524
|
-
enabledItemIds = (_d = (_c = bookmark.Settings) === null || _c === void 0 ? void 0 : _c.selectedItemIds) !== null && _d !== void 0 ? _d : [];
|
|
3525
|
-
renderedItemIds = [];
|
|
3526
|
-
i = 0;
|
|
3527
|
-
_e.label = 3;
|
|
3528
|
-
case 3:
|
|
3529
|
-
if (!(i < items.length)) return [3 /*break*/, 6];
|
|
3530
|
-
return [4 /*yield*/, traverseItems(items[i])];
|
|
3531
|
-
case 4:
|
|
3532
|
-
_e.sent();
|
|
3533
|
-
_e.label = 5;
|
|
3534
|
-
case 5:
|
|
3535
|
-
i++;
|
|
3536
|
-
return [3 /*break*/, 3];
|
|
3537
|
-
case 6: return [2 /*return*/, renderedItemIds];
|
|
3538
|
-
}
|
|
3539
|
-
});
|
|
3540
|
-
});
|
|
3541
|
-
}
|
|
3542
|
-
RenderHelper.RenderBookmarkItems = RenderBookmarkItems;
|
|
3543
3476
|
function RenderMenuItems(params, menuItems) {
|
|
3544
3477
|
return __awaiter(this, void 0, void 0, function () {
|
|
3545
3478
|
var renderedItemIds, i, menuItem, itemId;
|
|
@@ -3575,7 +3508,7 @@
|
|
|
3575
3508
|
return __generator(this, function (_a) {
|
|
3576
3509
|
switch (_a.label) {
|
|
3577
3510
|
case 0:
|
|
3578
|
-
api = params.apiGetter.getApi(
|
|
3511
|
+
api = params.apiGetter.getApi();
|
|
3579
3512
|
return [4 /*yield*/, bruceModels.Tileset.Get(api, tilesetId)];
|
|
3580
3513
|
case 1:
|
|
3581
3514
|
tileset = _a.sent();
|
|
@@ -3602,9 +3535,101 @@
|
|
|
3602
3535
|
});
|
|
3603
3536
|
}
|
|
3604
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;
|
|
3605
3622
|
})(exports.RenderHelper || (exports.RenderHelper = {}));
|
|
3606
3623
|
|
|
3624
|
+
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
3625
|
+
var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
|
|
3607
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
|
+
*/
|
|
3608
3633
|
function prepLegacyName(name) {
|
|
3609
3634
|
if (!name) {
|
|
3610
3635
|
return "";
|
|
@@ -3617,26 +3642,68 @@
|
|
|
3617
3642
|
}
|
|
3618
3643
|
return name;
|
|
3619
3644
|
}
|
|
3620
|
-
|
|
3621
|
-
|
|
3622
|
-
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
|
|
3629
|
-
|
|
3630
|
-
|
|
3631
|
-
|
|
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) {
|
|
3632
3678
|
name = prepLegacyName(name);
|
|
3633
|
-
|
|
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;
|
|
3634
3696
|
}
|
|
3635
|
-
|
|
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) {
|
|
3636
3703
|
if (!source) {
|
|
3637
3704
|
return "";
|
|
3638
3705
|
}
|
|
3639
|
-
if (
|
|
3706
|
+
if (isLegacyTerrainDefault(source.Name)) {
|
|
3640
3707
|
return source.Name;
|
|
3641
3708
|
}
|
|
3642
3709
|
if (source.SourceUrl) {
|
|
@@ -3644,11 +3711,16 @@
|
|
|
3644
3711
|
}
|
|
3645
3712
|
return "";
|
|
3646
3713
|
}
|
|
3647
|
-
|
|
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) {
|
|
3648
3720
|
if (!source) {
|
|
3649
3721
|
return "";
|
|
3650
3722
|
}
|
|
3651
|
-
if (
|
|
3723
|
+
if (isLegacyImageryDefault(source.Name)) {
|
|
3652
3724
|
return source.Name;
|
|
3653
3725
|
}
|
|
3654
3726
|
if (source.SourceUrl) {
|
|
@@ -3656,43 +3728,11 @@
|
|
|
3656
3728
|
}
|
|
3657
3729
|
return "";
|
|
3658
3730
|
}
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
EDefaultImagery["MapboxSatellite"] = "mapboxsatellite";
|
|
3665
|
-
EDefaultImagery["MapBoxStreets"] = "mapboxstreets";
|
|
3666
|
-
EDefaultImagery["MapBoxStreetsClassic"] = "mapboxstreetsclassic";
|
|
3667
|
-
EDefaultImagery["EsriWorldImagery"] = "esriworldimagery";
|
|
3668
|
-
EDefaultImagery["EsriWorldStreetMap"] = "esriworldstreetmap";
|
|
3669
|
-
EDefaultImagery["EsriNationalGeographic"] = "esrinationalgeographic";
|
|
3670
|
-
EDefaultImagery["OpenStreetMap"] = "openstreetmap";
|
|
3671
|
-
EDefaultImagery["StamenWaterColor"] = "stamenwatercolor";
|
|
3672
|
-
EDefaultImagery["StamenToner"] = "stamentoner";
|
|
3673
|
-
EDefaultImagery["Grid"] = "grid";
|
|
3674
|
-
})(EDefaultImagery || (EDefaultImagery = {}));
|
|
3675
|
-
var DEFAULT_IMAGERY_NAMES = [
|
|
3676
|
-
EDefaultImagery.BingMapsAerial,
|
|
3677
|
-
EDefaultImagery.BingMapsAerialWithLabels,
|
|
3678
|
-
EDefaultImagery.BingMapsRoads,
|
|
3679
|
-
EDefaultImagery.MapboxSatellite,
|
|
3680
|
-
EDefaultImagery.MapBoxStreets,
|
|
3681
|
-
EDefaultImagery.MapBoxStreetsClassic,
|
|
3682
|
-
EDefaultImagery.EsriWorldImagery,
|
|
3683
|
-
EDefaultImagery.EsriWorldStreetMap,
|
|
3684
|
-
EDefaultImagery.EsriNationalGeographic,
|
|
3685
|
-
EDefaultImagery.OpenStreetMap,
|
|
3686
|
-
EDefaultImagery.StamenWaterColor,
|
|
3687
|
-
EDefaultImagery.StamenToner,
|
|
3688
|
-
EDefaultImagery.Grid
|
|
3689
|
-
];
|
|
3690
|
-
function isDefaultImagery(name) {
|
|
3691
|
-
name = prepLegacyName(name);
|
|
3692
|
-
return DEFAULT_IMAGERY_NAMES.includes(name);
|
|
3693
|
-
}
|
|
3694
|
-
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
3695
|
-
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
|
+
*/
|
|
3696
3736
|
function gatherEnabledImageries(viewer) {
|
|
3697
3737
|
var collection = viewer.imageryLayers;
|
|
3698
3738
|
var layers = [];
|
|
@@ -3702,6 +3742,154 @@
|
|
|
3702
3742
|
}
|
|
3703
3743
|
return layers;
|
|
3704
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
|
+
}
|
|
3705
3893
|
(function (TileRenderEngine) {
|
|
3706
3894
|
/**
|
|
3707
3895
|
* Legacy data did name comparisons instead of ids.
|
|
@@ -3717,479 +3905,750 @@
|
|
|
3717
3905
|
TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
|
|
3718
3906
|
var Map;
|
|
3719
3907
|
(function (Map) {
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
|
|
3725
|
-
|
|
3726
|
-
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
switch (prepLegacyName(tile.Name)) {
|
|
3735
|
-
case EDefaultImagery.BingMapsAerial:
|
|
3736
|
-
// TODO: Read account key if available.
|
|
3737
|
-
provider = new Cesium.BingMapsImageryProvider({
|
|
3738
|
-
url: "https://dev.virtualearth.net",
|
|
3739
|
-
mapStyle: Cesium.BingMapsStyle.AERIAL,
|
|
3740
|
-
key: DEFAULT_BING_KEY
|
|
3741
|
-
});
|
|
3742
|
-
break;
|
|
3743
|
-
case EDefaultImagery.BingMapsAerialWithLabels:
|
|
3744
|
-
// TODO: Read account key if available.
|
|
3745
|
-
provider = new Cesium.BingMapsImageryProvider({
|
|
3746
|
-
url: "https://dev.virtualearth.net",
|
|
3747
|
-
mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS,
|
|
3748
|
-
key: DEFAULT_BING_KEY
|
|
3749
|
-
});
|
|
3750
|
-
break;
|
|
3751
|
-
case EDefaultImagery.BingMapsRoads:
|
|
3752
|
-
// TODO: Read account key if available.
|
|
3753
|
-
provider = new Cesium.BingMapsImageryProvider({
|
|
3754
|
-
url: "https://dev.virtualearth.net",
|
|
3755
|
-
mapStyle: Cesium.BingMapsStyle.ROAD_ON_DEMAND,
|
|
3756
|
-
key: DEFAULT_BING_KEY
|
|
3757
|
-
});
|
|
3758
|
-
break;
|
|
3759
|
-
case EDefaultImagery.MapboxSatellite:
|
|
3760
|
-
// TODO: Read account key if available.
|
|
3761
|
-
provider = new Cesium.MapboxImageryProvider({
|
|
3762
|
-
mapId: "mapbox.satellite",
|
|
3763
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
3764
|
-
});
|
|
3765
|
-
break;
|
|
3766
|
-
case EDefaultImagery.MapBoxStreets:
|
|
3767
|
-
// TODO: Read account key if available.
|
|
3768
|
-
provider = new Cesium.MapboxImageryProvider({
|
|
3769
|
-
mapId: "satellite-streets-v11",
|
|
3770
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
3771
|
-
});
|
|
3772
|
-
break;
|
|
3773
|
-
case EDefaultImagery.MapBoxStreetsClassic:
|
|
3774
|
-
// TODO: Read account key if available.
|
|
3775
|
-
provider = new Cesium.MapboxImageryProvider({
|
|
3776
|
-
mapId: "streets-v11",
|
|
3777
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
3778
|
-
});
|
|
3779
|
-
break;
|
|
3780
|
-
case EDefaultImagery.EsriWorldImagery:
|
|
3781
|
-
provider = new Cesium.ArcGisMapServerImageryProvider({
|
|
3782
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
|
|
3783
|
-
enablePickFeatures: false
|
|
3784
|
-
});
|
|
3785
|
-
break;
|
|
3786
|
-
case EDefaultImagery.EsriWorldStreetMap:
|
|
3787
|
-
provider = new Cesium.ArcGisMapServerImageryProvider({
|
|
3788
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
|
|
3789
|
-
enablePickFeatures: false
|
|
3790
|
-
});
|
|
3791
|
-
break;
|
|
3792
|
-
case EDefaultImagery.EsriNationalGeographic:
|
|
3793
|
-
provider = new Cesium.ArcGisMapServerImageryProvider({
|
|
3794
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
|
|
3795
|
-
enablePickFeatures: false
|
|
3796
|
-
});
|
|
3797
|
-
break;
|
|
3798
|
-
case EDefaultImagery.OpenStreetMap:
|
|
3799
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
3800
|
-
url: "https://a.tile.openstreetmap.org/"
|
|
3801
|
-
});
|
|
3802
|
-
break;
|
|
3803
|
-
case EDefaultImagery.StamenWaterColor:
|
|
3804
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
3805
|
-
url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
|
|
3806
|
-
});
|
|
3807
|
-
break;
|
|
3808
|
-
case EDefaultImagery.StamenToner:
|
|
3809
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
3810
|
-
url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
|
|
3811
|
-
});
|
|
3812
|
-
break;
|
|
3813
|
-
case EDefaultImagery.Grid:
|
|
3814
|
-
provider = new Cesium.GridImageryProvider({
|
|
3815
|
-
tilingScheme: new Cesium.GeographicTilingScheme(),
|
|
3816
|
-
cells: 0,
|
|
3817
|
-
color: Cesium.Color.fromCssColorString("rgb(97, 151, 237)"),
|
|
3818
|
-
glowColor: Cesium.Color.fromCssColorString("rgb(54, 54, 54)"),
|
|
3819
|
-
glowWidth: 4,
|
|
3820
|
-
backgroundColor: Cesium.Color.TRANSPARENT,
|
|
3821
|
-
tileWidth: 256,
|
|
3822
|
-
tileHeight: 256,
|
|
3823
|
-
canvasSize: 256
|
|
3824
|
-
});
|
|
3825
|
-
break;
|
|
3826
|
-
}
|
|
3827
|
-
if (provider) {
|
|
3828
|
-
layer = new Cesium.ImageryLayer(provider);
|
|
3829
|
-
}
|
|
3830
|
-
}
|
|
3831
|
-
else if (tile.SourceUrl) {
|
|
3832
|
-
var provider = null;
|
|
3833
|
-
var min = tile.Minimum;
|
|
3834
|
-
var max = tile.Maximum;
|
|
3835
|
-
if (min != undefined && min <= -1) {
|
|
3836
|
-
min = undefined;
|
|
3837
|
-
}
|
|
3838
|
-
if (max != undefined && max <= -1) {
|
|
3839
|
-
max = undefined;
|
|
3840
|
-
}
|
|
3841
|
-
switch (tile.Type) {
|
|
3842
|
-
case "BruceImagery":
|
|
3843
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
3844
|
-
url: tile.SourceUrl,
|
|
3845
|
-
tileHeight: 256,
|
|
3846
|
-
tileWidth: 256
|
|
3847
|
-
});
|
|
3848
|
-
break;
|
|
3849
|
-
case "ArcGisImagery":
|
|
3850
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
3851
|
-
url: tile.SourceUrl,
|
|
3852
|
-
fileExtension: tile.FileExtension,
|
|
3853
|
-
minimumLevel: min,
|
|
3854
|
-
maximumLevel: max
|
|
3855
|
-
});
|
|
3856
|
-
break;
|
|
3857
|
-
case "TileMapImagery":
|
|
3858
|
-
provider = new Cesium.TileMapServiceImageryProvider({
|
|
3859
|
-
url: tile.SourceUrl,
|
|
3860
|
-
fileExtension: tile.FileExtension,
|
|
3861
|
-
minimumLevel: min,
|
|
3862
|
-
maximumLevel: max
|
|
3863
|
-
});
|
|
3864
|
-
break;
|
|
3865
|
-
case "OpenStreetMapImagery":
|
|
3866
|
-
provider = new Cesium.OpenStreetMapImageryProvider({
|
|
3867
|
-
url: tile.SourceUrl,
|
|
3868
|
-
fileExtension: tile.FileExtension,
|
|
3869
|
-
minimumLevel: min,
|
|
3870
|
-
maximumLevel: max
|
|
3871
|
-
});
|
|
3872
|
-
break;
|
|
3873
|
-
case "MapBoxImagery":
|
|
3874
|
-
// TODO: Read default account key when missing.
|
|
3875
|
-
provider = new Cesium.UrlTemplateImageryProvider({
|
|
3876
|
-
url: "https://api.mapbox.com/styles/v1/"
|
|
3877
|
-
+ tile.MapBoxUsername + "/" + tile.MapBoxID +
|
|
3878
|
-
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
3879
|
-
+ tile.ProgramKey
|
|
3880
|
-
});
|
|
3881
|
-
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
|
+
}
|
|
3882
3922
|
}
|
|
3883
|
-
if (
|
|
3884
|
-
|
|
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
|
+
}
|
|
3885
3978
|
}
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
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
|
+
}
|
|
3892
3985
|
}
|
|
3986
|
+
return layer;
|
|
3893
3987
|
}
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
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
|
+
}
|
|
3921
4016
|
}
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
|
|
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
|
+
}
|
|
3937
4032
|
}
|
|
3938
4033
|
}
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
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);
|
|
3951
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,
|
|
3952
4061
|
});
|
|
3953
4062
|
if (layer) {
|
|
3954
4063
|
layers.push(layer);
|
|
3955
4064
|
}
|
|
3956
|
-
};
|
|
3957
|
-
for (i = 0; i < params.ignoreIds.length; i++) {
|
|
3958
|
-
_loop_1(i);
|
|
3959
4065
|
}
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
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;
|
|
3967
4081
|
});
|
|
3968
|
-
|
|
3969
|
-
|
|
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
|
+
}
|
|
3970
4092
|
}
|
|
3971
|
-
|
|
3972
|
-
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
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
|
+
});
|
|
3979
4123
|
}
|
|
3980
|
-
if (
|
|
3981
|
-
|
|
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
|
+
}
|
|
3982
4156
|
}
|
|
3983
|
-
if (
|
|
3984
|
-
|
|
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
|
+
});
|
|
3985
4163
|
}
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
layer = enabled[i];
|
|
3993
|
-
if (layers.includes(layer)) {
|
|
3994
|
-
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];
|
|
3995
4170
|
}
|
|
3996
|
-
|
|
3997
|
-
|
|
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);
|
|
3998
4231
|
}
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
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
|
+
});
|
|
4002
4254
|
});
|
|
4003
|
-
}
|
|
4004
|
-
|
|
4005
|
-
Map.
|
|
4255
|
+
}
|
|
4256
|
+
V2.Render = Render;
|
|
4257
|
+
})(V2 = Map.V2 || (Map.V2 = {}));
|
|
4006
4258
|
})(Map = TileRenderEngine.Map || (TileRenderEngine.Map = {}));
|
|
4007
4259
|
var Terrain;
|
|
4008
4260
|
(function (Terrain) {
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
|
|
4014
|
-
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
break;
|
|
4035
|
-
case EDefaultTerrain.FlatTerrain:
|
|
4036
|
-
provider = new Cesium.EllipsoidTerrainProvider();
|
|
4037
|
-
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;
|
|
4038
4286
|
}
|
|
4039
4287
|
}
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
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
|
+
});
|
|
4045
4337
|
});
|
|
4046
4338
|
}
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
return [4 /*yield*/, bruceModels.ProjectView.Get(api, params.viewId)];
|
|
4063
|
-
case 1:
|
|
4064
|
-
view = _f.sent();
|
|
4065
|
-
bookmark = null;
|
|
4066
|
-
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
4067
|
-
return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
4068
|
-
case 2:
|
|
4069
|
-
bookmark = _f.sent();
|
|
4070
|
-
_f.label = 3;
|
|
4071
|
-
case 3:
|
|
4072
|
-
terrainTiles = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.CesiumTerrainSources) !== null && _b !== void 0 ? _b : [];
|
|
4073
|
-
terrainTile = null;
|
|
4074
|
-
terrainTileName = null;
|
|
4075
|
-
if ((_c = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _c === void 0 ? void 0 : _c.terrain) {
|
|
4076
|
-
terrainTileName = bookmark.Settings.terrain;
|
|
4077
|
-
}
|
|
4078
|
-
else {
|
|
4079
|
-
terrainTileName = (_d = view.Settings) === null || _d === void 0 ? void 0 : _d.DefaultTerrain;
|
|
4080
|
-
}
|
|
4081
|
-
return [4 /*yield*/, bruceModels.ProjectViewTileSource.MergeTerrainTemplateData(params.apiGetter, terrainTiles, ((_e = view.Settings) === null || _e === void 0 ? void 0 : _e.CesiumTerrainSources) == null)];
|
|
4082
|
-
case 4:
|
|
4083
|
-
_f.sent();
|
|
4084
|
-
for (i = 0; i < terrainTiles.length; i++) {
|
|
4085
|
-
tile = terrainTiles[i];
|
|
4086
|
-
if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
|
|
4087
|
-
terrainTile = tile;
|
|
4088
|
-
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*/];
|
|
4089
4354
|
}
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
|
|
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
|
+
});
|
|
4099
4396
|
});
|
|
4100
|
-
}
|
|
4101
|
-
|
|
4102
|
-
Terrain.
|
|
4397
|
+
}
|
|
4398
|
+
V2.Render = Render;
|
|
4399
|
+
})(V2 = Terrain.V2 || (Terrain.V2 = {}));
|
|
4103
4400
|
})(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
|
|
4104
4401
|
})(exports.TileRenderEngine || (exports.TileRenderEngine = {}));
|
|
4105
4402
|
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
case 1:
|
|
4117
|
-
view = _f.sent();
|
|
4118
|
-
bookmark = null;
|
|
4119
|
-
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
4120
|
-
return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
4121
|
-
case 2:
|
|
4122
|
-
bookmark = _f.sent();
|
|
4123
|
-
_f.label = 3;
|
|
4124
|
-
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({
|
|
4125
4413
|
apiGetter: params.apiGetter,
|
|
4126
4414
|
bookmarkId: params.bookmarkId,
|
|
4127
4415
|
viewer: params.manager.Viewer,
|
|
4128
4416
|
viewId: params.viewId,
|
|
4129
4417
|
})];
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
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;
|
|
4144
4439
|
}
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
if (frustum == bruceModels.Camera.EFrustum.Perspective) {
|
|
4149
|
-
scene.camera.switchToPerspectiveFrustum();
|
|
4150
|
-
scene.screenSpaceCameraController.enableTilt = true;
|
|
4151
|
-
}
|
|
4152
|
-
else {
|
|
4153
|
-
scene.camera.switchToOrthographicFrustum();
|
|
4154
|
-
scene.screenSpaceCameraController.enableTilt = false;
|
|
4155
|
-
}
|
|
4156
|
-
params.skipTransition = true;
|
|
4440
|
+
else {
|
|
4441
|
+
scene.camera.switchToOrthographicFrustum();
|
|
4442
|
+
scene.screenSpaceCameraController.enableTilt = false;
|
|
4157
4443
|
}
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
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;
|
|
4518
|
+
}
|
|
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({
|
|
4161
4531
|
destination: pos,
|
|
4162
4532
|
orientation: {
|
|
4163
4533
|
heading: +camera.heading,
|
|
4164
4534
|
pitch: +camera.pitch,
|
|
4165
4535
|
roll: +camera.roll
|
|
4166
4536
|
},
|
|
4167
|
-
duration:
|
|
4537
|
+
duration: transition != 0 ? transition / 1000 : 0
|
|
4168
4538
|
});
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
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
|
|
4183
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.");
|
|
4184
4641
|
}
|
|
4185
|
-
|
|
4186
|
-
return [
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
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)];
|
|
4190
4649
|
case 6:
|
|
4191
|
-
|
|
4192
|
-
|
|
4650
|
+
_a.sent();
|
|
4651
|
+
_a.label = 7;
|
|
4193
4652
|
case 7: return [2 /*return*/];
|
|
4194
4653
|
}
|
|
4195
4654
|
});
|