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.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, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark,
|
|
2
|
-
import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Entity, Primitive, Cesium3DTileFeature, Color,
|
|
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, Entity, Primitive, Cesium3DTileFeature, Color, Cartesian3, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, HeadingPitchRange, OrthographicFrustum, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, createOsmBuildings, Cesium3DTileStyle, Rectangle, EllipsoidGeodesic, Matrix4, Cesium3DTileset } 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();
|
|
@@ -2264,31 +2264,46 @@ function colorToCColor$1(color) {
|
|
|
2264
2264
|
}
|
|
2265
2265
|
var TilesetRenderEngine;
|
|
2266
2266
|
(function (TilesetRenderEngine) {
|
|
2267
|
-
function
|
|
2267
|
+
function ApplyPosition(cTileset, tileset, coords) {
|
|
2268
2268
|
if (tileset.type == Tileset.EType.Cad) {
|
|
2269
2269
|
var settings = tileset.settings;
|
|
2270
|
-
var
|
|
2271
|
-
var transform =
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2270
|
+
var location_1;
|
|
2271
|
+
var transform = void 0;
|
|
2272
|
+
// Position using root entity + ucs.
|
|
2273
|
+
if (coords === null || coords === void 0 ? void 0 : coords.ucs) {
|
|
2274
|
+
location_1 = coords.ucs.location;
|
|
2275
|
+
transform = coords.transform;
|
|
2276
|
+
}
|
|
2277
|
+
// Position using tileset.
|
|
2278
|
+
else {
|
|
2279
|
+
transform = settings.transform;
|
|
2280
|
+
location_1 = settings.location;
|
|
2281
|
+
}
|
|
2282
|
+
if (!(location_1 === null || location_1 === void 0 ? void 0 : location_1.latitude)) {
|
|
2283
|
+
return;
|
|
2284
|
+
}
|
|
2285
|
+
transform = __assign({ heading: 0, pitch: 0, roll: 0, scale: 1, x: 0, y: 0, z: 0 }, transform);
|
|
2286
|
+
if (transform.scale <= 0) {
|
|
2287
|
+
transform.scale = 0.000001;
|
|
2288
|
+
}
|
|
2289
|
+
var pos = Cartesian3.fromDegrees(location_1.longitude, location_1.latitude, location_1.altitude);
|
|
2282
2290
|
var hpr = HeadingPitchRoll.fromDegrees(transform.heading, transform.pitch, transform.roll, new HeadingPitchRoll());
|
|
2291
|
+
var root = cTileset.root;
|
|
2283
2292
|
root.transform = Transforms.headingPitchRollToFixedFrame(pos, hpr);
|
|
2284
|
-
var
|
|
2285
|
-
if (!scale || scale <= 0) {
|
|
2286
|
-
scale = 0.000001;
|
|
2287
|
-
}
|
|
2288
|
-
var scaleMatrix = Matrix4.fromScale(new Cartesian3(scale, scale, scale), new Matrix4());
|
|
2293
|
+
var scaleMatrix = Matrix4.fromScale(new Cartesian3(transform.scale, transform.scale, transform.scale), new Matrix4());
|
|
2289
2294
|
root.transform = Matrix4.multiply(root.transform, scaleMatrix, root.transform);
|
|
2295
|
+
root.transform = Matrix4.multiplyByTranslation(root.transform, new Cartesian3(transform.x, transform.y, transform.z), root.transform);
|
|
2290
2296
|
// Force matrix to update
|
|
2291
2297
|
root.updateTransform();
|
|
2298
|
+
}
|
|
2299
|
+
else {
|
|
2300
|
+
throw ("Not implemented.");
|
|
2301
|
+
}
|
|
2302
|
+
}
|
|
2303
|
+
TilesetRenderEngine.ApplyPosition = ApplyPosition;
|
|
2304
|
+
function ApplySettings(cTileset, tileset) {
|
|
2305
|
+
if (tileset.type == Tileset.EType.Cad) {
|
|
2306
|
+
var settings = tileset.settings;
|
|
2292
2307
|
var maxScreenSpaceError = settings.maximumScreenSpaceError;
|
|
2293
2308
|
if (maxScreenSpaceError || maxScreenSpaceError == 0) {
|
|
2294
2309
|
cTileset.maximumScreenSpaceError = maxScreenSpaceError;
|
|
@@ -2300,7 +2315,7 @@ var TilesetRenderEngine;
|
|
|
2300
2315
|
}
|
|
2301
2316
|
TilesetRenderEngine.ApplySettings = ApplySettings;
|
|
2302
2317
|
function Render(params) {
|
|
2303
|
-
var api = params.apiGetter.getApi(params.apiGetter.accountId
|
|
2318
|
+
var api = params.apiGetter.getApi(params.apiGetter.accountId);
|
|
2304
2319
|
if (params.tileset.type == Tileset.EType.Cad) {
|
|
2305
2320
|
var cTileset_1 = new Cesium3DTileset({
|
|
2306
2321
|
url: Tileset.GetPublicFileUrl(api, params.tileset.id, "tileset.json") + "?generation=" + params.tileset.generateVersion
|
|
@@ -2308,6 +2323,7 @@ var TilesetRenderEngine;
|
|
|
2308
2323
|
params.viewer.scene.primitives.add(cTileset_1);
|
|
2309
2324
|
cTileset_1.readyPromise.then(function () {
|
|
2310
2325
|
ApplySettings(cTileset_1, params.tileset);
|
|
2326
|
+
ApplyPosition(cTileset_1, params.tileset, params.coords);
|
|
2311
2327
|
});
|
|
2312
2328
|
return cTileset_1;
|
|
2313
2329
|
}
|
|
@@ -2717,7 +2733,7 @@ var TilesetCadRenderManager;
|
|
|
2717
2733
|
Manager.prototype.Init = function () {
|
|
2718
2734
|
var _a;
|
|
2719
2735
|
return __awaiter(this, void 0, void 0, function () {
|
|
2720
|
-
var tilesetId, api, tileset, cTileset;
|
|
2736
|
+
var tilesetId, api, tileset, settings, rootId, coords, cTileset;
|
|
2721
2737
|
var _this = this;
|
|
2722
2738
|
return __generator(this, function (_b) {
|
|
2723
2739
|
switch (_b.label) {
|
|
@@ -2726,17 +2742,23 @@ var TilesetCadRenderManager;
|
|
|
2726
2742
|
if (!tilesetId) {
|
|
2727
2743
|
return [2 /*return*/];
|
|
2728
2744
|
}
|
|
2729
|
-
api = this.apiGetter.getApi(
|
|
2745
|
+
api = this.apiGetter.getApi();
|
|
2730
2746
|
return [4 /*yield*/, Tileset.Get(api, tilesetId)];
|
|
2731
2747
|
case 1:
|
|
2732
2748
|
tileset = _b.sent();
|
|
2733
2749
|
if (!tileset) {
|
|
2734
2750
|
return [2 /*return*/];
|
|
2735
2751
|
}
|
|
2752
|
+
settings = tileset.settings;
|
|
2753
|
+
rootId = settings.rootEntityId;
|
|
2754
|
+
return [4 /*yield*/, EntityCoords.GetEntityCoords(api, rootId)];
|
|
2755
|
+
case 2:
|
|
2756
|
+
coords = _b.sent();
|
|
2736
2757
|
cTileset = this.cTileset = TilesetRenderEngine.Render({
|
|
2737
2758
|
apiGetter: this.apiGetter,
|
|
2738
2759
|
tileset: tileset,
|
|
2739
|
-
viewer: this.viewer
|
|
2760
|
+
viewer: this.viewer,
|
|
2761
|
+
coords: coords
|
|
2740
2762
|
});
|
|
2741
2763
|
cTileset.readyPromise.then(function () {
|
|
2742
2764
|
_this.onCTilesetLoad();
|
|
@@ -3132,7 +3154,7 @@ var TilesetOsmRenderManager;
|
|
|
3132
3154
|
for (i = 0; i < features.length; i++) {
|
|
3133
3155
|
_loop_1(i);
|
|
3134
3156
|
}
|
|
3135
|
-
api = this.apiGetter.getApi(
|
|
3157
|
+
api = this.apiGetter.getApi();
|
|
3136
3158
|
return [4 /*yield*/, EntitySource.GetEntityIdsBySourceKeys(api, this.sourceId, featureIds)];
|
|
3137
3159
|
case 1:
|
|
3138
3160
|
bIds = _a.sent();
|
|
@@ -3490,73 +3512,6 @@ var RenderHelper;
|
|
|
3490
3512
|
});
|
|
3491
3513
|
}
|
|
3492
3514
|
RenderHelper.RenderEntityFilter = RenderEntityFilter;
|
|
3493
|
-
function RenderBookmarkItems(params, viewId, bookmarkId) {
|
|
3494
|
-
var _a, _b, _c, _d;
|
|
3495
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
3496
|
-
function traverseItems(item) {
|
|
3497
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
3498
|
-
var itemId, i;
|
|
3499
|
-
return __generator(this, function (_a) {
|
|
3500
|
-
switch (_a.label) {
|
|
3501
|
-
case 0:
|
|
3502
|
-
if (!enabledItemIds.includes(item.id)) return [3 /*break*/, 2];
|
|
3503
|
-
return [4 /*yield*/, params.manager.RenderItem({
|
|
3504
|
-
item: item,
|
|
3505
|
-
apiGetter: params.apiGetter
|
|
3506
|
-
})];
|
|
3507
|
-
case 1:
|
|
3508
|
-
itemId = _a.sent();
|
|
3509
|
-
renderedItemIds.push(itemId);
|
|
3510
|
-
_a.label = 2;
|
|
3511
|
-
case 2:
|
|
3512
|
-
if (!item.Children) return [3 /*break*/, 6];
|
|
3513
|
-
i = 0;
|
|
3514
|
-
_a.label = 3;
|
|
3515
|
-
case 3:
|
|
3516
|
-
if (!(i < item.Children.length)) return [3 /*break*/, 6];
|
|
3517
|
-
return [4 /*yield*/, traverseItems(item.Children[i])];
|
|
3518
|
-
case 4:
|
|
3519
|
-
_a.sent();
|
|
3520
|
-
_a.label = 5;
|
|
3521
|
-
case 5:
|
|
3522
|
-
i++;
|
|
3523
|
-
return [3 /*break*/, 3];
|
|
3524
|
-
case 6: return [2 /*return*/];
|
|
3525
|
-
}
|
|
3526
|
-
});
|
|
3527
|
-
});
|
|
3528
|
-
}
|
|
3529
|
-
var api, view, bookmark, items, enabledItemIds, renderedItemIds, i;
|
|
3530
|
-
return __generator(this, function (_e) {
|
|
3531
|
-
switch (_e.label) {
|
|
3532
|
-
case 0:
|
|
3533
|
-
api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
|
|
3534
|
-
return [4 /*yield*/, ProjectView.Get(api, viewId)];
|
|
3535
|
-
case 1:
|
|
3536
|
-
view = _e.sent();
|
|
3537
|
-
return [4 /*yield*/, ProjectViewBookmark.Get(api, viewId, bookmarkId)];
|
|
3538
|
-
case 2:
|
|
3539
|
-
bookmark = _e.sent();
|
|
3540
|
-
items = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.LayersMenu) !== null && _b !== void 0 ? _b : [];
|
|
3541
|
-
enabledItemIds = (_d = (_c = bookmark.Settings) === null || _c === void 0 ? void 0 : _c.selectedItemIds) !== null && _d !== void 0 ? _d : [];
|
|
3542
|
-
renderedItemIds = [];
|
|
3543
|
-
i = 0;
|
|
3544
|
-
_e.label = 3;
|
|
3545
|
-
case 3:
|
|
3546
|
-
if (!(i < items.length)) return [3 /*break*/, 6];
|
|
3547
|
-
return [4 /*yield*/, traverseItems(items[i])];
|
|
3548
|
-
case 4:
|
|
3549
|
-
_e.sent();
|
|
3550
|
-
_e.label = 5;
|
|
3551
|
-
case 5:
|
|
3552
|
-
i++;
|
|
3553
|
-
return [3 /*break*/, 3];
|
|
3554
|
-
case 6: return [2 /*return*/, renderedItemIds];
|
|
3555
|
-
}
|
|
3556
|
-
});
|
|
3557
|
-
});
|
|
3558
|
-
}
|
|
3559
|
-
RenderHelper.RenderBookmarkItems = RenderBookmarkItems;
|
|
3560
3515
|
function RenderMenuItems(params, menuItems) {
|
|
3561
3516
|
return __awaiter(this, void 0, void 0, function () {
|
|
3562
3517
|
var renderedItemIds, i, menuItem, itemId;
|
|
@@ -3592,7 +3547,7 @@ var RenderHelper;
|
|
|
3592
3547
|
return __generator(this, function (_a) {
|
|
3593
3548
|
switch (_a.label) {
|
|
3594
3549
|
case 0:
|
|
3595
|
-
api = params.apiGetter.getApi(
|
|
3550
|
+
api = params.apiGetter.getApi();
|
|
3596
3551
|
return [4 /*yield*/, Tileset.Get(api, tilesetId)];
|
|
3597
3552
|
case 1:
|
|
3598
3553
|
tileset = _a.sent();
|
|
@@ -3619,9 +3574,101 @@ var RenderHelper;
|
|
|
3619
3574
|
});
|
|
3620
3575
|
}
|
|
3621
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;
|
|
3622
3661
|
})(RenderHelper || (RenderHelper = {}));
|
|
3623
3662
|
|
|
3663
|
+
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
3664
|
+
var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
|
|
3624
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
|
+
*/
|
|
3625
3672
|
function prepLegacyName(name) {
|
|
3626
3673
|
if (!name) {
|
|
3627
3674
|
return "";
|
|
@@ -3634,26 +3681,68 @@ function prepLegacyName(name) {
|
|
|
3634
3681
|
}
|
|
3635
3682
|
return name;
|
|
3636
3683
|
}
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
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) {
|
|
3649
3717
|
name = prepLegacyName(name);
|
|
3650
|
-
|
|
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;
|
|
3651
3735
|
}
|
|
3652
|
-
|
|
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) {
|
|
3653
3742
|
if (!source) {
|
|
3654
3743
|
return "";
|
|
3655
3744
|
}
|
|
3656
|
-
if (
|
|
3745
|
+
if (isLegacyTerrainDefault(source.Name)) {
|
|
3657
3746
|
return source.Name;
|
|
3658
3747
|
}
|
|
3659
3748
|
if (source.SourceUrl) {
|
|
@@ -3661,11 +3750,16 @@ function createTerrainBId(source) {
|
|
|
3661
3750
|
}
|
|
3662
3751
|
return "";
|
|
3663
3752
|
}
|
|
3664
|
-
|
|
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) {
|
|
3665
3759
|
if (!source) {
|
|
3666
3760
|
return "";
|
|
3667
3761
|
}
|
|
3668
|
-
if (
|
|
3762
|
+
if (isLegacyImageryDefault(source.Name)) {
|
|
3669
3763
|
return source.Name;
|
|
3670
3764
|
}
|
|
3671
3765
|
if (source.SourceUrl) {
|
|
@@ -3673,43 +3767,11 @@ function createImageryBId(source) {
|
|
|
3673
3767
|
}
|
|
3674
3768
|
return "";
|
|
3675
3769
|
}
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
EDefaultImagery["MapboxSatellite"] = "mapboxsatellite";
|
|
3682
|
-
EDefaultImagery["MapBoxStreets"] = "mapboxstreets";
|
|
3683
|
-
EDefaultImagery["MapBoxStreetsClassic"] = "mapboxstreetsclassic";
|
|
3684
|
-
EDefaultImagery["EsriWorldImagery"] = "esriworldimagery";
|
|
3685
|
-
EDefaultImagery["EsriWorldStreetMap"] = "esriworldstreetmap";
|
|
3686
|
-
EDefaultImagery["EsriNationalGeographic"] = "esrinationalgeographic";
|
|
3687
|
-
EDefaultImagery["OpenStreetMap"] = "openstreetmap";
|
|
3688
|
-
EDefaultImagery["StamenWaterColor"] = "stamenwatercolor";
|
|
3689
|
-
EDefaultImagery["StamenToner"] = "stamentoner";
|
|
3690
|
-
EDefaultImagery["Grid"] = "grid";
|
|
3691
|
-
})(EDefaultImagery || (EDefaultImagery = {}));
|
|
3692
|
-
var DEFAULT_IMAGERY_NAMES = [
|
|
3693
|
-
EDefaultImagery.BingMapsAerial,
|
|
3694
|
-
EDefaultImagery.BingMapsAerialWithLabels,
|
|
3695
|
-
EDefaultImagery.BingMapsRoads,
|
|
3696
|
-
EDefaultImagery.MapboxSatellite,
|
|
3697
|
-
EDefaultImagery.MapBoxStreets,
|
|
3698
|
-
EDefaultImagery.MapBoxStreetsClassic,
|
|
3699
|
-
EDefaultImagery.EsriWorldImagery,
|
|
3700
|
-
EDefaultImagery.EsriWorldStreetMap,
|
|
3701
|
-
EDefaultImagery.EsriNationalGeographic,
|
|
3702
|
-
EDefaultImagery.OpenStreetMap,
|
|
3703
|
-
EDefaultImagery.StamenWaterColor,
|
|
3704
|
-
EDefaultImagery.StamenToner,
|
|
3705
|
-
EDefaultImagery.Grid
|
|
3706
|
-
];
|
|
3707
|
-
function isDefaultImagery(name) {
|
|
3708
|
-
name = prepLegacyName(name);
|
|
3709
|
-
return DEFAULT_IMAGERY_NAMES.includes(name);
|
|
3710
|
-
}
|
|
3711
|
-
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
3712
|
-
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
|
+
*/
|
|
3713
3775
|
function gatherEnabledImageries(viewer) {
|
|
3714
3776
|
var collection = viewer.imageryLayers;
|
|
3715
3777
|
var layers = [];
|
|
@@ -3719,6 +3781,154 @@ function gatherEnabledImageries(viewer) {
|
|
|
3719
3781
|
}
|
|
3720
3782
|
return layers;
|
|
3721
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
|
+
}
|
|
3722
3932
|
var TileRenderEngine;
|
|
3723
3933
|
(function (TileRenderEngine) {
|
|
3724
3934
|
/**
|
|
@@ -3735,480 +3945,751 @@ var TileRenderEngine;
|
|
|
3735
3945
|
TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
|
|
3736
3946
|
var Map;
|
|
3737
3947
|
(function (Map) {
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
switch (prepLegacyName(tile.Name)) {
|
|
3753
|
-
case EDefaultImagery.BingMapsAerial:
|
|
3754
|
-
// TODO: Read account key if available.
|
|
3755
|
-
provider = new BingMapsImageryProvider({
|
|
3756
|
-
url: "https://dev.virtualearth.net",
|
|
3757
|
-
mapStyle: BingMapsStyle.AERIAL,
|
|
3758
|
-
key: DEFAULT_BING_KEY
|
|
3759
|
-
});
|
|
3760
|
-
break;
|
|
3761
|
-
case EDefaultImagery.BingMapsAerialWithLabels:
|
|
3762
|
-
// TODO: Read account key if available.
|
|
3763
|
-
provider = new BingMapsImageryProvider({
|
|
3764
|
-
url: "https://dev.virtualearth.net",
|
|
3765
|
-
mapStyle: BingMapsStyle.AERIAL_WITH_LABELS,
|
|
3766
|
-
key: DEFAULT_BING_KEY
|
|
3767
|
-
});
|
|
3768
|
-
break;
|
|
3769
|
-
case EDefaultImagery.BingMapsRoads:
|
|
3770
|
-
// TODO: Read account key if available.
|
|
3771
|
-
provider = new BingMapsImageryProvider({
|
|
3772
|
-
url: "https://dev.virtualearth.net",
|
|
3773
|
-
mapStyle: BingMapsStyle.ROAD_ON_DEMAND,
|
|
3774
|
-
key: DEFAULT_BING_KEY
|
|
3775
|
-
});
|
|
3776
|
-
break;
|
|
3777
|
-
case EDefaultImagery.MapboxSatellite:
|
|
3778
|
-
// TODO: Read account key if available.
|
|
3779
|
-
provider = new MapboxImageryProvider({
|
|
3780
|
-
mapId: "mapbox.satellite",
|
|
3781
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
3782
|
-
});
|
|
3783
|
-
break;
|
|
3784
|
-
case EDefaultImagery.MapBoxStreets:
|
|
3785
|
-
// TODO: Read account key if available.
|
|
3786
|
-
provider = new MapboxImageryProvider({
|
|
3787
|
-
mapId: "satellite-streets-v11",
|
|
3788
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
3789
|
-
});
|
|
3790
|
-
break;
|
|
3791
|
-
case EDefaultImagery.MapBoxStreetsClassic:
|
|
3792
|
-
// TODO: Read account key if available.
|
|
3793
|
-
provider = new MapboxImageryProvider({
|
|
3794
|
-
mapId: "streets-v11",
|
|
3795
|
-
accessToken: DEFAULT_MAPBOX_KEY
|
|
3796
|
-
});
|
|
3797
|
-
break;
|
|
3798
|
-
case EDefaultImagery.EsriWorldImagery:
|
|
3799
|
-
provider = new ArcGisMapServerImageryProvider({
|
|
3800
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
|
|
3801
|
-
enablePickFeatures: false
|
|
3802
|
-
});
|
|
3803
|
-
break;
|
|
3804
|
-
case EDefaultImagery.EsriWorldStreetMap:
|
|
3805
|
-
provider = new ArcGisMapServerImageryProvider({
|
|
3806
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
|
|
3807
|
-
enablePickFeatures: false
|
|
3808
|
-
});
|
|
3809
|
-
break;
|
|
3810
|
-
case EDefaultImagery.EsriNationalGeographic:
|
|
3811
|
-
provider = new ArcGisMapServerImageryProvider({
|
|
3812
|
-
url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
|
|
3813
|
-
enablePickFeatures: false
|
|
3814
|
-
});
|
|
3815
|
-
break;
|
|
3816
|
-
case EDefaultImagery.OpenStreetMap:
|
|
3817
|
-
provider = new OpenStreetMapImageryProvider({
|
|
3818
|
-
url: "https://a.tile.openstreetmap.org/"
|
|
3819
|
-
});
|
|
3820
|
-
break;
|
|
3821
|
-
case EDefaultImagery.StamenWaterColor:
|
|
3822
|
-
provider = new OpenStreetMapImageryProvider({
|
|
3823
|
-
url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
|
|
3824
|
-
});
|
|
3825
|
-
break;
|
|
3826
|
-
case EDefaultImagery.StamenToner:
|
|
3827
|
-
provider = new OpenStreetMapImageryProvider({
|
|
3828
|
-
url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
|
|
3829
|
-
});
|
|
3830
|
-
break;
|
|
3831
|
-
case EDefaultImagery.Grid:
|
|
3832
|
-
provider = new GridImageryProvider({
|
|
3833
|
-
tilingScheme: new GeographicTilingScheme(),
|
|
3834
|
-
cells: 0,
|
|
3835
|
-
color: Color.fromCssColorString("rgb(97, 151, 237)"),
|
|
3836
|
-
glowColor: Color.fromCssColorString("rgb(54, 54, 54)"),
|
|
3837
|
-
glowWidth: 4,
|
|
3838
|
-
backgroundColor: Color.TRANSPARENT,
|
|
3839
|
-
tileWidth: 256,
|
|
3840
|
-
tileHeight: 256,
|
|
3841
|
-
canvasSize: 256
|
|
3842
|
-
});
|
|
3843
|
-
break;
|
|
3844
|
-
}
|
|
3845
|
-
if (provider) {
|
|
3846
|
-
layer = new ImageryLayer(provider);
|
|
3847
|
-
}
|
|
3848
|
-
}
|
|
3849
|
-
else if (tile.SourceUrl) {
|
|
3850
|
-
var provider = null;
|
|
3851
|
-
var min = tile.Minimum;
|
|
3852
|
-
var max = tile.Maximum;
|
|
3853
|
-
if (min != undefined && min <= -1) {
|
|
3854
|
-
min = undefined;
|
|
3855
|
-
}
|
|
3856
|
-
if (max != undefined && max <= -1) {
|
|
3857
|
-
max = undefined;
|
|
3858
|
-
}
|
|
3859
|
-
switch (tile.Type) {
|
|
3860
|
-
case "BruceImagery":
|
|
3861
|
-
provider = new UrlTemplateImageryProvider({
|
|
3862
|
-
url: tile.SourceUrl,
|
|
3863
|
-
tileHeight: 256,
|
|
3864
|
-
tileWidth: 256
|
|
3865
|
-
});
|
|
3866
|
-
break;
|
|
3867
|
-
case "ArcGisImagery":
|
|
3868
|
-
provider = new OpenStreetMapImageryProvider({
|
|
3869
|
-
url: tile.SourceUrl,
|
|
3870
|
-
fileExtension: tile.FileExtension,
|
|
3871
|
-
minimumLevel: min,
|
|
3872
|
-
maximumLevel: max
|
|
3873
|
-
});
|
|
3874
|
-
break;
|
|
3875
|
-
case "TileMapImagery":
|
|
3876
|
-
provider = new TileMapServiceImageryProvider({
|
|
3877
|
-
url: tile.SourceUrl,
|
|
3878
|
-
fileExtension: tile.FileExtension,
|
|
3879
|
-
minimumLevel: min,
|
|
3880
|
-
maximumLevel: max
|
|
3881
|
-
});
|
|
3882
|
-
break;
|
|
3883
|
-
case "OpenStreetMapImagery":
|
|
3884
|
-
provider = new OpenStreetMapImageryProvider({
|
|
3885
|
-
url: tile.SourceUrl,
|
|
3886
|
-
fileExtension: tile.FileExtension,
|
|
3887
|
-
minimumLevel: min,
|
|
3888
|
-
maximumLevel: max
|
|
3889
|
-
});
|
|
3890
|
-
break;
|
|
3891
|
-
case "MapBoxImagery":
|
|
3892
|
-
// TODO: Read default account key when missing.
|
|
3893
|
-
provider = new UrlTemplateImageryProvider({
|
|
3894
|
-
url: "https://api.mapbox.com/styles/v1/"
|
|
3895
|
-
+ tile.MapBoxUsername + "/" + tile.MapBoxID +
|
|
3896
|
-
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
3897
|
-
+ tile.ProgramKey
|
|
3898
|
-
});
|
|
3899
|
-
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
|
+
}
|
|
3900
3962
|
}
|
|
3901
|
-
if (
|
|
3902
|
-
|
|
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
|
+
}
|
|
3903
4018
|
}
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
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
|
+
}
|
|
3910
4025
|
}
|
|
4026
|
+
return layer;
|
|
3911
4027
|
}
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
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
|
+
}
|
|
3939
4056
|
}
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
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
|
+
}
|
|
3955
4072
|
}
|
|
3956
4073
|
}
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
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);
|
|
3969
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,
|
|
3970
4101
|
});
|
|
3971
4102
|
if (layer) {
|
|
3972
4103
|
layers.push(layer);
|
|
3973
4104
|
}
|
|
3974
|
-
};
|
|
3975
|
-
for (i = 0; i < params.ignoreIds.length; i++) {
|
|
3976
|
-
_loop_1(i);
|
|
3977
4105
|
}
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
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;
|
|
3985
4121
|
});
|
|
3986
|
-
|
|
3987
|
-
|
|
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
|
+
}
|
|
3988
4132
|
}
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3996
|
-
|
|
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
|
+
});
|
|
3997
4163
|
}
|
|
3998
|
-
if (
|
|
3999
|
-
|
|
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
|
+
}
|
|
4000
4196
|
}
|
|
4001
|
-
if (
|
|
4002
|
-
|
|
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
|
+
});
|
|
4003
4203
|
}
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
layer = enabled[i];
|
|
4011
|
-
if (layers.includes(layer)) {
|
|
4012
|
-
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];
|
|
4013
4210
|
}
|
|
4014
|
-
|
|
4015
|
-
|
|
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);
|
|
4016
4271
|
}
|
|
4017
|
-
|
|
4018
|
-
|
|
4019
|
-
|
|
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);
|
|
4281
|
+
layer.brightness = Number(enabled.brightness);
|
|
4282
|
+
layer.contrast = Number(enabled.contrast);
|
|
4283
|
+
layer.hue = Number(enabled.hue);
|
|
4284
|
+
layer.saturation = Number(enabled.saturation);
|
|
4285
|
+
layer.gamma = Number(enabled.gamma);
|
|
4286
|
+
}
|
|
4287
|
+
};
|
|
4288
|
+
for (i = 0; i < params.enabled.length; i++) {
|
|
4289
|
+
_loop_4(i);
|
|
4290
|
+
}
|
|
4291
|
+
return [2 /*return*/];
|
|
4292
|
+
}
|
|
4293
|
+
});
|
|
4020
4294
|
});
|
|
4021
|
-
}
|
|
4022
|
-
|
|
4023
|
-
Map.
|
|
4295
|
+
}
|
|
4296
|
+
V2.Render = Render;
|
|
4297
|
+
})(V2 = Map.V2 || (Map.V2 = {}));
|
|
4024
4298
|
})(Map = TileRenderEngine.Map || (TileRenderEngine.Map = {}));
|
|
4025
4299
|
var Terrain;
|
|
4026
4300
|
(function (Terrain) {
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
break;
|
|
4053
|
-
case EDefaultTerrain.FlatTerrain:
|
|
4054
|
-
provider = new EllipsoidTerrainProvider();
|
|
4055
|
-
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;
|
|
4056
4326
|
}
|
|
4057
4327
|
}
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
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
|
+
});
|
|
4063
4377
|
});
|
|
4064
4378
|
}
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
return [4 /*yield*/, ProjectView.Get(api, params.viewId)];
|
|
4081
|
-
case 1:
|
|
4082
|
-
view = _f.sent();
|
|
4083
|
-
bookmark = null;
|
|
4084
|
-
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
4085
|
-
return [4 /*yield*/, ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
4086
|
-
case 2:
|
|
4087
|
-
bookmark = _f.sent();
|
|
4088
|
-
_f.label = 3;
|
|
4089
|
-
case 3:
|
|
4090
|
-
terrainTiles = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.CesiumTerrainSources) !== null && _b !== void 0 ? _b : [];
|
|
4091
|
-
terrainTile = null;
|
|
4092
|
-
terrainTileName = null;
|
|
4093
|
-
if ((_c = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _c === void 0 ? void 0 : _c.terrain) {
|
|
4094
|
-
terrainTileName = bookmark.Settings.terrain;
|
|
4095
|
-
}
|
|
4096
|
-
else {
|
|
4097
|
-
terrainTileName = (_d = view.Settings) === null || _d === void 0 ? void 0 : _d.DefaultTerrain;
|
|
4098
|
-
}
|
|
4099
|
-
return [4 /*yield*/, ProjectViewTileSource.MergeTerrainTemplateData(params.apiGetter, terrainTiles, ((_e = view.Settings) === null || _e === void 0 ? void 0 : _e.CesiumTerrainSources) == null)];
|
|
4100
|
-
case 4:
|
|
4101
|
-
_f.sent();
|
|
4102
|
-
for (i = 0; i < terrainTiles.length; i++) {
|
|
4103
|
-
tile = terrainTiles[i];
|
|
4104
|
-
if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
|
|
4105
|
-
terrainTile = tile;
|
|
4106
|
-
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*/];
|
|
4107
4394
|
}
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
|
|
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
|
+
});
|
|
4117
4436
|
});
|
|
4118
|
-
}
|
|
4119
|
-
|
|
4120
|
-
Terrain.
|
|
4437
|
+
}
|
|
4438
|
+
V2.Render = Render;
|
|
4439
|
+
})(V2 = Terrain.V2 || (Terrain.V2 = {}));
|
|
4121
4440
|
})(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
|
|
4122
4441
|
})(TileRenderEngine || (TileRenderEngine = {}));
|
|
4123
4442
|
|
|
4124
|
-
|
|
4125
|
-
|
|
4126
|
-
function
|
|
4127
|
-
var
|
|
4128
|
-
return
|
|
4129
|
-
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
return [4 /*yield*/, ProjectView.Get(api, params.viewId)];
|
|
4135
|
-
case 1:
|
|
4136
|
-
view = _f.sent();
|
|
4137
|
-
bookmark = null;
|
|
4138
|
-
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
4139
|
-
return [4 /*yield*/, ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
4140
|
-
case 2:
|
|
4141
|
-
bookmark = _f.sent();
|
|
4142
|
-
_f.label = 3;
|
|
4143
|
-
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({
|
|
4144
4453
|
apiGetter: params.apiGetter,
|
|
4145
4454
|
bookmarkId: params.bookmarkId,
|
|
4146
4455
|
viewer: params.manager.Viewer,
|
|
4147
4456
|
viewId: params.viewId,
|
|
4148
4457
|
})];
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
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;
|
|
4163
4479
|
}
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
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);
|
|
4176
4511
|
}
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
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, _o;
|
|
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, iSources, curEnabled, newItemIds, _i, curEnabled_1, id;
|
|
4530
|
+
return __generator(this, function (_p) {
|
|
4531
|
+
switch (_p.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({
|
|
4180
4571
|
destination: pos,
|
|
4181
4572
|
orientation: {
|
|
4182
4573
|
heading: +camera.heading,
|
|
4183
4574
|
pitch: +camera.pitch,
|
|
4184
4575
|
roll: +camera.roll
|
|
4185
4576
|
},
|
|
4186
|
-
duration:
|
|
4577
|
+
duration: transition != 0 ? transition / 1000 : 0
|
|
4187
4578
|
});
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
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
|
+
_p.sent();
|
|
4601
|
+
_p.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
|
|
4202
4616
|
}
|
|
4617
|
+
];
|
|
4618
|
+
}
|
|
4619
|
+
iSources = (_m = vSettings.imageries) === null || _m === void 0 ? void 0 : _m.filter(function (x) {
|
|
4620
|
+
return imagery.find(function (y) {
|
|
4621
|
+
y.accountId === x.accountId && y.tilesetId === x.tilesetId;
|
|
4622
|
+
});
|
|
4623
|
+
});
|
|
4624
|
+
return [4 /*yield*/, TileRenderEngine.Map.V2.Render({
|
|
4625
|
+
apiGetter: params.apiGetter,
|
|
4626
|
+
enabled: imagery,
|
|
4627
|
+
sources: iSources,
|
|
4628
|
+
viewer: params.manager.Viewer,
|
|
4629
|
+
})];
|
|
4630
|
+
case 3:
|
|
4631
|
+
_p.sent();
|
|
4632
|
+
curEnabled = params.manager.GetEnabledItemIds();
|
|
4633
|
+
newItemIds = (_o = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _o !== void 0 ? _o : [];
|
|
4634
|
+
_i = 0, curEnabled_1 = curEnabled;
|
|
4635
|
+
_p.label = 4;
|
|
4636
|
+
case 4:
|
|
4637
|
+
if (!(_i < curEnabled_1.length)) return [3 /*break*/, 7];
|
|
4638
|
+
id = curEnabled_1[_i];
|
|
4639
|
+
if (!(newItemIds.indexOf(id) === -1)) return [3 /*break*/, 6];
|
|
4640
|
+
return [4 /*yield*/, params.manager.RemoveItemById(id)];
|
|
4641
|
+
case 5:
|
|
4642
|
+
_p.sent();
|
|
4643
|
+
_p.label = 6;
|
|
4644
|
+
case 6:
|
|
4645
|
+
_i++;
|
|
4646
|
+
return [3 /*break*/, 4];
|
|
4647
|
+
case 7:
|
|
4648
|
+
if (!params.bookmarkId) return [3 /*break*/, 9];
|
|
4649
|
+
return [4 /*yield*/, RenderHelper.RenderBookmarkItems({
|
|
4650
|
+
apiGetter: params.apiGetter,
|
|
4651
|
+
manager: params.manager,
|
|
4652
|
+
}, params.viewId, params.bookmarkId)];
|
|
4653
|
+
case 8:
|
|
4654
|
+
_p.sent();
|
|
4655
|
+
_p.label = 9;
|
|
4656
|
+
case 9: return [2 /*return*/];
|
|
4657
|
+
}
|
|
4658
|
+
});
|
|
4659
|
+
});
|
|
4660
|
+
}
|
|
4661
|
+
var ViewRenderEngine;
|
|
4662
|
+
(function (ViewRenderEngine) {
|
|
4663
|
+
function Render(params) {
|
|
4664
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
4665
|
+
var api, view, bookmark, version;
|
|
4666
|
+
return __generator(this, function (_a) {
|
|
4667
|
+
switch (_a.label) {
|
|
4668
|
+
case 0:
|
|
4669
|
+
api = params.apiGetter.getApi();
|
|
4670
|
+
return [4 /*yield*/, ProjectView.Get(api, params.viewId)];
|
|
4671
|
+
case 1:
|
|
4672
|
+
view = _a.sent();
|
|
4673
|
+
bookmark = null;
|
|
4674
|
+
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
4675
|
+
return [4 /*yield*/, ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
|
|
4676
|
+
case 2:
|
|
4677
|
+
bookmark = _a.sent();
|
|
4678
|
+
_a.label = 3;
|
|
4679
|
+
case 3:
|
|
4680
|
+
if (bookmark && view.DataVersion != bookmark.DataVersion) {
|
|
4681
|
+
throw new Error("View and bookmark settings version mismatch.");
|
|
4203
4682
|
}
|
|
4204
|
-
|
|
4205
|
-
return [
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4683
|
+
version = view.DataVersion;
|
|
4684
|
+
if (!(version === 2)) return [3 /*break*/, 5];
|
|
4685
|
+
return [4 /*yield*/, renderV2(params, bookmark, view)];
|
|
4686
|
+
case 4:
|
|
4687
|
+
_a.sent();
|
|
4688
|
+
return [3 /*break*/, 7];
|
|
4689
|
+
case 5: return [4 /*yield*/, renderV1(params, bookmark, view)];
|
|
4209
4690
|
case 6:
|
|
4210
|
-
|
|
4211
|
-
|
|
4691
|
+
_a.sent();
|
|
4692
|
+
_a.label = 7;
|
|
4212
4693
|
case 7: return [2 /*return*/];
|
|
4213
4694
|
}
|
|
4214
4695
|
});
|