bruce-cesium 0.3.6 → 0.3.8
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 +1013 -559
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +1010 -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 +295 -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.es5.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark,
|
|
2
|
-
import { Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode,
|
|
1
|
+
import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, TilesetExtMapTiles, Camera, MathUtils } from 'bruce-models';
|
|
2
|
+
import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, OrthographicFrustum, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, createOsmBuildings, Cesium3DTileStyle, Rectangle, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
|
|
3
3
|
|
|
4
4
|
var TIME_LAG = 300;
|
|
5
5
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -923,7 +923,7 @@ var EntityRenderEngine;
|
|
|
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 @@ var EntityRenderEngine;
|
|
|
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 @@ var EntityRenderEngine;
|
|
|
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 @@ var EntityRenderEngine;
|
|
|
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,
|
|
@@ -1413,7 +1413,7 @@ var EntitiesRenderManager;
|
|
|
1413
1413
|
if (this.disposed) {
|
|
1414
1414
|
throw (new Error("This item is disposed."));
|
|
1415
1415
|
}
|
|
1416
|
-
api = this.apiGetter.getApi(
|
|
1416
|
+
api = this.apiGetter.getApi();
|
|
1417
1417
|
this.getter = this.sharedGetters.GetOrCreateFilterGetter({
|
|
1418
1418
|
api: api,
|
|
1419
1419
|
attrFilter: (_a = this.item.BruceEntity.Filter) !== null && _a !== void 0 ? _a : {},
|
|
@@ -1463,7 +1463,7 @@ var EntitiesRenderManager;
|
|
|
1463
1463
|
return [2 /*return*/];
|
|
1464
1464
|
}
|
|
1465
1465
|
this.isRunningCheck = true;
|
|
1466
|
-
api = this.apiGetter.getApi(
|
|
1466
|
+
api = this.apiGetter.getApi();
|
|
1467
1467
|
_a.label = 1;
|
|
1468
1468
|
case 1:
|
|
1469
1469
|
_a.trys.push([1, 5, , 6]);
|
|
@@ -2115,7 +2115,7 @@ var EntitiesIdsRenderManager;
|
|
|
2115
2115
|
if (this.disposed) {
|
|
2116
2116
|
return [2 /*return*/];
|
|
2117
2117
|
}
|
|
2118
|
-
api = this.apiGetter.getApi(
|
|
2118
|
+
api = this.apiGetter.getApi();
|
|
2119
2119
|
return [4 /*yield*/, Entity$1.GetListByIds(api, entityIds)];
|
|
2120
2120
|
case 1:
|
|
2121
2121
|
entities = _b.sent();
|
|
@@ -2219,7 +2219,7 @@ var EntityRenderManager;
|
|
|
2219
2219
|
if (this.disposed) {
|
|
2220
2220
|
return [2 /*return*/];
|
|
2221
2221
|
}
|
|
2222
|
-
api = this.apiGetter.getApi(
|
|
2222
|
+
api = this.apiGetter.getApi();
|
|
2223
2223
|
return [4 /*yield*/, Entity$1.Get(api, id)];
|
|
2224
2224
|
case 1:
|
|
2225
2225
|
entity = _b.sent();
|
|
@@ -2315,7 +2315,7 @@ var TilesetRenderEngine;
|
|
|
2315
2315
|
}
|
|
2316
2316
|
TilesetRenderEngine.ApplySettings = ApplySettings;
|
|
2317
2317
|
function Render(params) {
|
|
2318
|
-
var api = params.apiGetter.getApi(params.apiGetter.accountId
|
|
2318
|
+
var api = params.apiGetter.getApi(params.apiGetter.accountId);
|
|
2319
2319
|
if (params.tileset.type == Tileset.EType.Cad) {
|
|
2320
2320
|
var cTileset_1 = new Cesium3DTileset({
|
|
2321
2321
|
url: Tileset.GetPublicFileUrl(api, params.tileset.id, "tileset.json") + "?generation=" + params.tileset.generateVersion
|
|
@@ -2742,7 +2742,7 @@ var TilesetCadRenderManager;
|
|
|
2742
2742
|
if (!tilesetId) {
|
|
2743
2743
|
return [2 /*return*/];
|
|
2744
2744
|
}
|
|
2745
|
-
api = this.apiGetter.getApi(
|
|
2745
|
+
api = this.apiGetter.getApi();
|
|
2746
2746
|
return [4 /*yield*/, Tileset.Get(api, tilesetId)];
|
|
2747
2747
|
case 1:
|
|
2748
2748
|
tileset = _b.sent();
|
|
@@ -3154,7 +3154,7 @@ var TilesetOsmRenderManager;
|
|
|
3154
3154
|
for (i = 0; i < features.length; i++) {
|
|
3155
3155
|
_loop_1(i);
|
|
3156
3156
|
}
|
|
3157
|
-
api = this.apiGetter.getApi(
|
|
3157
|
+
api = this.apiGetter.getApi();
|
|
3158
3158
|
return [4 /*yield*/, EntitySource.GetEntityIdsBySourceKeys(api, this.sourceId, featureIds)];
|
|
3159
3159
|
case 1:
|
|
3160
3160
|
bIds = _a.sent();
|
|
@@ -3512,73 +3512,6 @@ var RenderHelper;
|
|
|
3512
3512
|
});
|
|
3513
3513
|
}
|
|
3514
3514
|
RenderHelper.RenderEntityFilter = RenderEntityFilter;
|
|
3515
|
-
function RenderBookmarkItems(params, viewId, bookmarkId) {
|
|
3516
|
-
var _a, _b, _c, _d;
|
|
3517
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
3518
|
-
function traverseItems(item) {
|
|
3519
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
3520
|
-
var itemId, i;
|
|
3521
|
-
return __generator(this, function (_a) {
|
|
3522
|
-
switch (_a.label) {
|
|
3523
|
-
case 0:
|
|
3524
|
-
if (!enabledItemIds.includes(item.id)) return [3 /*break*/, 2];
|
|
3525
|
-
return [4 /*yield*/, params.manager.RenderItem({
|
|
3526
|
-
item: item,
|
|
3527
|
-
apiGetter: params.apiGetter
|
|
3528
|
-
})];
|
|
3529
|
-
case 1:
|
|
3530
|
-
itemId = _a.sent();
|
|
3531
|
-
renderedItemIds.push(itemId);
|
|
3532
|
-
_a.label = 2;
|
|
3533
|
-
case 2:
|
|
3534
|
-
if (!item.Children) return [3 /*break*/, 6];
|
|
3535
|
-
i = 0;
|
|
3536
|
-
_a.label = 3;
|
|
3537
|
-
case 3:
|
|
3538
|
-
if (!(i < item.Children.length)) return [3 /*break*/, 6];
|
|
3539
|
-
return [4 /*yield*/, traverseItems(item.Children[i])];
|
|
3540
|
-
case 4:
|
|
3541
|
-
_a.sent();
|
|
3542
|
-
_a.label = 5;
|
|
3543
|
-
case 5:
|
|
3544
|
-
i++;
|
|
3545
|
-
return [3 /*break*/, 3];
|
|
3546
|
-
case 6: return [2 /*return*/];
|
|
3547
|
-
}
|
|
3548
|
-
});
|
|
3549
|
-
});
|
|
3550
|
-
}
|
|
3551
|
-
var api, view, bookmark, items, enabledItemIds, renderedItemIds, i;
|
|
3552
|
-
return __generator(this, function (_e) {
|
|
3553
|
-
switch (_e.label) {
|
|
3554
|
-
case 0:
|
|
3555
|
-
api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
|
|
3556
|
-
return [4 /*yield*/, ProjectView.Get(api, viewId)];
|
|
3557
|
-
case 1:
|
|
3558
|
-
view = _e.sent();
|
|
3559
|
-
return [4 /*yield*/, ProjectViewBookmark.Get(api, viewId, bookmarkId)];
|
|
3560
|
-
case 2:
|
|
3561
|
-
bookmark = _e.sent();
|
|
3562
|
-
items = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.LayersMenu) !== null && _b !== void 0 ? _b : [];
|
|
3563
|
-
enabledItemIds = (_d = (_c = bookmark.Settings) === null || _c === void 0 ? void 0 : _c.selectedItemIds) !== null && _d !== void 0 ? _d : [];
|
|
3564
|
-
renderedItemIds = [];
|
|
3565
|
-
i = 0;
|
|
3566
|
-
_e.label = 3;
|
|
3567
|
-
case 3:
|
|
3568
|
-
if (!(i < items.length)) return [3 /*break*/, 6];
|
|
3569
|
-
return [4 /*yield*/, traverseItems(items[i])];
|
|
3570
|
-
case 4:
|
|
3571
|
-
_e.sent();
|
|
3572
|
-
_e.label = 5;
|
|
3573
|
-
case 5:
|
|
3574
|
-
i++;
|
|
3575
|
-
return [3 /*break*/, 3];
|
|
3576
|
-
case 6: return [2 /*return*/, renderedItemIds];
|
|
3577
|
-
}
|
|
3578
|
-
});
|
|
3579
|
-
});
|
|
3580
|
-
}
|
|
3581
|
-
RenderHelper.RenderBookmarkItems = RenderBookmarkItems;
|
|
3582
3515
|
function RenderMenuItems(params, menuItems) {
|
|
3583
3516
|
return __awaiter(this, void 0, void 0, function () {
|
|
3584
3517
|
var renderedItemIds, i, menuItem, itemId;
|
|
@@ -3614,7 +3547,7 @@ var RenderHelper;
|
|
|
3614
3547
|
return __generator(this, function (_a) {
|
|
3615
3548
|
switch (_a.label) {
|
|
3616
3549
|
case 0:
|
|
3617
|
-
api = params.apiGetter.getApi(
|
|
3550
|
+
api = params.apiGetter.getApi();
|
|
3618
3551
|
return [4 /*yield*/, Tileset.Get(api, tilesetId)];
|
|
3619
3552
|
case 1:
|
|
3620
3553
|
tileset = _a.sent();
|
|
@@ -3641,9 +3574,101 @@ var RenderHelper;
|
|
|
3641
3574
|
});
|
|
3642
3575
|
}
|
|
3643
3576
|
RenderHelper.RenderTileset = RenderTileset;
|
|
3577
|
+
function RenderBookmarkItems(params, viewId, bookmarkId) {
|
|
3578
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3579
|
+
var api, view, bookmark, enabledIds, menuItems, version, vSettings, bSettings, vSettings, bSettings, renderedItemIds, traverseItems_1, i;
|
|
3580
|
+
var _this = this;
|
|
3581
|
+
return __generator(this, function (_a) {
|
|
3582
|
+
switch (_a.label) {
|
|
3583
|
+
case 0:
|
|
3584
|
+
api = params.apiGetter.getApi();
|
|
3585
|
+
return [4 /*yield*/, ProjectView.Get(api, viewId)];
|
|
3586
|
+
case 1:
|
|
3587
|
+
view = _a.sent();
|
|
3588
|
+
return [4 /*yield*/, ProjectViewBookmark.Get(api, viewId, bookmarkId)];
|
|
3589
|
+
case 2:
|
|
3590
|
+
bookmark = _a.sent();
|
|
3591
|
+
if (view.DataVersion != bookmark.DataVersion) {
|
|
3592
|
+
throw new Error("View and bookmark settings version mismatch.");
|
|
3593
|
+
}
|
|
3594
|
+
enabledIds = [];
|
|
3595
|
+
menuItems = [];
|
|
3596
|
+
version = view.DataVersion;
|
|
3597
|
+
if (view.Settings && bookmark.Settings) {
|
|
3598
|
+
if (version === 2) {
|
|
3599
|
+
vSettings = view.Settings;
|
|
3600
|
+
bSettings = bookmark.Settings;
|
|
3601
|
+
menuItems = vSettings.menuItems;
|
|
3602
|
+
enabledIds = bSettings.menuItemIds;
|
|
3603
|
+
}
|
|
3604
|
+
else {
|
|
3605
|
+
vSettings = view.Settings;
|
|
3606
|
+
bSettings = bookmark.Settings;
|
|
3607
|
+
menuItems = vSettings.LayersMenu;
|
|
3608
|
+
enabledIds = bSettings.selectedItemIds;
|
|
3609
|
+
}
|
|
3610
|
+
}
|
|
3611
|
+
renderedItemIds = [];
|
|
3612
|
+
if (!((menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) && (enabledIds === null || enabledIds === void 0 ? void 0 : enabledIds.length))) return [3 /*break*/, 6];
|
|
3613
|
+
traverseItems_1 = function (item) { return __awaiter(_this, void 0, void 0, function () {
|
|
3614
|
+
var itemId, i;
|
|
3615
|
+
return __generator(this, function (_a) {
|
|
3616
|
+
switch (_a.label) {
|
|
3617
|
+
case 0:
|
|
3618
|
+
if (!enabledIds.includes(item.id)) return [3 /*break*/, 2];
|
|
3619
|
+
return [4 /*yield*/, params.manager.RenderItem({
|
|
3620
|
+
item: item,
|
|
3621
|
+
apiGetter: params.apiGetter
|
|
3622
|
+
})];
|
|
3623
|
+
case 1:
|
|
3624
|
+
itemId = _a.sent();
|
|
3625
|
+
renderedItemIds.push(itemId);
|
|
3626
|
+
_a.label = 2;
|
|
3627
|
+
case 2:
|
|
3628
|
+
if (!item.Children) return [3 /*break*/, 6];
|
|
3629
|
+
i = 0;
|
|
3630
|
+
_a.label = 3;
|
|
3631
|
+
case 3:
|
|
3632
|
+
if (!(i < item.Children.length)) return [3 /*break*/, 6];
|
|
3633
|
+
return [4 /*yield*/, traverseItems_1(item.Children[i])];
|
|
3634
|
+
case 4:
|
|
3635
|
+
_a.sent();
|
|
3636
|
+
_a.label = 5;
|
|
3637
|
+
case 5:
|
|
3638
|
+
i++;
|
|
3639
|
+
return [3 /*break*/, 3];
|
|
3640
|
+
case 6: return [2 /*return*/];
|
|
3641
|
+
}
|
|
3642
|
+
});
|
|
3643
|
+
}); };
|
|
3644
|
+
i = 0;
|
|
3645
|
+
_a.label = 3;
|
|
3646
|
+
case 3:
|
|
3647
|
+
if (!(i < menuItems.length)) return [3 /*break*/, 6];
|
|
3648
|
+
return [4 /*yield*/, traverseItems_1(menuItems[i])];
|
|
3649
|
+
case 4:
|
|
3650
|
+
_a.sent();
|
|
3651
|
+
_a.label = 5;
|
|
3652
|
+
case 5:
|
|
3653
|
+
i++;
|
|
3654
|
+
return [3 /*break*/, 3];
|
|
3655
|
+
case 6: return [2 /*return*/, renderedItemIds];
|
|
3656
|
+
}
|
|
3657
|
+
});
|
|
3658
|
+
});
|
|
3659
|
+
}
|
|
3660
|
+
RenderHelper.RenderBookmarkItems = RenderBookmarkItems;
|
|
3644
3661
|
})(RenderHelper || (RenderHelper = {}));
|
|
3645
3662
|
|
|
3663
|
+
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
3664
|
+
var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
|
|
3646
3665
|
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;
|
|
3666
|
+
/**
|
|
3667
|
+
* Prepares a legacy imagery name for comparison.
|
|
3668
|
+
* Legacy data did not have ids... we do what we can.
|
|
3669
|
+
* @param name
|
|
3670
|
+
* @returns
|
|
3671
|
+
*/
|
|
3647
3672
|
function prepLegacyName(name) {
|
|
3648
3673
|
if (!name) {
|
|
3649
3674
|
return "";
|
|
@@ -3656,26 +3681,68 @@ function prepLegacyName(name) {
|
|
|
3656
3681
|
}
|
|
3657
3682
|
return name;
|
|
3658
3683
|
}
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3684
|
+
/**
|
|
3685
|
+
* Constructs an terrain provider for a default terrain type.
|
|
3686
|
+
* Warning: This does not add it to the viewer.
|
|
3687
|
+
* @param id
|
|
3688
|
+
* @returns
|
|
3689
|
+
*/
|
|
3690
|
+
function renderDefaultTerrTile(id) {
|
|
3691
|
+
var provider;
|
|
3692
|
+
switch (id) {
|
|
3693
|
+
case ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain:
|
|
3694
|
+
provider = createWorldTerrain({
|
|
3695
|
+
requestVertexNormals: true,
|
|
3696
|
+
requestWaterMask: false
|
|
3697
|
+
});
|
|
3698
|
+
break;
|
|
3699
|
+
case ProjectViewTile.EDefaultTerrain.FlatTerrain:
|
|
3700
|
+
provider = new EllipsoidTerrainProvider();
|
|
3701
|
+
break;
|
|
3702
|
+
case ProjectViewTile.EDefaultTerrain.LINZ:
|
|
3703
|
+
provider = new CesiumTerrainProvider({
|
|
3704
|
+
url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
|
|
3705
|
+
requestVertexNormals: true,
|
|
3706
|
+
});
|
|
3707
|
+
break;
|
|
3708
|
+
}
|
|
3709
|
+
return provider;
|
|
3710
|
+
}
|
|
3711
|
+
/**
|
|
3712
|
+
* Maps a legacy terrain's name to a default terrain id.
|
|
3713
|
+
* @param name
|
|
3714
|
+
* @returns
|
|
3715
|
+
*/
|
|
3716
|
+
function legacyTerrIdToDefaultId(name) {
|
|
3671
3717
|
name = prepLegacyName(name);
|
|
3672
|
-
|
|
3718
|
+
switch (name) {
|
|
3719
|
+
case "cesiumworldterrain":
|
|
3720
|
+
return ProjectViewTile.EDefaultTerrain.CesiumWorldTerrain;
|
|
3721
|
+
case "linz":
|
|
3722
|
+
return ProjectViewTile.EDefaultTerrain.LINZ;
|
|
3723
|
+
case "flatterrain":
|
|
3724
|
+
return ProjectViewTile.EDefaultTerrain.FlatTerrain;
|
|
3725
|
+
}
|
|
3726
|
+
}
|
|
3727
|
+
/**
|
|
3728
|
+
* Returns if a given legacy terrain's name correspondings to a default source.
|
|
3729
|
+
* @param name
|
|
3730
|
+
* @returns
|
|
3731
|
+
*/
|
|
3732
|
+
function isLegacyTerrainDefault(name) {
|
|
3733
|
+
name = legacyTerrIdToDefaultId(name);
|
|
3734
|
+
return ProjectViewTile.DefaultTerrains.find(function (x) { return x.id == name; }) != null;
|
|
3673
3735
|
}
|
|
3674
|
-
|
|
3736
|
+
/**
|
|
3737
|
+
* Returns a best attempt at a unique id from a given legacy terrain source.
|
|
3738
|
+
* @param source
|
|
3739
|
+
* @returns
|
|
3740
|
+
*/
|
|
3741
|
+
function createLegacyTerrId(source) {
|
|
3675
3742
|
if (!source) {
|
|
3676
3743
|
return "";
|
|
3677
3744
|
}
|
|
3678
|
-
if (
|
|
3745
|
+
if (isLegacyTerrainDefault(source.Name)) {
|
|
3679
3746
|
return source.Name;
|
|
3680
3747
|
}
|
|
3681
3748
|
if (source.SourceUrl) {
|
|
@@ -3683,11 +3750,16 @@ function createTerrainBId(source) {
|
|
|
3683
3750
|
}
|
|
3684
3751
|
return "";
|
|
3685
3752
|
}
|
|
3686
|
-
|
|
3753
|
+
/**
|
|
3754
|
+
* Returns a best attempt at a unique id from a given legacy imagery source.
|
|
3755
|
+
* @param source
|
|
3756
|
+
* @returns
|
|
3757
|
+
*/
|
|
3758
|
+
function createLegacyImageryId(source) {
|
|
3687
3759
|
if (!source) {
|
|
3688
3760
|
return "";
|
|
3689
3761
|
}
|
|
3690
|
-
if (
|
|
3762
|
+
if (isLegacyImageryDefault(source.Name)) {
|
|
3691
3763
|
return source.Name;
|
|
3692
3764
|
}
|
|
3693
3765
|
if (source.SourceUrl) {
|
|
@@ -3695,43 +3767,11 @@ function createImageryBId(source) {
|
|
|
3695
3767
|
}
|
|
3696
3768
|
return "";
|
|
3697
3769
|
}
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
EDefaultImagery["MapboxSatellite"] = "mapboxsatellite";
|
|
3704
|
-
EDefaultImagery["MapBoxStreets"] = "mapboxstreets";
|
|
3705
|
-
EDefaultImagery["MapBoxStreetsClassic"] = "mapboxstreetsclassic";
|
|
3706
|
-
EDefaultImagery["EsriWorldImagery"] = "esriworldimagery";
|
|
3707
|
-
EDefaultImagery["EsriWorldStreetMap"] = "esriworldstreetmap";
|
|
3708
|
-
EDefaultImagery["EsriNationalGeographic"] = "esrinationalgeographic";
|
|
3709
|
-
EDefaultImagery["OpenStreetMap"] = "openstreetmap";
|
|
3710
|
-
EDefaultImagery["StamenWaterColor"] = "stamenwatercolor";
|
|
3711
|
-
EDefaultImagery["StamenToner"] = "stamentoner";
|
|
3712
|
-
EDefaultImagery["Grid"] = "grid";
|
|
3713
|
-
})(EDefaultImagery || (EDefaultImagery = {}));
|
|
3714
|
-
var DEFAULT_IMAGERY_NAMES = [
|
|
3715
|
-
EDefaultImagery.BingMapsAerial,
|
|
3716
|
-
EDefaultImagery.BingMapsAerialWithLabels,
|
|
3717
|
-
EDefaultImagery.BingMapsRoads,
|
|
3718
|
-
EDefaultImagery.MapboxSatellite,
|
|
3719
|
-
EDefaultImagery.MapBoxStreets,
|
|
3720
|
-
EDefaultImagery.MapBoxStreetsClassic,
|
|
3721
|
-
EDefaultImagery.EsriWorldImagery,
|
|
3722
|
-
EDefaultImagery.EsriWorldStreetMap,
|
|
3723
|
-
EDefaultImagery.EsriNationalGeographic,
|
|
3724
|
-
EDefaultImagery.OpenStreetMap,
|
|
3725
|
-
EDefaultImagery.StamenWaterColor,
|
|
3726
|
-
EDefaultImagery.StamenToner,
|
|
3727
|
-
EDefaultImagery.Grid
|
|
3728
|
-
];
|
|
3729
|
-
function isDefaultImagery(name) {
|
|
3730
|
-
name = prepLegacyName(name);
|
|
3731
|
-
return DEFAULT_IMAGERY_NAMES.includes(name);
|
|
3732
|
-
}
|
|
3733
|
-
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
3734
|
-
var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
|
|
3770
|
+
/**
|
|
3771
|
+
* Turns Cesium collection of enabled imageries into an array.
|
|
3772
|
+
* @param viewer
|
|
3773
|
+
* @returns
|
|
3774
|
+
*/
|
|
3735
3775
|
function gatherEnabledImageries(viewer) {
|
|
3736
3776
|
var collection = viewer.imageryLayers;
|
|
3737
3777
|
var layers = [];
|
|
@@ -3741,6 +3781,154 @@ function gatherEnabledImageries(viewer) {
|
|
|
3741
3781
|
}
|
|
3742
3782
|
return layers;
|
|
3743
3783
|
}
|
|
3784
|
+
/**
|
|
3785
|
+
* Constructs an imagery provider for a default imagery type.
|
|
3786
|
+
* Warning: This does not add it to the viewer.
|
|
3787
|
+
* @param id
|
|
3788
|
+
* @returns
|
|
3789
|
+
*/
|
|
3790
|
+
function renderDefaultMapTile(id) {
|
|
3791
|
+
var provider;
|
|
3792
|
+
switch (id) {
|
|
3793
|
+
case ProjectViewTile.EDefaultImagery.BingMapsAerial:
|
|
3794
|
+
// TODO: Read account key if available.
|
|
3795
|
+
provider = new BingMapsImageryProvider({
|
|
3796
|
+
url: "https://dev.virtualearth.net",
|
|
3797
|
+
mapStyle: BingMapsStyle.AERIAL,
|
|
3798
|
+
key: DEFAULT_BING_KEY
|
|
3799
|
+
});
|
|
3800
|
+
break;
|
|
3801
|
+
case ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels:
|
|
3802
|
+
// TODO: Read account key if available.
|
|
3803
|
+
provider = new BingMapsImageryProvider({
|
|
3804
|
+
url: "https://dev.virtualearth.net",
|
|
3805
|
+
mapStyle: BingMapsStyle.AERIAL_WITH_LABELS,
|
|
3806
|
+
key: DEFAULT_BING_KEY
|
|
3807
|
+
});
|
|
3808
|
+
break;
|
|
3809
|
+
case ProjectViewTile.EDefaultImagery.BingMapsRoads:
|
|
3810
|
+
// TODO: Read account key if available.
|
|
3811
|
+
provider = new BingMapsImageryProvider({
|
|
3812
|
+
url: "https://dev.virtualearth.net",
|
|
3813
|
+
mapStyle: BingMapsStyle.ROAD_ON_DEMAND,
|
|
3814
|
+
key: DEFAULT_BING_KEY
|
|
3815
|
+
});
|
|
3816
|
+
break;
|
|
3817
|
+
case ProjectViewTile.EDefaultImagery.MapboxSatellite:
|
|
3818
|
+
// TODO: Read account key if available.
|
|
3819
|
+
provider = new MapboxImageryProvider({
|
|
3820
|
+
mapId: "mapbox.satellite",
|
|
3821
|
+
accessToken: DEFAULT_MAPBOX_KEY
|
|
3822
|
+
});
|
|
3823
|
+
break;
|
|
3824
|
+
case ProjectViewTile.EDefaultImagery.MapBoxStreets:
|
|
3825
|
+
// TODO: Read account key if available.
|
|
3826
|
+
provider = new MapboxImageryProvider({
|
|
3827
|
+
mapId: "satellite-streets-v11",
|
|
3828
|
+
accessToken: DEFAULT_MAPBOX_KEY
|
|
3829
|
+
});
|
|
3830
|
+
break;
|
|
3831
|
+
case ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic:
|
|
3832
|
+
// TODO: Read account key if available.
|
|
3833
|
+
provider = new MapboxImageryProvider({
|
|
3834
|
+
mapId: "streets-v11",
|
|
3835
|
+
accessToken: DEFAULT_MAPBOX_KEY
|
|
3836
|
+
});
|
|
3837
|
+
break;
|
|
3838
|
+
case ProjectViewTile.EDefaultImagery.EsriWorldImagery:
|
|
3839
|
+
provider = new ArcGisMapServerImageryProvider({
|
|
3840
|
+
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
|
|
3841
|
+
enablePickFeatures: false
|
|
3842
|
+
});
|
|
3843
|
+
break;
|
|
3844
|
+
case ProjectViewTile.EDefaultImagery.EsriWorldStreetMap:
|
|
3845
|
+
provider = new ArcGisMapServerImageryProvider({
|
|
3846
|
+
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
|
|
3847
|
+
enablePickFeatures: false
|
|
3848
|
+
});
|
|
3849
|
+
break;
|
|
3850
|
+
case ProjectViewTile.EDefaultImagery.EsriNationalGeographic:
|
|
3851
|
+
provider = new ArcGisMapServerImageryProvider({
|
|
3852
|
+
url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
|
|
3853
|
+
enablePickFeatures: false
|
|
3854
|
+
});
|
|
3855
|
+
break;
|
|
3856
|
+
case ProjectViewTile.EDefaultImagery.OpenStreetMap:
|
|
3857
|
+
provider = new OpenStreetMapImageryProvider({
|
|
3858
|
+
url: "https://a.tile.openstreetmap.org/"
|
|
3859
|
+
});
|
|
3860
|
+
break;
|
|
3861
|
+
case ProjectViewTile.EDefaultImagery.StamenWaterColor:
|
|
3862
|
+
provider = new OpenStreetMapImageryProvider({
|
|
3863
|
+
url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
|
|
3864
|
+
});
|
|
3865
|
+
break;
|
|
3866
|
+
case ProjectViewTile.EDefaultImagery.StamenToner:
|
|
3867
|
+
provider = new OpenStreetMapImageryProvider({
|
|
3868
|
+
url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
|
|
3869
|
+
});
|
|
3870
|
+
break;
|
|
3871
|
+
case ProjectViewTile.EDefaultImagery.Grid:
|
|
3872
|
+
provider = new GridImageryProvider({
|
|
3873
|
+
tilingScheme: new GeographicTilingScheme(),
|
|
3874
|
+
cells: 0,
|
|
3875
|
+
color: Color.fromCssColorString("rgb(97, 151, 237)"),
|
|
3876
|
+
glowColor: Color.fromCssColorString("rgb(54, 54, 54)"),
|
|
3877
|
+
glowWidth: 4,
|
|
3878
|
+
backgroundColor: Color.TRANSPARENT,
|
|
3879
|
+
tileWidth: 256,
|
|
3880
|
+
tileHeight: 256,
|
|
3881
|
+
canvasSize: 256
|
|
3882
|
+
});
|
|
3883
|
+
break;
|
|
3884
|
+
}
|
|
3885
|
+
return provider;
|
|
3886
|
+
}
|
|
3887
|
+
/**
|
|
3888
|
+
* Maps a legacy imagery's name to a default imagery id.
|
|
3889
|
+
* @param name
|
|
3890
|
+
* @returns
|
|
3891
|
+
*/
|
|
3892
|
+
function legacyMapIdToDefaultId(name) {
|
|
3893
|
+
name = prepLegacyName(name);
|
|
3894
|
+
switch (name) {
|
|
3895
|
+
case "bingmapsaerial":
|
|
3896
|
+
return ProjectViewTile.EDefaultImagery.BingMapsAerial;
|
|
3897
|
+
case "bingmapsaerialwithlabels":
|
|
3898
|
+
return ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels;
|
|
3899
|
+
case "bingmapsroads":
|
|
3900
|
+
return ProjectViewTile.EDefaultImagery.BingMapsRoads;
|
|
3901
|
+
case "mapboxsatellite":
|
|
3902
|
+
return ProjectViewTile.EDefaultImagery.MapboxSatellite;
|
|
3903
|
+
case "mapboxstreets":
|
|
3904
|
+
return ProjectViewTile.EDefaultImagery.MapBoxStreets;
|
|
3905
|
+
case "mapboxstreetsclassic":
|
|
3906
|
+
return ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic;
|
|
3907
|
+
case "esriworldimagery":
|
|
3908
|
+
return ProjectViewTile.EDefaultImagery.EsriWorldImagery;
|
|
3909
|
+
case "esriworldstreetmap":
|
|
3910
|
+
return ProjectViewTile.EDefaultImagery.EsriWorldStreetMap;
|
|
3911
|
+
case "esrinationalgeographic":
|
|
3912
|
+
return ProjectViewTile.EDefaultImagery.EsriNationalGeographic;
|
|
3913
|
+
case "openstreetmap":
|
|
3914
|
+
return ProjectViewTile.EDefaultImagery.OpenStreetMap;
|
|
3915
|
+
case "stamenwatercolor":
|
|
3916
|
+
return ProjectViewTile.EDefaultImagery.StamenWaterColor;
|
|
3917
|
+
case "stamentoner":
|
|
3918
|
+
return ProjectViewTile.EDefaultImagery.StamenToner;
|
|
3919
|
+
case "grid":
|
|
3920
|
+
return ProjectViewTile.EDefaultImagery.Grid;
|
|
3921
|
+
}
|
|
3922
|
+
}
|
|
3923
|
+
/**
|
|
3924
|
+
* Returns if a given legacy imagery's name correspondings to a default source.
|
|
3925
|
+
* @param name
|
|
3926
|
+
* @returns
|
|
3927
|
+
*/
|
|
3928
|
+
function isLegacyImageryDefault(name) {
|
|
3929
|
+
name = legacyMapIdToDefaultId(name);
|
|
3930
|
+
return ProjectViewTile.DefaultImagery.find(function (x) { return x.id == name; }) != null;
|
|
3931
|
+
}
|
|
3744
3932
|
var TileRenderEngine;
|
|
3745
3933
|
(function (TileRenderEngine) {
|
|
3746
3934
|
/**
|
|
@@ -3757,480 +3945,746 @@ var TileRenderEngine;
|
|
|
3757
3945
|
TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
|
|
3758
3946
|
var Map;
|
|
3759
3947
|
(function (Map) {
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
switch (prepLegacyName(tile.Name)) {
|
|
3775
|
-
case EDefaultImagery.BingMapsAerial:
|
|
3776
|
-
// TODO: Read account key if available.
|
|
3777
|
-
provider = new BingMapsImageryProvider({
|
|
3778
|
-
url: "https://dev.virtualearth.net",
|
|
3779
|
-
mapStyle: BingMapsStyle.AERIAL,
|
|
3780
|
-
key: DEFAULT_BING_KEY
|
|
3781
|
-
});
|
|
3782
|
-
break;
|
|
3783
|
-
case EDefaultImagery.BingMapsAerialWithLabels:
|
|
3784
|
-
// TODO: Read account key if available.
|
|
3785
|
-
provider = new BingMapsImageryProvider({
|
|
3786
|
-
url: "https://dev.virtualearth.net",
|
|
3787
|
-
mapStyle: BingMapsStyle.AERIAL_WITH_LABELS,
|
|
3788
|
-
key: DEFAULT_BING_KEY
|
|
3789
|
-
});
|
|
3790
|
-
break;
|
|
3791
|
-
case EDefaultImagery.BingMapsRoads:
|
|
3792
|
-
// TODO: Read account key if available.
|
|
3793
|
-
provider = new BingMapsImageryProvider({
|
|
3794
|
-
url: "https://dev.virtualearth.net",
|
|
3795
|
-
mapStyle: BingMapsStyle.ROAD_ON_DEMAND,
|
|
3796
|
-
key: DEFAULT_BING_KEY
|
|
3797
|
-
});
|
|
3798
|
-
break;
|
|
3799
|
-
case EDefaultImagery.MapboxSatellite:
|
|
3800
|
-
// TODO: Read account key if available.
|
|
3801
|
-
provider = new MapboxImageryProvider({
|
|
3802
|
-
mapId: "mapbox.satellite",
|
|
3803
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
3804
|
-
});
|
|
3805
|
-
break;
|
|
3806
|
-
case EDefaultImagery.MapBoxStreets:
|
|
3807
|
-
// TODO: Read account key if available.
|
|
3808
|
-
provider = new MapboxImageryProvider({
|
|
3809
|
-
mapId: "satellite-streets-v11",
|
|
3810
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
3811
|
-
});
|
|
3812
|
-
break;
|
|
3813
|
-
case EDefaultImagery.MapBoxStreetsClassic:
|
|
3814
|
-
// TODO: Read account key if available.
|
|
3815
|
-
provider = new MapboxImageryProvider({
|
|
3816
|
-
mapId: "streets-v11",
|
|
3817
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
3818
|
-
});
|
|
3819
|
-
break;
|
|
3820
|
-
case EDefaultImagery.EsriWorldImagery:
|
|
3821
|
-
provider = new ArcGisMapServerImageryProvider({
|
|
3822
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
|
|
3823
|
-
enablePickFeatures: false
|
|
3824
|
-
});
|
|
3825
|
-
break;
|
|
3826
|
-
case EDefaultImagery.EsriWorldStreetMap:
|
|
3827
|
-
provider = new ArcGisMapServerImageryProvider({
|
|
3828
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
|
|
3829
|
-
enablePickFeatures: false
|
|
3830
|
-
});
|
|
3831
|
-
break;
|
|
3832
|
-
case EDefaultImagery.EsriNationalGeographic:
|
|
3833
|
-
provider = new ArcGisMapServerImageryProvider({
|
|
3834
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
|
|
3835
|
-
enablePickFeatures: false
|
|
3836
|
-
});
|
|
3837
|
-
break;
|
|
3838
|
-
case EDefaultImagery.OpenStreetMap:
|
|
3839
|
-
provider = new OpenStreetMapImageryProvider({
|
|
3840
|
-
url: "https://a.tile.openstreetmap.org/"
|
|
3841
|
-
});
|
|
3842
|
-
break;
|
|
3843
|
-
case EDefaultImagery.StamenWaterColor:
|
|
3844
|
-
provider = new OpenStreetMapImageryProvider({
|
|
3845
|
-
url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
|
|
3846
|
-
});
|
|
3847
|
-
break;
|
|
3848
|
-
case EDefaultImagery.StamenToner:
|
|
3849
|
-
provider = new OpenStreetMapImageryProvider({
|
|
3850
|
-
url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
|
|
3851
|
-
});
|
|
3852
|
-
break;
|
|
3853
|
-
case EDefaultImagery.Grid:
|
|
3854
|
-
provider = new GridImageryProvider({
|
|
3855
|
-
tilingScheme: new GeographicTilingScheme(),
|
|
3856
|
-
cells: 0,
|
|
3857
|
-
color: Color.fromCssColorString("rgb(97, 151, 237)"),
|
|
3858
|
-
glowColor: Color.fromCssColorString("rgb(54, 54, 54)"),
|
|
3859
|
-
glowWidth: 4,
|
|
3860
|
-
backgroundColor: Color.TRANSPARENT,
|
|
3861
|
-
tileWidth: 256,
|
|
3862
|
-
tileHeight: 256,
|
|
3863
|
-
canvasSize: 256
|
|
3864
|
-
});
|
|
3865
|
-
break;
|
|
3866
|
-
}
|
|
3867
|
-
if (provider) {
|
|
3868
|
-
layer = new ImageryLayer(provider);
|
|
3869
|
-
}
|
|
3870
|
-
}
|
|
3871
|
-
else if (tile.SourceUrl) {
|
|
3872
|
-
var provider = null;
|
|
3873
|
-
var min = tile.Minimum;
|
|
3874
|
-
var max = tile.Maximum;
|
|
3875
|
-
if (min != undefined && min <= -1) {
|
|
3876
|
-
min = undefined;
|
|
3877
|
-
}
|
|
3878
|
-
if (max != undefined && max <= -1) {
|
|
3879
|
-
max = undefined;
|
|
3880
|
-
}
|
|
3881
|
-
switch (tile.Type) {
|
|
3882
|
-
case "BruceImagery":
|
|
3883
|
-
provider = new UrlTemplateImageryProvider({
|
|
3884
|
-
url: tile.SourceUrl,
|
|
3885
|
-
tileHeight: 256,
|
|
3886
|
-
tileWidth: 256
|
|
3887
|
-
});
|
|
3888
|
-
break;
|
|
3889
|
-
case "ArcGisImagery":
|
|
3890
|
-
provider = new OpenStreetMapImageryProvider({
|
|
3891
|
-
url: tile.SourceUrl,
|
|
3892
|
-
fileExtension: tile.FileExtension,
|
|
3893
|
-
minimumLevel: min,
|
|
3894
|
-
maximumLevel: max
|
|
3895
|
-
});
|
|
3896
|
-
break;
|
|
3897
|
-
case "TileMapImagery":
|
|
3898
|
-
provider = new TileMapServiceImageryProvider({
|
|
3899
|
-
url: tile.SourceUrl,
|
|
3900
|
-
fileExtension: tile.FileExtension,
|
|
3901
|
-
minimumLevel: min,
|
|
3902
|
-
maximumLevel: max
|
|
3903
|
-
});
|
|
3904
|
-
break;
|
|
3905
|
-
case "OpenStreetMapImagery":
|
|
3906
|
-
provider = new OpenStreetMapImageryProvider({
|
|
3907
|
-
url: tile.SourceUrl,
|
|
3908
|
-
fileExtension: tile.FileExtension,
|
|
3909
|
-
minimumLevel: min,
|
|
3910
|
-
maximumLevel: max
|
|
3911
|
-
});
|
|
3912
|
-
break;
|
|
3913
|
-
case "MapBoxImagery":
|
|
3914
|
-
// TODO: Read default account key when missing.
|
|
3915
|
-
provider = new UrlTemplateImageryProvider({
|
|
3916
|
-
url: "https://api.mapbox.com/styles/v1/"
|
|
3917
|
-
+ tile.MapBoxUsername + "/" + tile.MapBoxID +
|
|
3918
|
-
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
3919
|
-
+ tile.ProgramKey
|
|
3920
|
-
});
|
|
3921
|
-
break;
|
|
3948
|
+
var V1;
|
|
3949
|
+
(function (V1) {
|
|
3950
|
+
function Render(params) {
|
|
3951
|
+
var enabled = gatherEnabledImageries(params.viewer);
|
|
3952
|
+
var tile = params.data;
|
|
3953
|
+
var bId = createLegacyImageryId(tile);
|
|
3954
|
+
var layer = enabled.find(function (x) { return x._bId == bId; });
|
|
3955
|
+
if (layer) ;
|
|
3956
|
+
else if (isLegacyImageryDefault(tile.Name)) {
|
|
3957
|
+
var defaultId = legacyMapIdToDefaultId(tile.Name);
|
|
3958
|
+
var provider = renderDefaultMapTile(defaultId);
|
|
3959
|
+
if (provider) {
|
|
3960
|
+
layer = new ImageryLayer(provider);
|
|
3961
|
+
}
|
|
3922
3962
|
}
|
|
3923
|
-
if (
|
|
3924
|
-
|
|
3963
|
+
else if (tile.SourceUrl) {
|
|
3964
|
+
var provider = null;
|
|
3965
|
+
var min = tile.Minimum;
|
|
3966
|
+
var max = tile.Maximum;
|
|
3967
|
+
if (min != undefined && min <= -1) {
|
|
3968
|
+
min = undefined;
|
|
3969
|
+
}
|
|
3970
|
+
if (max != undefined && max <= -1) {
|
|
3971
|
+
max = undefined;
|
|
3972
|
+
}
|
|
3973
|
+
switch (tile.Type) {
|
|
3974
|
+
case "BruceImagery":
|
|
3975
|
+
provider = new UrlTemplateImageryProvider({
|
|
3976
|
+
url: tile.SourceUrl,
|
|
3977
|
+
tileHeight: 256,
|
|
3978
|
+
tileWidth: 256
|
|
3979
|
+
});
|
|
3980
|
+
break;
|
|
3981
|
+
case "ArcGisImagery":
|
|
3982
|
+
provider = new OpenStreetMapImageryProvider({
|
|
3983
|
+
url: tile.SourceUrl,
|
|
3984
|
+
fileExtension: tile.FileExtension,
|
|
3985
|
+
minimumLevel: min,
|
|
3986
|
+
maximumLevel: max
|
|
3987
|
+
});
|
|
3988
|
+
break;
|
|
3989
|
+
case "TileMapImagery":
|
|
3990
|
+
provider = new TileMapServiceImageryProvider({
|
|
3991
|
+
url: tile.SourceUrl,
|
|
3992
|
+
fileExtension: tile.FileExtension,
|
|
3993
|
+
minimumLevel: min,
|
|
3994
|
+
maximumLevel: max
|
|
3995
|
+
});
|
|
3996
|
+
break;
|
|
3997
|
+
case "OpenStreetMapImagery":
|
|
3998
|
+
provider = new OpenStreetMapImageryProvider({
|
|
3999
|
+
url: tile.SourceUrl,
|
|
4000
|
+
fileExtension: tile.FileExtension,
|
|
4001
|
+
minimumLevel: min,
|
|
4002
|
+
maximumLevel: max
|
|
4003
|
+
});
|
|
4004
|
+
break;
|
|
4005
|
+
case "MapBoxImagery":
|
|
4006
|
+
// TODO: Read default account key when missing.
|
|
4007
|
+
provider = new UrlTemplateImageryProvider({
|
|
4008
|
+
url: "https://api.mapbox.com/styles/v1/"
|
|
4009
|
+
+ tile.MapBoxUsername + "/" + tile.MapBoxID +
|
|
4010
|
+
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
4011
|
+
+ tile.ProgramKey
|
|
4012
|
+
});
|
|
4013
|
+
break;
|
|
4014
|
+
}
|
|
4015
|
+
if (provider) {
|
|
4016
|
+
layer = new ImageryLayer(provider);
|
|
4017
|
+
}
|
|
3925
4018
|
}
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
4019
|
+
if (layer) {
|
|
4020
|
+
layer._bId = bId;
|
|
4021
|
+
layer._bName = tile.Name;
|
|
4022
|
+
if (!params.viewer.imageryLayers.contains(layer)) {
|
|
4023
|
+
params.viewer.imageryLayers.add(layer);
|
|
4024
|
+
}
|
|
3932
4025
|
}
|
|
4026
|
+
return layer;
|
|
3933
4027
|
}
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
4028
|
+
V1.Render = Render;
|
|
4029
|
+
function RenderView(params) {
|
|
4030
|
+
var _a;
|
|
4031
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4032
|
+
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;
|
|
4033
|
+
return __generator(this, function (_b) {
|
|
4034
|
+
switch (_b.label) {
|
|
4035
|
+
case 0:
|
|
4036
|
+
api = params.apiGetter.getApi();
|
|
4037
|
+
return [4 /*yield*/, ProjectView.Get(api, params.viewId)];
|
|
4038
|
+
case 1:
|
|
4039
|
+
view = _b.sent();
|
|
4040
|
+
bookmark = null;
|
|
4041
|
+
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
4042
|
+
return [4 /*yield*/, ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
4043
|
+
case 2:
|
|
4044
|
+
bookmark = (_b.sent());
|
|
4045
|
+
_b.label = 3;
|
|
4046
|
+
case 3:
|
|
4047
|
+
vSettings = view.Settings;
|
|
4048
|
+
bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
|
|
4049
|
+
data = [];
|
|
4050
|
+
dataNames = [];
|
|
4051
|
+
if (bSettings === null || bSettings === void 0 ? void 0 : bSettings.imagery) {
|
|
4052
|
+
for (i = 0; i < bSettings.imagery.length; i++) {
|
|
4053
|
+
source = bSettings.imagery[i];
|
|
4054
|
+
dataNames.push(source.title);
|
|
4055
|
+
}
|
|
3961
4056
|
}
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
|
|
3972
|
-
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
4057
|
+
else if (vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultMapTiles) {
|
|
4058
|
+
dataNames.push(vSettings.DefaultMapTiles);
|
|
4059
|
+
}
|
|
4060
|
+
tiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) !== null && _a !== void 0 ? _a : [];
|
|
4061
|
+
return [4 /*yield*/, ProjectViewLegacyTile.MergeMapTemplateData(params.apiGetter, tiles, (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumMapSources) == null)];
|
|
4062
|
+
case 4:
|
|
4063
|
+
_b.sent();
|
|
4064
|
+
for (i = 0; i < dataNames.length; i++) {
|
|
4065
|
+
name_1 = dataNames[i];
|
|
4066
|
+
for (j = 0; j < tiles.length; j++) {
|
|
4067
|
+
tile = tiles[j];
|
|
4068
|
+
if (CompareLegacyNames(tile.Name, name_1)) {
|
|
4069
|
+
data.push(tile);
|
|
4070
|
+
break;
|
|
4071
|
+
}
|
|
3977
4072
|
}
|
|
3978
4073
|
}
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
4074
|
+
enabled = gatherEnabledImageries(params.viewer);
|
|
4075
|
+
layers = [];
|
|
4076
|
+
// Gather layers we want to render.
|
|
4077
|
+
// Any new layer is added to viewer at the bottom.
|
|
4078
|
+
if (params.ignoreIds) {
|
|
4079
|
+
_loop_1 = function (i) {
|
|
4080
|
+
var id = params.ignoreIds[i];
|
|
4081
|
+
var layer = enabled.find(function (x) {
|
|
4082
|
+
var layer = x;
|
|
4083
|
+
if (layer._bId === id) {
|
|
4084
|
+
return true;
|
|
4085
|
+
}
|
|
4086
|
+
});
|
|
4087
|
+
if (layer) {
|
|
4088
|
+
layers.push(layer);
|
|
3991
4089
|
}
|
|
4090
|
+
};
|
|
4091
|
+
for (i = 0; i < params.ignoreIds.length; i++) {
|
|
4092
|
+
_loop_1(i);
|
|
4093
|
+
}
|
|
4094
|
+
}
|
|
4095
|
+
for (i = 0; i < data.length; i++) {
|
|
4096
|
+
tile = data[i];
|
|
4097
|
+
layer = Render({
|
|
4098
|
+
apiGetter: params.apiGetter,
|
|
4099
|
+
viewer: params.viewer,
|
|
4100
|
+
data: tile,
|
|
3992
4101
|
});
|
|
3993
4102
|
if (layer) {
|
|
3994
4103
|
layers.push(layer);
|
|
3995
4104
|
}
|
|
3996
|
-
};
|
|
3997
|
-
for (i = 0; i < params.ignoreIds.length; i++) {
|
|
3998
|
-
_loop_1(i);
|
|
3999
4105
|
}
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4106
|
+
// Sort currently enabled (after new ones added) to match desired order.
|
|
4107
|
+
enabled = gatherEnabledImageries(params.viewer);
|
|
4108
|
+
enabled.sort(function (a, b) {
|
|
4109
|
+
var indexA = layers.indexOf(a);
|
|
4110
|
+
var indexB = layers.indexOf(b);
|
|
4111
|
+
if (indexA < 0 && indexB < 0) {
|
|
4112
|
+
return 0;
|
|
4113
|
+
}
|
|
4114
|
+
if (indexA < 0) {
|
|
4115
|
+
return 1;
|
|
4116
|
+
}
|
|
4117
|
+
if (indexB < 0) {
|
|
4118
|
+
return -1;
|
|
4119
|
+
}
|
|
4120
|
+
return indexA - indexB;
|
|
4007
4121
|
});
|
|
4008
|
-
|
|
4009
|
-
|
|
4122
|
+
// Move enabled layers to match desired order.
|
|
4123
|
+
// Remove any layers that aren't in enabled list.
|
|
4124
|
+
for (i = 0; i < enabled.length; i++) {
|
|
4125
|
+
layer = enabled[i];
|
|
4126
|
+
if (layers.includes(layer)) {
|
|
4127
|
+
params.viewer.imageryLayers.raiseToTop(layer);
|
|
4128
|
+
}
|
|
4129
|
+
else {
|
|
4130
|
+
params.viewer.imageryLayers.remove(layer);
|
|
4131
|
+
}
|
|
4010
4132
|
}
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
|
|
4014
|
-
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
|
|
4133
|
+
return [2 /*return*/];
|
|
4134
|
+
}
|
|
4135
|
+
});
|
|
4136
|
+
});
|
|
4137
|
+
}
|
|
4138
|
+
V1.RenderView = RenderView;
|
|
4139
|
+
})(V1 = Map.V1 || (Map.V1 = {}));
|
|
4140
|
+
var V2;
|
|
4141
|
+
(function (V2) {
|
|
4142
|
+
function GetOrCreateLayer(viewer, apiGetter, meta) {
|
|
4143
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4144
|
+
var defaultImg, provider, api, tileset, settings, layer;
|
|
4145
|
+
return __generator(this, function (_a) {
|
|
4146
|
+
switch (_a.label) {
|
|
4147
|
+
case 0:
|
|
4148
|
+
defaultImg = meta.accountId ? null : ProjectViewTile.DefaultImagery.find(function (x) { return x.id === meta.tilesetId; });
|
|
4149
|
+
provider = null;
|
|
4150
|
+
if (!defaultImg) return [3 /*break*/, 1];
|
|
4151
|
+
provider = renderDefaultMapTile(defaultImg.id);
|
|
4152
|
+
return [3 /*break*/, 3];
|
|
4153
|
+
case 1:
|
|
4154
|
+
api = apiGetter.getApi(meta.accountId);
|
|
4155
|
+
return [4 /*yield*/, Tileset.Get(api, meta.tilesetId)];
|
|
4156
|
+
case 2:
|
|
4157
|
+
tileset = _a.sent();
|
|
4158
|
+
if (tileset.type === Tileset.EType.GeoMap) {
|
|
4159
|
+
provider = new TileMapServiceImageryProvider({
|
|
4160
|
+
url: Tileset.GetPublicFileUrl(api, meta.tilesetId, ""),
|
|
4161
|
+
fileExtension: ".png"
|
|
4162
|
+
});
|
|
4019
4163
|
}
|
|
4020
|
-
if (
|
|
4021
|
-
|
|
4164
|
+
else if (tileset.type === Tileset.EType.ExternalGeoMap) {
|
|
4165
|
+
settings = tileset.settings;
|
|
4166
|
+
switch (settings.mapType) {
|
|
4167
|
+
case TilesetExtMapTiles.EType.CesiumIon:
|
|
4168
|
+
provider = new IonImageryProvider({
|
|
4169
|
+
assetId: settings.ionId,
|
|
4170
|
+
// TODO
|
|
4171
|
+
accessToken: null
|
|
4172
|
+
});
|
|
4173
|
+
break;
|
|
4174
|
+
case TilesetExtMapTiles.EType.MapBoxImagery:
|
|
4175
|
+
// TODO: Read default account key when missing.
|
|
4176
|
+
provider = new UrlTemplateImageryProvider({
|
|
4177
|
+
url: "https://api.mapbox.com/styles/v1/"
|
|
4178
|
+
+ settings.mapBoxAccount + "/" + settings.mapBoxStyleId +
|
|
4179
|
+
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
4180
|
+
+ settings.mapBoxKey
|
|
4181
|
+
});
|
|
4182
|
+
break;
|
|
4183
|
+
case TilesetExtMapTiles.EType.OpenStreetMapImagery:
|
|
4184
|
+
provider = new OpenStreetMapImageryProvider({
|
|
4185
|
+
url: settings.url,
|
|
4186
|
+
fileExtension: settings.sourceExt
|
|
4187
|
+
});
|
|
4188
|
+
break;
|
|
4189
|
+
case TilesetExtMapTiles.EType.TileMapImagery:
|
|
4190
|
+
provider = new TileMapServiceImageryProvider({
|
|
4191
|
+
url: settings.url,
|
|
4192
|
+
fileExtension: settings.sourceExt
|
|
4193
|
+
});
|
|
4194
|
+
break;
|
|
4195
|
+
}
|
|
4022
4196
|
}
|
|
4023
|
-
if (
|
|
4024
|
-
|
|
4197
|
+
else if (tileset.type === Tileset.EType.EntitiesMap) {
|
|
4198
|
+
provider = new UrlTemplateImageryProvider({
|
|
4199
|
+
url: Tileset.GetPublicFileUrl(api, meta.tilesetId, "{z}/{x}/{y}.png"),
|
|
4200
|
+
tileHeight: 256,
|
|
4201
|
+
tileWidth: 256
|
|
4202
|
+
});
|
|
4025
4203
|
}
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
layer = enabled[i];
|
|
4033
|
-
if (layers.includes(layer)) {
|
|
4034
|
-
params.viewer.imageryLayers.raiseToTop(layer);
|
|
4204
|
+
_a.label = 3;
|
|
4205
|
+
case 3:
|
|
4206
|
+
if (provider) {
|
|
4207
|
+
layer = viewer.imageryLayers.addImageryProvider(provider);
|
|
4208
|
+
layer._bMeta = meta;
|
|
4209
|
+
return [2 /*return*/, layer];
|
|
4035
4210
|
}
|
|
4036
|
-
|
|
4037
|
-
|
|
4211
|
+
return [2 /*return*/, null];
|
|
4212
|
+
}
|
|
4213
|
+
});
|
|
4214
|
+
});
|
|
4215
|
+
}
|
|
4216
|
+
V2.GetOrCreateLayer = GetOrCreateLayer;
|
|
4217
|
+
function Render(params) {
|
|
4218
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4219
|
+
var _loop_2, i, curEnabled, toDisable, curEnabledArr, _loop_3, i, i, _loop_4, i;
|
|
4220
|
+
return __generator(this, function (_a) {
|
|
4221
|
+
switch (_a.label) {
|
|
4222
|
+
case 0:
|
|
4223
|
+
_loop_2 = function (i) {
|
|
4224
|
+
var enabled, source;
|
|
4225
|
+
return __generator(this, function (_a) {
|
|
4226
|
+
switch (_a.label) {
|
|
4227
|
+
case 0:
|
|
4228
|
+
enabled = params.enabled[i];
|
|
4229
|
+
source = params.sources.find(function (x) { return x.accountId === enabled.accountId && x.tilesetId === enabled.tilesetId; });
|
|
4230
|
+
if (!source) {
|
|
4231
|
+
console.error("Missing source for enabled imagery.", enabled);
|
|
4232
|
+
}
|
|
4233
|
+
return [4 /*yield*/, GetOrCreateLayer(params.viewer, params.apiGetter, {
|
|
4234
|
+
accountId: source.accountId,
|
|
4235
|
+
tilesetId: source.tilesetId,
|
|
4236
|
+
})];
|
|
4237
|
+
case 1:
|
|
4238
|
+
_a.sent();
|
|
4239
|
+
return [2 /*return*/];
|
|
4240
|
+
}
|
|
4241
|
+
});
|
|
4242
|
+
};
|
|
4243
|
+
i = 0;
|
|
4244
|
+
_a.label = 1;
|
|
4245
|
+
case 1:
|
|
4246
|
+
if (!(i < params.enabled.length)) return [3 /*break*/, 4];
|
|
4247
|
+
return [5 /*yield**/, _loop_2(i)];
|
|
4248
|
+
case 2:
|
|
4249
|
+
_a.sent();
|
|
4250
|
+
_a.label = 3;
|
|
4251
|
+
case 3:
|
|
4252
|
+
i++;
|
|
4253
|
+
return [3 /*break*/, 1];
|
|
4254
|
+
case 4:
|
|
4255
|
+
curEnabled = params.viewer.imageryLayers;
|
|
4256
|
+
toDisable = [];
|
|
4257
|
+
curEnabledArr = [];
|
|
4258
|
+
_loop_3 = function (i) {
|
|
4259
|
+
var layer = curEnabled.get(i);
|
|
4260
|
+
var meta = layer === null || layer === void 0 ? void 0 : layer._bMeta;
|
|
4261
|
+
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); });
|
|
4262
|
+
if (disable) {
|
|
4263
|
+
toDisable.push(layer);
|
|
4264
|
+
}
|
|
4265
|
+
else {
|
|
4266
|
+
curEnabledArr.push(layer);
|
|
4267
|
+
}
|
|
4268
|
+
};
|
|
4269
|
+
for (i = 0; i < curEnabled.length; i++) {
|
|
4270
|
+
_loop_3(i);
|
|
4038
4271
|
}
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4272
|
+
for (i = 0; i < toDisable.length; i++) {
|
|
4273
|
+
params.viewer.imageryLayers.remove(toDisable[i]);
|
|
4274
|
+
}
|
|
4275
|
+
_loop_4 = function (i) {
|
|
4276
|
+
var enabled = params.enabled[i];
|
|
4277
|
+
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; });
|
|
4278
|
+
if (layer) {
|
|
4279
|
+
params.viewer.imageryLayers.raiseToTop(layer);
|
|
4280
|
+
layer.alpha = Number(enabled.alpha == null ? 1 : enabled.alpha);
|
|
4281
|
+
layer.brightness = Number(enabled.brightness == null ? 1 : enabled.brightness);
|
|
4282
|
+
layer.contrast = Number(enabled.contrast == null ? 1 : enabled.contrast);
|
|
4283
|
+
layer.hue = Number(enabled.hue == null ? 0 : enabled.hue);
|
|
4284
|
+
layer.saturation = Number(enabled.saturation == null ? 1 : enabled.saturation);
|
|
4285
|
+
layer.gamma = Number(enabled.gamma == null ? 1 : enabled.gamma);
|
|
4286
|
+
}
|
|
4287
|
+
};
|
|
4288
|
+
for (i = 0; i < params.enabled.length; i++) {
|
|
4289
|
+
_loop_4(i);
|
|
4290
|
+
}
|
|
4291
|
+
return [2 /*return*/];
|
|
4292
|
+
}
|
|
4293
|
+
});
|
|
4042
4294
|
});
|
|
4043
|
-
}
|
|
4044
|
-
|
|
4045
|
-
Map.
|
|
4295
|
+
}
|
|
4296
|
+
V2.Render = Render;
|
|
4297
|
+
})(V2 = Map.V2 || (Map.V2 = {}));
|
|
4046
4298
|
})(Map = TileRenderEngine.Map || (TileRenderEngine.Map = {}));
|
|
4047
4299
|
var Terrain;
|
|
4048
4300
|
(function (Terrain) {
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
break;
|
|
4075
|
-
case EDefaultTerrain.FlatTerrain:
|
|
4076
|
-
provider = new EllipsoidTerrainProvider();
|
|
4077
|
-
break;
|
|
4301
|
+
var V1;
|
|
4302
|
+
(function (V1) {
|
|
4303
|
+
function Render(params) {
|
|
4304
|
+
var _a;
|
|
4305
|
+
var bId = createLegacyTerrId(params.data);
|
|
4306
|
+
var curProvider = params.viewer.terrainProvider;
|
|
4307
|
+
if (curProvider._bId && curProvider._bId === bId) {
|
|
4308
|
+
return;
|
|
4309
|
+
}
|
|
4310
|
+
var provider = null;
|
|
4311
|
+
if (isLegacyTerrainDefault(params.data.Name)) {
|
|
4312
|
+
var id = legacyTerrIdToDefaultId(params.data.Name);
|
|
4313
|
+
provider = renderDefaultTerrTile(id);
|
|
4314
|
+
}
|
|
4315
|
+
else if (params.data.SourceUrl) {
|
|
4316
|
+
provider = new CesiumTerrainProvider({
|
|
4317
|
+
url: params.data.SourceUrl,
|
|
4318
|
+
requestWaterMask: params.data.RequestWaterMask,
|
|
4319
|
+
requestVertexNormals: true
|
|
4320
|
+
});
|
|
4321
|
+
}
|
|
4322
|
+
if (provider) {
|
|
4323
|
+
provider._bId = bId;
|
|
4324
|
+
provider._bName = (_a = params.data) === null || _a === void 0 ? void 0 : _a.Name;
|
|
4325
|
+
params.viewer.terrainProvider = provider;
|
|
4078
4326
|
}
|
|
4079
4327
|
}
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
|
|
4083
|
-
|
|
4084
|
-
|
|
4328
|
+
V1.Render = Render;
|
|
4329
|
+
function RenderView(params) {
|
|
4330
|
+
var _a, _b;
|
|
4331
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4332
|
+
var api, view, bookmark, vSettings, bSettings, terrainTiles, terrainTile, terrainTileName, i, tile;
|
|
4333
|
+
return __generator(this, function (_c) {
|
|
4334
|
+
switch (_c.label) {
|
|
4335
|
+
case 0:
|
|
4336
|
+
api = params.apiGetter.getApi();
|
|
4337
|
+
return [4 /*yield*/, ProjectView.Get(api, params.viewId)];
|
|
4338
|
+
case 1:
|
|
4339
|
+
view = _c.sent();
|
|
4340
|
+
bookmark = null;
|
|
4341
|
+
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
4342
|
+
return [4 /*yield*/, ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
4343
|
+
case 2:
|
|
4344
|
+
bookmark = (_c.sent());
|
|
4345
|
+
_c.label = 3;
|
|
4346
|
+
case 3:
|
|
4347
|
+
vSettings = view.Settings;
|
|
4348
|
+
bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
|
|
4349
|
+
terrainTiles = (_a = vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumTerrainSources) !== null && _a !== void 0 ? _a : [];
|
|
4350
|
+
terrainTile = null;
|
|
4351
|
+
terrainTileName = null;
|
|
4352
|
+
if ((_b = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _b === void 0 ? void 0 : _b.terrain) {
|
|
4353
|
+
terrainTileName = bSettings.terrain;
|
|
4354
|
+
}
|
|
4355
|
+
else {
|
|
4356
|
+
terrainTileName = vSettings === null || vSettings === void 0 ? void 0 : vSettings.DefaultTerrain;
|
|
4357
|
+
}
|
|
4358
|
+
return [4 /*yield*/, ProjectViewLegacyTile.MergeTerrainTemplateData(params.apiGetter, terrainTiles, (vSettings === null || vSettings === void 0 ? void 0 : vSettings.CesiumTerrainSources) == null)];
|
|
4359
|
+
case 4:
|
|
4360
|
+
_c.sent();
|
|
4361
|
+
for (i = 0; i < terrainTiles.length; i++) {
|
|
4362
|
+
tile = terrainTiles[i];
|
|
4363
|
+
if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
|
|
4364
|
+
terrainTile = tile;
|
|
4365
|
+
break;
|
|
4366
|
+
}
|
|
4367
|
+
}
|
|
4368
|
+
if (terrainTile) {
|
|
4369
|
+
Render({
|
|
4370
|
+
data: terrainTile,
|
|
4371
|
+
viewer: params.viewer,
|
|
4372
|
+
});
|
|
4373
|
+
}
|
|
4374
|
+
return [2 /*return*/];
|
|
4375
|
+
}
|
|
4376
|
+
});
|
|
4085
4377
|
});
|
|
4086
4378
|
}
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
return [4 /*yield*/, ProjectView.Get(api, params.viewId)];
|
|
4103
|
-
case 1:
|
|
4104
|
-
view = _f.sent();
|
|
4105
|
-
bookmark = null;
|
|
4106
|
-
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
4107
|
-
return [4 /*yield*/, ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
4108
|
-
case 2:
|
|
4109
|
-
bookmark = _f.sent();
|
|
4110
|
-
_f.label = 3;
|
|
4111
|
-
case 3:
|
|
4112
|
-
terrainTiles = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.CesiumTerrainSources) !== null && _b !== void 0 ? _b : [];
|
|
4113
|
-
terrainTile = null;
|
|
4114
|
-
terrainTileName = null;
|
|
4115
|
-
if ((_c = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _c === void 0 ? void 0 : _c.terrain) {
|
|
4116
|
-
terrainTileName = bookmark.Settings.terrain;
|
|
4117
|
-
}
|
|
4118
|
-
else {
|
|
4119
|
-
terrainTileName = (_d = view.Settings) === null || _d === void 0 ? void 0 : _d.DefaultTerrain;
|
|
4120
|
-
}
|
|
4121
|
-
return [4 /*yield*/, ProjectViewTileSource.MergeTerrainTemplateData(params.apiGetter, terrainTiles, ((_e = view.Settings) === null || _e === void 0 ? void 0 : _e.CesiumTerrainSources) == null)];
|
|
4122
|
-
case 4:
|
|
4123
|
-
_f.sent();
|
|
4124
|
-
for (i = 0; i < terrainTiles.length; i++) {
|
|
4125
|
-
tile = terrainTiles[i];
|
|
4126
|
-
if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
|
|
4127
|
-
terrainTile = tile;
|
|
4128
|
-
break;
|
|
4379
|
+
V1.RenderView = RenderView;
|
|
4380
|
+
})(V1 = Terrain.V1 || (Terrain.V1 = {}));
|
|
4381
|
+
var V2;
|
|
4382
|
+
(function (V2) {
|
|
4383
|
+
function Render(params) {
|
|
4384
|
+
var _a;
|
|
4385
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4386
|
+
var enabledMeta, defaultTerr, provider, api, tileset, url, vertexes, settings;
|
|
4387
|
+
return __generator(this, function (_b) {
|
|
4388
|
+
switch (_b.label) {
|
|
4389
|
+
case 0:
|
|
4390
|
+
enabledMeta = (_a = params.viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a._bMeta;
|
|
4391
|
+
if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.source.tilesetId &&
|
|
4392
|
+
(enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.source.accountId) {
|
|
4393
|
+
return [2 /*return*/];
|
|
4129
4394
|
}
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4395
|
+
defaultTerr = params.source.accountId ? null : ProjectViewTile.DefaultTerrains.find(function (x) { return x.id === params.source.tilesetId; });
|
|
4396
|
+
provider = null;
|
|
4397
|
+
if (!defaultTerr) return [3 /*break*/, 1];
|
|
4398
|
+
provider = renderDefaultTerrTile(defaultTerr.id);
|
|
4399
|
+
return [3 /*break*/, 3];
|
|
4400
|
+
case 1:
|
|
4401
|
+
api = params.apiGetter.getApi(params.source.accountId);
|
|
4402
|
+
return [4 /*yield*/, Tileset.Get(api, params.source.tilesetId)];
|
|
4403
|
+
case 2:
|
|
4404
|
+
tileset = _b.sent();
|
|
4405
|
+
url = void 0;
|
|
4406
|
+
vertexes = true;
|
|
4407
|
+
if (tileset.type === Tileset.EType.Terrain) {
|
|
4408
|
+
url = Tileset.GetPublicFileUrl(api, tileset.id, "");
|
|
4409
|
+
}
|
|
4410
|
+
else if (tileset.type === Tileset.EType.ExternalTerrain) {
|
|
4411
|
+
settings = tileset.settings;
|
|
4412
|
+
url = settings.url;
|
|
4413
|
+
vertexes = settings.requestVertexNormals == null ? true : settings.requestVertexNormals;
|
|
4414
|
+
}
|
|
4415
|
+
else {
|
|
4416
|
+
console.error("Invalid tileset type.", tileset);
|
|
4417
|
+
}
|
|
4418
|
+
if (url) {
|
|
4419
|
+
provider = new CesiumTerrainProvider({
|
|
4420
|
+
url: url,
|
|
4421
|
+
requestVertexNormals: vertexes
|
|
4422
|
+
});
|
|
4423
|
+
}
|
|
4424
|
+
_b.label = 3;
|
|
4425
|
+
case 3:
|
|
4426
|
+
if (provider) {
|
|
4427
|
+
provider._bMeta = {
|
|
4428
|
+
accountId: params.source.accountId,
|
|
4429
|
+
tilesetId: params.source.tilesetId
|
|
4430
|
+
};
|
|
4431
|
+
params.viewer.terrainProvider = provider;
|
|
4432
|
+
}
|
|
4433
|
+
return [2 /*return*/];
|
|
4434
|
+
}
|
|
4435
|
+
});
|
|
4139
4436
|
});
|
|
4140
|
-
}
|
|
4141
|
-
|
|
4142
|
-
Terrain.
|
|
4437
|
+
}
|
|
4438
|
+
V2.Render = Render;
|
|
4439
|
+
})(V2 = Terrain.V2 || (Terrain.V2 = {}));
|
|
4143
4440
|
})(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
|
|
4144
4441
|
})(TileRenderEngine || (TileRenderEngine = {}));
|
|
4145
4442
|
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
function
|
|
4149
|
-
var
|
|
4150
|
-
return
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
return [4 /*yield*/, ProjectView.Get(api, params.viewId)];
|
|
4157
|
-
case 1:
|
|
4158
|
-
view = _f.sent();
|
|
4159
|
-
bookmark = null;
|
|
4160
|
-
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
4161
|
-
return [4 /*yield*/, ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
4162
|
-
case 2:
|
|
4163
|
-
bookmark = _f.sent();
|
|
4164
|
-
_f.label = 3;
|
|
4165
|
-
case 3: return [4 /*yield*/, TileRenderEngine.Terrain.RenderLegacyView({
|
|
4443
|
+
function renderV1(params, bookmark, view) {
|
|
4444
|
+
var _a, _b;
|
|
4445
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4446
|
+
var vSettings, bSettings, frustum, scene, curFrustum, camera, pos, go, enabledItems, newItemIds, _i, enabledItems_1, id;
|
|
4447
|
+
return __generator(this, function (_c) {
|
|
4448
|
+
switch (_c.label) {
|
|
4449
|
+
case 0:
|
|
4450
|
+
vSettings = view.Settings;
|
|
4451
|
+
bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
|
|
4452
|
+
return [4 /*yield*/, TileRenderEngine.Terrain.V1.RenderView({
|
|
4166
4453
|
apiGetter: params.apiGetter,
|
|
4167
4454
|
bookmarkId: params.bookmarkId,
|
|
4168
4455
|
viewer: params.manager.Viewer,
|
|
4169
4456
|
viewId: params.viewId,
|
|
4170
4457
|
})];
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4458
|
+
case 1:
|
|
4459
|
+
_c.sent();
|
|
4460
|
+
return [4 /*yield*/, TileRenderEngine.Map.V1.RenderView({
|
|
4461
|
+
apiGetter: params.apiGetter,
|
|
4462
|
+
bookmarkId: params.bookmarkId,
|
|
4463
|
+
viewer: params.manager.Viewer,
|
|
4464
|
+
viewId: params.viewId,
|
|
4465
|
+
ignoreIds: []
|
|
4466
|
+
})];
|
|
4467
|
+
case 2:
|
|
4468
|
+
_c.sent();
|
|
4469
|
+
frustum = bSettings === null || bSettings === void 0 ? void 0 : bSettings.cameraFrustum;
|
|
4470
|
+
if (frustum == null) {
|
|
4471
|
+
frustum = Camera.EFrustum.Perspective;
|
|
4472
|
+
}
|
|
4473
|
+
scene = params.manager.Viewer.scene;
|
|
4474
|
+
curFrustum = scene.camera.frustum instanceof OrthographicFrustum ? Camera.EFrustum.Orthographic : Camera.EFrustum.Perspective;
|
|
4475
|
+
if (curFrustum != frustum) {
|
|
4476
|
+
if (frustum == Camera.EFrustum.Perspective) {
|
|
4477
|
+
scene.camera.switchToPerspectiveFrustum();
|
|
4478
|
+
scene.screenSpaceCameraController.enableTilt = true;
|
|
4185
4479
|
}
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4480
|
+
else {
|
|
4481
|
+
scene.camera.switchToOrthographicFrustum();
|
|
4482
|
+
scene.screenSpaceCameraController.enableTilt = false;
|
|
4483
|
+
}
|
|
4484
|
+
params.skipTransition = true;
|
|
4485
|
+
}
|
|
4486
|
+
camera = bookmark.Camera;
|
|
4487
|
+
pos = Cartesian3.fromDegrees(+camera.position.longitude, +camera.position.latitude, +camera.position.height);
|
|
4488
|
+
params.manager.Viewer.scene.camera.flyTo({
|
|
4489
|
+
destination: pos,
|
|
4490
|
+
orientation: {
|
|
4491
|
+
heading: +camera.heading,
|
|
4492
|
+
pitch: +camera.pitch,
|
|
4493
|
+
roll: +camera.roll
|
|
4494
|
+
},
|
|
4495
|
+
duration: params.skipTransition ? 0 : 2
|
|
4496
|
+
});
|
|
4497
|
+
go = (_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _a === void 0 ? void 0 : _a.groundOcclusion;
|
|
4498
|
+
if (go == null) {
|
|
4499
|
+
go = vSettings === null || vSettings === void 0 ? void 0 : vSettings.GroundOcclusion;
|
|
4500
|
+
}
|
|
4501
|
+
if (go == null) {
|
|
4502
|
+
go = false;
|
|
4503
|
+
}
|
|
4504
|
+
params.manager.Viewer.scene.globe.depthTestAgainstTerrain = go;
|
|
4505
|
+
enabledItems = params.manager.GetEnabledItemIds();
|
|
4506
|
+
newItemIds = (_b = bSettings === null || bSettings === void 0 ? void 0 : bSettings.selectedItemIds) !== null && _b !== void 0 ? _b : [];
|
|
4507
|
+
for (_i = 0, enabledItems_1 = enabledItems; _i < enabledItems_1.length; _i++) {
|
|
4508
|
+
id = enabledItems_1[_i];
|
|
4509
|
+
if (newItemIds.indexOf(id) === -1) {
|
|
4510
|
+
params.manager.RemoveItemById(id);
|
|
4198
4511
|
}
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4512
|
+
}
|
|
4513
|
+
if (!params.bookmarkId) return [3 /*break*/, 4];
|
|
4514
|
+
return [4 /*yield*/, RenderHelper.RenderBookmarkItems({
|
|
4515
|
+
apiGetter: params.apiGetter,
|
|
4516
|
+
manager: params.manager,
|
|
4517
|
+
}, params.viewId, params.bookmarkId)];
|
|
4518
|
+
case 3:
|
|
4519
|
+
_c.sent();
|
|
4520
|
+
_c.label = 4;
|
|
4521
|
+
case 4: return [2 /*return*/];
|
|
4522
|
+
}
|
|
4523
|
+
});
|
|
4524
|
+
});
|
|
4525
|
+
}
|
|
4526
|
+
function renderV2(params, bookmark, view) {
|
|
4527
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
4528
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4529
|
+
var viewer, scene, vSettings, bSettings, defaults, camera, newLens, curLens, transition, pos, gOcclusion, terrain, source, imagery, curEnabled, newItemIds, _i, curEnabled_1, id;
|
|
4530
|
+
return __generator(this, function (_o) {
|
|
4531
|
+
switch (_o.label) {
|
|
4532
|
+
case 0:
|
|
4533
|
+
viewer = params.manager.Viewer;
|
|
4534
|
+
scene = viewer.scene;
|
|
4535
|
+
vSettings = view.Settings;
|
|
4536
|
+
bSettings = ((_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) !== null && _a !== void 0 ? _a : {});
|
|
4537
|
+
defaults = (_b = vSettings.defaults) !== null && _b !== void 0 ? _b : {};
|
|
4538
|
+
camera = ((_c = bookmark.Camera) !== null && _c !== void 0 ? _c : {});
|
|
4539
|
+
newLens = camera.cameraFrustum;
|
|
4540
|
+
if (newLens == null) {
|
|
4541
|
+
newLens = (_d = defaults.camera) === null || _d === void 0 ? void 0 : _d.cameraFrustum;
|
|
4542
|
+
}
|
|
4543
|
+
if (newLens == null) {
|
|
4544
|
+
// TODO: Need global default.
|
|
4545
|
+
newLens = Camera.EFrustum.Perspective;
|
|
4546
|
+
}
|
|
4547
|
+
curLens = scene.camera.frustum instanceof OrthographicFrustum ?
|
|
4548
|
+
Camera.EFrustum.Orthographic :
|
|
4549
|
+
Camera.EFrustum.Perspective;
|
|
4550
|
+
if (newLens != curLens) {
|
|
4551
|
+
if (newLens == Camera.EFrustum.Perspective) {
|
|
4552
|
+
scene.camera.switchToPerspectiveFrustum();
|
|
4553
|
+
scene.screenSpaceCameraController.enableTilt = true;
|
|
4554
|
+
}
|
|
4555
|
+
else {
|
|
4556
|
+
scene.camera.switchToOrthographicFrustum();
|
|
4557
|
+
scene.screenSpaceCameraController.enableTilt = false;
|
|
4558
|
+
}
|
|
4559
|
+
}
|
|
4560
|
+
transition = params.skipTransition ? 0 : curLens === newLens ? camera.transition : 0;
|
|
4561
|
+
if (transition == null) {
|
|
4562
|
+
transition = (_e = defaults.camera) === null || _e === void 0 ? void 0 : _e.transition;
|
|
4563
|
+
}
|
|
4564
|
+
if (transition == null) {
|
|
4565
|
+
// TODO: Need global default.
|
|
4566
|
+
transition = 2000;
|
|
4567
|
+
}
|
|
4568
|
+
if (Carto.ValidateCarto(camera)) {
|
|
4569
|
+
pos = Cartesian3.fromDegrees(+camera.longitude, +camera.latitude, +camera.altitude);
|
|
4570
|
+
scene.camera.flyTo({
|
|
4202
4571
|
destination: pos,
|
|
4203
4572
|
orientation: {
|
|
4204
4573
|
heading: +camera.heading,
|
|
4205
4574
|
pitch: +camera.pitch,
|
|
4206
4575
|
roll: +camera.roll
|
|
4207
4576
|
},
|
|
4208
|
-
duration:
|
|
4577
|
+
duration: transition != 0 ? transition / 1000 : 0
|
|
4209
4578
|
});
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4222
|
-
|
|
4223
|
-
|
|
4579
|
+
}
|
|
4580
|
+
gOcclusion = bSettings === null || bSettings === void 0 ? void 0 : bSettings.groundOcclusion;
|
|
4581
|
+
if (gOcclusion == null) {
|
|
4582
|
+
gOcclusion = (_f = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _f === void 0 ? void 0 : _f.groundOcclusion;
|
|
4583
|
+
}
|
|
4584
|
+
if (gOcclusion == null) {
|
|
4585
|
+
// TODO: Need global default.
|
|
4586
|
+
gOcclusion = true;
|
|
4587
|
+
}
|
|
4588
|
+
scene.globe.depthTestAgainstTerrain = Boolean(gOcclusion);
|
|
4589
|
+
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;
|
|
4590
|
+
if (!terrain) return [3 /*break*/, 2];
|
|
4591
|
+
source = (_j = vSettings.terrains) === null || _j === void 0 ? void 0 : _j.find(function (x) { return x.accountId === terrain.accountId && x.tilesetId === terrain.tilesetId; });
|
|
4592
|
+
if (!source) return [3 /*break*/, 2];
|
|
4593
|
+
return [4 /*yield*/, TileRenderEngine.Terrain.V2.Render({
|
|
4594
|
+
apiGetter: params.apiGetter,
|
|
4595
|
+
enabled: terrain,
|
|
4596
|
+
source: source,
|
|
4597
|
+
viewer: params.manager.Viewer,
|
|
4598
|
+
})];
|
|
4599
|
+
case 1:
|
|
4600
|
+
_o.sent();
|
|
4601
|
+
_o.label = 2;
|
|
4602
|
+
case 2:
|
|
4603
|
+
imagery = (_k = bSettings.imagery) !== null && _k !== void 0 ? _k : (_l = defaults.settings) === null || _l === void 0 ? void 0 : _l.imagery;
|
|
4604
|
+
if (imagery == null) {
|
|
4605
|
+
// TODO: Need global default.
|
|
4606
|
+
imagery = [
|
|
4607
|
+
{
|
|
4608
|
+
accountId: null,
|
|
4609
|
+
tilesetId: ProjectViewTile.EDefaultImagery.MapboxSatellite,
|
|
4610
|
+
alpha: 1,
|
|
4611
|
+
brightness: 1,
|
|
4612
|
+
contrast: 1,
|
|
4613
|
+
gamma: 1,
|
|
4614
|
+
hue: 0,
|
|
4615
|
+
saturation: 1
|
|
4224
4616
|
}
|
|
4617
|
+
];
|
|
4618
|
+
}
|
|
4619
|
+
return [4 /*yield*/, TileRenderEngine.Map.V2.Render({
|
|
4620
|
+
apiGetter: params.apiGetter,
|
|
4621
|
+
enabled: imagery,
|
|
4622
|
+
sources: vSettings.imageries,
|
|
4623
|
+
viewer: params.manager.Viewer,
|
|
4624
|
+
})];
|
|
4625
|
+
case 3:
|
|
4626
|
+
_o.sent();
|
|
4627
|
+
curEnabled = params.manager.GetEnabledItemIds();
|
|
4628
|
+
newItemIds = (_m = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _m !== void 0 ? _m : [];
|
|
4629
|
+
_i = 0, curEnabled_1 = curEnabled;
|
|
4630
|
+
_o.label = 4;
|
|
4631
|
+
case 4:
|
|
4632
|
+
if (!(_i < curEnabled_1.length)) return [3 /*break*/, 7];
|
|
4633
|
+
id = curEnabled_1[_i];
|
|
4634
|
+
if (!(newItemIds.indexOf(id) === -1)) return [3 /*break*/, 6];
|
|
4635
|
+
return [4 /*yield*/, params.manager.RemoveItemById(id)];
|
|
4636
|
+
case 5:
|
|
4637
|
+
_o.sent();
|
|
4638
|
+
_o.label = 6;
|
|
4639
|
+
case 6:
|
|
4640
|
+
_i++;
|
|
4641
|
+
return [3 /*break*/, 4];
|
|
4642
|
+
case 7:
|
|
4643
|
+
if (!params.bookmarkId) return [3 /*break*/, 9];
|
|
4644
|
+
return [4 /*yield*/, RenderHelper.RenderBookmarkItems({
|
|
4645
|
+
apiGetter: params.apiGetter,
|
|
4646
|
+
manager: params.manager,
|
|
4647
|
+
}, params.viewId, params.bookmarkId)];
|
|
4648
|
+
case 8:
|
|
4649
|
+
_o.sent();
|
|
4650
|
+
_o.label = 9;
|
|
4651
|
+
case 9: return [2 /*return*/];
|
|
4652
|
+
}
|
|
4653
|
+
});
|
|
4654
|
+
});
|
|
4655
|
+
}
|
|
4656
|
+
var ViewRenderEngine;
|
|
4657
|
+
(function (ViewRenderEngine) {
|
|
4658
|
+
function Render(params) {
|
|
4659
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4660
|
+
var api, view, bookmark, version;
|
|
4661
|
+
return __generator(this, function (_a) {
|
|
4662
|
+
switch (_a.label) {
|
|
4663
|
+
case 0:
|
|
4664
|
+
api = params.apiGetter.getApi();
|
|
4665
|
+
return [4 /*yield*/, ProjectView.Get(api, params.viewId)];
|
|
4666
|
+
case 1:
|
|
4667
|
+
view = _a.sent();
|
|
4668
|
+
bookmark = null;
|
|
4669
|
+
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
4670
|
+
return [4 /*yield*/, ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
4671
|
+
case 2:
|
|
4672
|
+
bookmark = _a.sent();
|
|
4673
|
+
_a.label = 3;
|
|
4674
|
+
case 3:
|
|
4675
|
+
if (bookmark && view.DataVersion != bookmark.DataVersion) {
|
|
4676
|
+
throw new Error("View and bookmark settings version mismatch.");
|
|
4225
4677
|
}
|
|
4226
|
-
|
|
4227
|
-
return [
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4678
|
+
version = view.DataVersion;
|
|
4679
|
+
if (!(version === 2)) return [3 /*break*/, 5];
|
|
4680
|
+
return [4 /*yield*/, renderV2(params, bookmark, view)];
|
|
4681
|
+
case 4:
|
|
4682
|
+
_a.sent();
|
|
4683
|
+
return [3 /*break*/, 7];
|
|
4684
|
+
case 5: return [4 /*yield*/, renderV1(params, bookmark, view)];
|
|
4231
4685
|
case 6:
|
|
4232
|
-
|
|
4233
|
-
|
|
4686
|
+
_a.sent();
|
|
4687
|
+
_a.label = 7;
|
|
4234
4688
|
case 7: return [2 /*return*/];
|
|
4235
4689
|
}
|
|
4236
4690
|
});
|