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.
- package/dist/bruce-cesium.es5.js +1060 -579
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +1057 -576
- 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 -230
- 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 -472
- 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/rendering/tileset-render-engine.d.ts +3 -1
- 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();
|
|
@@ -2239,31 +2239,46 @@
|
|
|
2239
2239
|
}
|
|
2240
2240
|
var TilesetRenderEngine;
|
|
2241
2241
|
(function (TilesetRenderEngine) {
|
|
2242
|
-
function
|
|
2242
|
+
function ApplyPosition(cTileset, tileset, coords) {
|
|
2243
2243
|
if (tileset.type == bruceModels.Tileset.EType.Cad) {
|
|
2244
2244
|
var settings = tileset.settings;
|
|
2245
|
-
var
|
|
2246
|
-
var transform =
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
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
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
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 (
|
|
3862
|
-
|
|
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
|
-
|
|
3866
|
-
|
|
3867
|
-
|
|
3868
|
-
|
|
3869
|
-
|
|
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
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
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
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
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
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
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
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
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
|
-
|
|
3947
|
-
|
|
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
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
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 (
|
|
3959
|
-
|
|
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 (
|
|
3962
|
-
|
|
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
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
|
|
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
|
-
|
|
3975
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
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
|
-
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
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
|
-
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
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
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
|
|
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.
|
|
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
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
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
|
-
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
|
|
4118
|
-
|
|
4119
|
-
|
|
4120
|
-
|
|
4121
|
-
|
|
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
|
-
|
|
4124
|
-
|
|
4125
|
-
|
|
4126
|
-
|
|
4127
|
-
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
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
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
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:
|
|
4537
|
+
duration: transition != 0 ? transition / 1000 : 0
|
|
4146
4538
|
});
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
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
|
-
|
|
4164
|
-
return [
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
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
|
-
|
|
4170
|
-
|
|
4650
|
+
_a.sent();
|
|
4651
|
+
_a.label = 7;
|
|
4171
4652
|
case 7: return [2 /*return*/];
|
|
4172
4653
|
}
|
|
4173
4654
|
});
|