bruce-cesium 0.1.2 → 0.1.5
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 +565 -3
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +564 -4
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +2 -0
- package/dist/lib/bruce-cesium.js.map +1 -1
- package/dist/lib/rendering/tile-render-engine.js +127 -31
- package/dist/lib/rendering/tile-render-engine.js.map +1 -1
- package/dist/lib/rendering/view-render-engine.js +55 -36
- package/dist/lib/rendering/view-render-engine.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +2 -0
- package/dist/types/rendering/tile-render-engine.d.ts +1 -2
- package/package.json +2 -2
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, EntityFilterGetter, BatchedDataGetter, ObjectUtils, Tileset, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTileSource, Camera } from 'bruce-models';
|
|
2
|
+
import { Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, OrthographicFrustum, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
|
|
3
3
|
|
|
4
4
|
var TIME_LAG = 300;
|
|
5
5
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -3124,5 +3124,567 @@ var RenderHelper;
|
|
|
3124
3124
|
RenderHelper.RenderTileset = RenderTileset;
|
|
3125
3125
|
})(RenderHelper || (RenderHelper = {}));
|
|
3126
3126
|
|
|
3127
|
-
|
|
3127
|
+
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;
|
|
3128
|
+
function prepLegacyName(name) {
|
|
3129
|
+
if (!name) {
|
|
3130
|
+
return "";
|
|
3131
|
+
}
|
|
3132
|
+
name = name.replace(/" "/g, "");
|
|
3133
|
+
name = name.replace(re, "");
|
|
3134
|
+
name = name.toLowerCase();
|
|
3135
|
+
if (name === "cwt") {
|
|
3136
|
+
name = "cesiumworldterrain";
|
|
3137
|
+
}
|
|
3138
|
+
return name;
|
|
3139
|
+
}
|
|
3140
|
+
var EDefaultTerrain;
|
|
3141
|
+
(function (EDefaultTerrain) {
|
|
3142
|
+
EDefaultTerrain["CesiumWorldTerrain"] = "cesiumworldterrain";
|
|
3143
|
+
EDefaultTerrain["Linz"] = "linz";
|
|
3144
|
+
EDefaultTerrain["FlatTerrain"] = "flatterrain";
|
|
3145
|
+
})(EDefaultTerrain || (EDefaultTerrain = {}));
|
|
3146
|
+
var DEFAULT_TERRAIN_NAMES = [
|
|
3147
|
+
EDefaultTerrain.CesiumWorldTerrain,
|
|
3148
|
+
EDefaultTerrain.Linz,
|
|
3149
|
+
EDefaultTerrain.FlatTerrain
|
|
3150
|
+
];
|
|
3151
|
+
function isDefaultTerrain(name) {
|
|
3152
|
+
name = prepLegacyName(name);
|
|
3153
|
+
return DEFAULT_TERRAIN_NAMES.includes(name);
|
|
3154
|
+
}
|
|
3155
|
+
function createTerrainBId(source) {
|
|
3156
|
+
if (!source) {
|
|
3157
|
+
return "";
|
|
3158
|
+
}
|
|
3159
|
+
if (isDefaultTerrain(source.Name)) {
|
|
3160
|
+
return source.Name;
|
|
3161
|
+
}
|
|
3162
|
+
if (source.SourceUrl) {
|
|
3163
|
+
return source.SourceUrl;
|
|
3164
|
+
}
|
|
3165
|
+
return "";
|
|
3166
|
+
}
|
|
3167
|
+
function createImageryBId(source) {
|
|
3168
|
+
if (!source) {
|
|
3169
|
+
return "";
|
|
3170
|
+
}
|
|
3171
|
+
if (isDefaultTerrain(source.Name)) {
|
|
3172
|
+
return source.Name;
|
|
3173
|
+
}
|
|
3174
|
+
if (source.SourceUrl) {
|
|
3175
|
+
return source.SourceUrl;
|
|
3176
|
+
}
|
|
3177
|
+
return "";
|
|
3178
|
+
}
|
|
3179
|
+
var EDefaultImagery;
|
|
3180
|
+
(function (EDefaultImagery) {
|
|
3181
|
+
EDefaultImagery["BingMapsAerial"] = "bingmapsaerial";
|
|
3182
|
+
EDefaultImagery["BingMapsAerialWithLabels"] = "bingmapsaerialwithlabels";
|
|
3183
|
+
EDefaultImagery["BingMapsRoads"] = "bingmapsroads";
|
|
3184
|
+
EDefaultImagery["MapboxSatellite"] = "mapboxsatellite";
|
|
3185
|
+
EDefaultImagery["MapBoxStreets"] = "mapboxstreets";
|
|
3186
|
+
EDefaultImagery["MapBoxStreetsClassic"] = "mapboxstreetsclassic";
|
|
3187
|
+
EDefaultImagery["EsriWorldImagery"] = "esriworldimagery";
|
|
3188
|
+
EDefaultImagery["EsriWorldStreetMap"] = "esriworldstreetmap";
|
|
3189
|
+
EDefaultImagery["EsriNationalGeographic"] = "esrinationalgeographic";
|
|
3190
|
+
EDefaultImagery["OpenStreetMap"] = "openstreetmap";
|
|
3191
|
+
EDefaultImagery["StamenWaterColor"] = "stamenwatercolor";
|
|
3192
|
+
EDefaultImagery["StamenToner"] = "stamentoner";
|
|
3193
|
+
EDefaultImagery["Grid"] = "grid";
|
|
3194
|
+
})(EDefaultImagery || (EDefaultImagery = {}));
|
|
3195
|
+
var DEFAULT_IMAGERY_NAMES = [
|
|
3196
|
+
EDefaultImagery.BingMapsAerial,
|
|
3197
|
+
EDefaultImagery.BingMapsAerialWithLabels,
|
|
3198
|
+
EDefaultImagery.BingMapsRoads,
|
|
3199
|
+
EDefaultImagery.MapboxSatellite,
|
|
3200
|
+
EDefaultImagery.MapBoxStreets,
|
|
3201
|
+
EDefaultImagery.MapBoxStreetsClassic,
|
|
3202
|
+
EDefaultImagery.EsriWorldImagery,
|
|
3203
|
+
EDefaultImagery.EsriWorldStreetMap,
|
|
3204
|
+
EDefaultImagery.EsriNationalGeographic,
|
|
3205
|
+
EDefaultImagery.OpenStreetMap,
|
|
3206
|
+
EDefaultImagery.StamenWaterColor,
|
|
3207
|
+
EDefaultImagery.StamenToner,
|
|
3208
|
+
EDefaultImagery.Grid
|
|
3209
|
+
];
|
|
3210
|
+
function isDefaultImagery(name) {
|
|
3211
|
+
name = prepLegacyName(name);
|
|
3212
|
+
return DEFAULT_IMAGERY_NAMES.includes(name);
|
|
3213
|
+
}
|
|
3214
|
+
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
3215
|
+
var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
|
|
3216
|
+
function gatherEnabledImageries(viewer) {
|
|
3217
|
+
var collection = viewer.imageryLayers;
|
|
3218
|
+
var layers = [];
|
|
3219
|
+
for (var i = 0; i < collection.length; i++) {
|
|
3220
|
+
var layer = collection.get(i);
|
|
3221
|
+
layers.push(layer);
|
|
3222
|
+
}
|
|
3223
|
+
return layers;
|
|
3224
|
+
}
|
|
3225
|
+
var TileRenderEngine;
|
|
3226
|
+
(function (TileRenderEngine) {
|
|
3227
|
+
/**
|
|
3228
|
+
* Legacy data did name comparisons instead of ids.
|
|
3229
|
+
* We need to strip spacing, remove special characters, and make lowercase before comparison...
|
|
3230
|
+
* @param nameA
|
|
3231
|
+
* @param nameB
|
|
3232
|
+
*/
|
|
3233
|
+
function CompareLegacyNames(nameA, nameB) {
|
|
3234
|
+
nameA = prepLegacyName(nameA);
|
|
3235
|
+
nameB = prepLegacyName(nameB);
|
|
3236
|
+
return nameA === nameB;
|
|
3237
|
+
}
|
|
3238
|
+
TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
|
|
3239
|
+
var Map;
|
|
3240
|
+
(function (Map) {
|
|
3241
|
+
function MarkProvider(provider, id) {
|
|
3242
|
+
provider._bId = id;
|
|
3243
|
+
}
|
|
3244
|
+
Map.MarkProvider = MarkProvider;
|
|
3245
|
+
function Render(params) {
|
|
3246
|
+
throw ("Not implemented");
|
|
3247
|
+
}
|
|
3248
|
+
Map.Render = Render;
|
|
3249
|
+
function RenderLegacy(params) {
|
|
3250
|
+
var enabled = gatherEnabledImageries(params.viewer);
|
|
3251
|
+
var tile = params.data;
|
|
3252
|
+
var bId = createImageryBId(tile);
|
|
3253
|
+
var layer = enabled.find(function (x) { return x._bId == bId; });
|
|
3254
|
+
if (layer) ;
|
|
3255
|
+
else if (isDefaultImagery(tile.Name)) {
|
|
3256
|
+
var provider = null;
|
|
3257
|
+
// TODO: Rest of defaults.
|
|
3258
|
+
// TODO: Should be enum.
|
|
3259
|
+
switch (prepLegacyName(tile.Name)) {
|
|
3260
|
+
case EDefaultImagery.BingMapsAerial:
|
|
3261
|
+
// TODO: Read account key if available.
|
|
3262
|
+
provider = new BingMapsImageryProvider({
|
|
3263
|
+
url: "https://dev.virtualearth.net",
|
|
3264
|
+
mapStyle: BingMapsStyle.AERIAL,
|
|
3265
|
+
key: DEFAULT_BING_KEY
|
|
3266
|
+
});
|
|
3267
|
+
break;
|
|
3268
|
+
case EDefaultImagery.BingMapsAerialWithLabels:
|
|
3269
|
+
// TODO: Read account key if available.
|
|
3270
|
+
provider = new BingMapsImageryProvider({
|
|
3271
|
+
url: "https://dev.virtualearth.net",
|
|
3272
|
+
mapStyle: BingMapsStyle.AERIAL_WITH_LABELS,
|
|
3273
|
+
key: DEFAULT_BING_KEY
|
|
3274
|
+
});
|
|
3275
|
+
break;
|
|
3276
|
+
case EDefaultImagery.BingMapsRoads:
|
|
3277
|
+
// TODO: Read account key if available.
|
|
3278
|
+
provider = new BingMapsImageryProvider({
|
|
3279
|
+
url: "https://dev.virtualearth.net",
|
|
3280
|
+
mapStyle: BingMapsStyle.ROAD_ON_DEMAND,
|
|
3281
|
+
key: DEFAULT_BING_KEY
|
|
3282
|
+
});
|
|
3283
|
+
break;
|
|
3284
|
+
case EDefaultImagery.MapboxSatellite:
|
|
3285
|
+
// TODO: Read account key if available.
|
|
3286
|
+
provider = new MapboxImageryProvider({
|
|
3287
|
+
mapId: "mapbox.satellite",
|
|
3288
|
+
accessToken: DEFAULT_MAPBOX_KEY
|
|
3289
|
+
});
|
|
3290
|
+
break;
|
|
3291
|
+
case EDefaultImagery.MapBoxStreets:
|
|
3292
|
+
// TODO: Read account key if available.
|
|
3293
|
+
provider = new MapboxImageryProvider({
|
|
3294
|
+
mapId: "satellite-streets-v11",
|
|
3295
|
+
accessToken: DEFAULT_MAPBOX_KEY
|
|
3296
|
+
});
|
|
3297
|
+
break;
|
|
3298
|
+
case EDefaultImagery.MapBoxStreetsClassic:
|
|
3299
|
+
// TODO: Read account key if available.
|
|
3300
|
+
provider = new MapboxImageryProvider({
|
|
3301
|
+
mapId: "streets-v11",
|
|
3302
|
+
accessToken: DEFAULT_MAPBOX_KEY
|
|
3303
|
+
});
|
|
3304
|
+
break;
|
|
3305
|
+
case EDefaultImagery.EsriWorldImagery:
|
|
3306
|
+
provider = new ArcGisMapServerImageryProvider({
|
|
3307
|
+
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
|
|
3308
|
+
enablePickFeatures: false
|
|
3309
|
+
});
|
|
3310
|
+
break;
|
|
3311
|
+
case EDefaultImagery.EsriWorldStreetMap:
|
|
3312
|
+
provider = new ArcGisMapServerImageryProvider({
|
|
3313
|
+
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
|
|
3314
|
+
enablePickFeatures: false
|
|
3315
|
+
});
|
|
3316
|
+
break;
|
|
3317
|
+
case EDefaultImagery.EsriNationalGeographic:
|
|
3318
|
+
provider = new ArcGisMapServerImageryProvider({
|
|
3319
|
+
url: "https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",
|
|
3320
|
+
enablePickFeatures: false
|
|
3321
|
+
});
|
|
3322
|
+
break;
|
|
3323
|
+
case EDefaultImagery.OpenStreetMap:
|
|
3324
|
+
provider = new OpenStreetMapImageryProvider({
|
|
3325
|
+
url: "https://a.tile.openstreetmap.org/"
|
|
3326
|
+
});
|
|
3327
|
+
break;
|
|
3328
|
+
case EDefaultImagery.StamenWaterColor:
|
|
3329
|
+
provider = new OpenStreetMapImageryProvider({
|
|
3330
|
+
url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/"
|
|
3331
|
+
});
|
|
3332
|
+
break;
|
|
3333
|
+
case EDefaultImagery.StamenToner:
|
|
3334
|
+
provider = new OpenStreetMapImageryProvider({
|
|
3335
|
+
url: "https://stamen-tiles.a.ssl.fastly.net/toner/"
|
|
3336
|
+
});
|
|
3337
|
+
break;
|
|
3338
|
+
case EDefaultImagery.Grid:
|
|
3339
|
+
provider = new GridImageryProvider({
|
|
3340
|
+
tilingScheme: new GeographicTilingScheme(),
|
|
3341
|
+
cells: 0,
|
|
3342
|
+
color: Color.fromCssColorString("rgb(97, 151, 237)"),
|
|
3343
|
+
glowColor: Color.fromCssColorString("rgb(54, 54, 54)"),
|
|
3344
|
+
glowWidth: 4,
|
|
3345
|
+
backgroundColor: Color.TRANSPARENT,
|
|
3346
|
+
tileWidth: 256,
|
|
3347
|
+
tileHeight: 256,
|
|
3348
|
+
canvasSize: 256
|
|
3349
|
+
});
|
|
3350
|
+
break;
|
|
3351
|
+
}
|
|
3352
|
+
if (provider) {
|
|
3353
|
+
layer = new ImageryLayer(provider);
|
|
3354
|
+
}
|
|
3355
|
+
}
|
|
3356
|
+
else if (tile.SourceUrl) {
|
|
3357
|
+
var provider = null;
|
|
3358
|
+
var min = tile.Minimum;
|
|
3359
|
+
var max = tile.Maximum;
|
|
3360
|
+
if (min != undefined && min <= -1) {
|
|
3361
|
+
min = undefined;
|
|
3362
|
+
}
|
|
3363
|
+
if (max != undefined && max <= -1) {
|
|
3364
|
+
max = undefined;
|
|
3365
|
+
}
|
|
3366
|
+
switch (tile.Type) {
|
|
3367
|
+
case "BruceImagery":
|
|
3368
|
+
provider = new UrlTemplateImageryProvider({
|
|
3369
|
+
url: tile.SourceUrl,
|
|
3370
|
+
tileHeight: 256,
|
|
3371
|
+
tileWidth: 256
|
|
3372
|
+
});
|
|
3373
|
+
break;
|
|
3374
|
+
case "ArcGisImagery":
|
|
3375
|
+
provider = new OpenStreetMapImageryProvider({
|
|
3376
|
+
url: tile.SourceUrl,
|
|
3377
|
+
fileExtension: tile.FileExtension,
|
|
3378
|
+
minimumLevel: min,
|
|
3379
|
+
maximumLevel: max
|
|
3380
|
+
});
|
|
3381
|
+
break;
|
|
3382
|
+
case "TileMapImagery":
|
|
3383
|
+
provider = new TileMapServiceImageryProvider({
|
|
3384
|
+
url: tile.SourceUrl,
|
|
3385
|
+
fileExtension: tile.FileExtension,
|
|
3386
|
+
minimumLevel: min,
|
|
3387
|
+
maximumLevel: max
|
|
3388
|
+
});
|
|
3389
|
+
break;
|
|
3390
|
+
case "OpenStreetMapImagery":
|
|
3391
|
+
provider = new OpenStreetMapImageryProvider({
|
|
3392
|
+
url: tile.SourceUrl,
|
|
3393
|
+
fileExtension: tile.FileExtension,
|
|
3394
|
+
minimumLevel: min,
|
|
3395
|
+
maximumLevel: max
|
|
3396
|
+
});
|
|
3397
|
+
break;
|
|
3398
|
+
case "MapBoxImagery":
|
|
3399
|
+
// TODO: Read default account key when missing.
|
|
3400
|
+
provider = new UrlTemplateImageryProvider({
|
|
3401
|
+
url: "https://api.mapbox.com/styles/v1/"
|
|
3402
|
+
+ tile.MapBoxUsername + "/" + tile.MapBoxID +
|
|
3403
|
+
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
3404
|
+
+ tile.ProgramKey
|
|
3405
|
+
});
|
|
3406
|
+
break;
|
|
3407
|
+
}
|
|
3408
|
+
if (provider) {
|
|
3409
|
+
layer = new ImageryLayer(provider);
|
|
3410
|
+
}
|
|
3411
|
+
}
|
|
3412
|
+
if (layer) {
|
|
3413
|
+
layer._bId = bId;
|
|
3414
|
+
if (!params.viewer.imageryLayers.contains(layer)) {
|
|
3415
|
+
params.viewer.imageryLayers.add(layer);
|
|
3416
|
+
}
|
|
3417
|
+
}
|
|
3418
|
+
return layer;
|
|
3419
|
+
}
|
|
3420
|
+
function RenderLegacyView(params) {
|
|
3421
|
+
var _a, _b, _c, _d, _e;
|
|
3422
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3423
|
+
var view, bookmark, data, dataNames, i, source, tiles, i, name_1, j, tile, enabled, layers, _loop_1, i, i, tile, layer, i, layer;
|
|
3424
|
+
return __generator(this, function (_f) {
|
|
3425
|
+
switch (_f.label) {
|
|
3426
|
+
case 0: return [4 /*yield*/, ProjectView.Get(params.api, params.viewId)];
|
|
3427
|
+
case 1:
|
|
3428
|
+
view = _f.sent();
|
|
3429
|
+
bookmark = null;
|
|
3430
|
+
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
3431
|
+
return [4 /*yield*/, ProjectViewBookmark.Get(params.api, params.viewId, params.bookmarkId)];
|
|
3432
|
+
case 2:
|
|
3433
|
+
bookmark = _f.sent();
|
|
3434
|
+
_f.label = 3;
|
|
3435
|
+
case 3:
|
|
3436
|
+
data = [];
|
|
3437
|
+
dataNames = [];
|
|
3438
|
+
if ((_a = bookmark.Settings) === null || _a === void 0 ? void 0 : _a.imagery) {
|
|
3439
|
+
for (i = 0; i < bookmark.Settings.imagery.length; i++) {
|
|
3440
|
+
source = bookmark.Settings.imagery[i];
|
|
3441
|
+
dataNames.push(source.title);
|
|
3442
|
+
}
|
|
3443
|
+
}
|
|
3444
|
+
else if ((_b = view.Settings) === null || _b === void 0 ? void 0 : _b.DefaultMapTiles) {
|
|
3445
|
+
dataNames.push(view.Settings.DefaultMapTiles);
|
|
3446
|
+
}
|
|
3447
|
+
tiles = (_d = (_c = view.Settings) === null || _c === void 0 ? void 0 : _c.CesiumMapSources) !== null && _d !== void 0 ? _d : [];
|
|
3448
|
+
return [4 /*yield*/, ProjectViewTileSource.MergeMapTemplateData(tiles, ((_e = view.Settings) === null || _e === void 0 ? void 0 : _e.CesiumMapSources) == null)];
|
|
3449
|
+
case 4:
|
|
3450
|
+
_f.sent();
|
|
3451
|
+
for (i = 0; i < dataNames.length; i++) {
|
|
3452
|
+
name_1 = dataNames[i];
|
|
3453
|
+
for (j = 0; j < tiles.length; j++) {
|
|
3454
|
+
tile = tiles[j];
|
|
3455
|
+
if (CompareLegacyNames(tile.Name, name_1)) {
|
|
3456
|
+
data.push(tile);
|
|
3457
|
+
break;
|
|
3458
|
+
}
|
|
3459
|
+
}
|
|
3460
|
+
}
|
|
3461
|
+
enabled = gatherEnabledImageries(params.viewer);
|
|
3462
|
+
layers = [];
|
|
3463
|
+
// Gather layers we want to render.
|
|
3464
|
+
// Any new layer is added to viewer at the bottom.
|
|
3465
|
+
if (params.ignoreIds) {
|
|
3466
|
+
_loop_1 = function (i) {
|
|
3467
|
+
var id = params.ignoreIds[i];
|
|
3468
|
+
var layer = enabled.find(function (x) {
|
|
3469
|
+
var layer = x;
|
|
3470
|
+
if (layer._bId === id) {
|
|
3471
|
+
return true;
|
|
3472
|
+
}
|
|
3473
|
+
});
|
|
3474
|
+
if (layer) {
|
|
3475
|
+
layers.push(layer);
|
|
3476
|
+
}
|
|
3477
|
+
};
|
|
3478
|
+
for (i = 0; i < params.ignoreIds.length; i++) {
|
|
3479
|
+
_loop_1(i);
|
|
3480
|
+
}
|
|
3481
|
+
}
|
|
3482
|
+
for (i = 0; i < tiles.length; i++) {
|
|
3483
|
+
tile = tiles[i];
|
|
3484
|
+
layer = RenderLegacy({
|
|
3485
|
+
api: params.api,
|
|
3486
|
+
viewer: params.viewer,
|
|
3487
|
+
data: tile,
|
|
3488
|
+
});
|
|
3489
|
+
if (layer) {
|
|
3490
|
+
layers.push(layer);
|
|
3491
|
+
}
|
|
3492
|
+
}
|
|
3493
|
+
// Sort currently enabled (after new ones added) to match desired order.
|
|
3494
|
+
enabled = gatherEnabledImageries(params.viewer);
|
|
3495
|
+
enabled.sort(function (a, b) {
|
|
3496
|
+
var indexA = layers.indexOf(a);
|
|
3497
|
+
var indexB = layers.indexOf(b);
|
|
3498
|
+
if (indexA < 0 && indexB < 0) {
|
|
3499
|
+
return 0;
|
|
3500
|
+
}
|
|
3501
|
+
if (indexA < 0) {
|
|
3502
|
+
return 1;
|
|
3503
|
+
}
|
|
3504
|
+
if (indexB < 0) {
|
|
3505
|
+
return -1;
|
|
3506
|
+
}
|
|
3507
|
+
return indexA - indexB;
|
|
3508
|
+
});
|
|
3509
|
+
// Move enabled layers to match desired order.
|
|
3510
|
+
// Remove any layers that aren't in enabled list.
|
|
3511
|
+
enabled = enabled.reverse();
|
|
3512
|
+
for (i = 0; i < enabled.length; i++) {
|
|
3513
|
+
layer = enabled[i];
|
|
3514
|
+
if (layers.includes(layer)) {
|
|
3515
|
+
params.viewer.imageryLayers.raiseToTop(layer);
|
|
3516
|
+
}
|
|
3517
|
+
else {
|
|
3518
|
+
params.viewer.imageryLayers.remove(layer);
|
|
3519
|
+
}
|
|
3520
|
+
}
|
|
3521
|
+
return [2 /*return*/];
|
|
3522
|
+
}
|
|
3523
|
+
});
|
|
3524
|
+
});
|
|
3525
|
+
}
|
|
3526
|
+
Map.RenderLegacyView = RenderLegacyView;
|
|
3527
|
+
})(Map = TileRenderEngine.Map || (TileRenderEngine.Map = {}));
|
|
3528
|
+
var Terrain;
|
|
3529
|
+
(function (Terrain) {
|
|
3530
|
+
function Render(params) {
|
|
3531
|
+
throw ("Not implemented");
|
|
3532
|
+
}
|
|
3533
|
+
Terrain.Render = Render;
|
|
3534
|
+
function RenderLegacy(params) {
|
|
3535
|
+
var bId = createTerrainBId(params.data);
|
|
3536
|
+
var curProvider = params.viewer.terrainProvider;
|
|
3537
|
+
if (curProvider._bId && curProvider._bId === bId) {
|
|
3538
|
+
return;
|
|
3539
|
+
}
|
|
3540
|
+
var provider = null;
|
|
3541
|
+
if (isDefaultTerrain(params.data.Name)) {
|
|
3542
|
+
var name_2 = prepLegacyName(params.data.Name);
|
|
3543
|
+
switch (name_2) {
|
|
3544
|
+
case EDefaultTerrain.CesiumWorldTerrain:
|
|
3545
|
+
provider = createWorldTerrain({
|
|
3546
|
+
requestVertexNormals: true
|
|
3547
|
+
});
|
|
3548
|
+
break;
|
|
3549
|
+
case EDefaultTerrain.Linz:
|
|
3550
|
+
provider = new CesiumTerrainProvider({
|
|
3551
|
+
url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
|
|
3552
|
+
requestVertexNormals: true
|
|
3553
|
+
});
|
|
3554
|
+
break;
|
|
3555
|
+
case EDefaultTerrain.FlatTerrain:
|
|
3556
|
+
provider = new EllipsoidTerrainProvider();
|
|
3557
|
+
break;
|
|
3558
|
+
}
|
|
3559
|
+
}
|
|
3560
|
+
else if (params.data.SourceUrl) {
|
|
3561
|
+
provider = new CesiumTerrainProvider({
|
|
3562
|
+
url: params.data.SourceUrl,
|
|
3563
|
+
requestWaterMask: params.data.RequestWaterMask,
|
|
3564
|
+
requestVertexNormals: true
|
|
3565
|
+
});
|
|
3566
|
+
}
|
|
3567
|
+
if (provider) {
|
|
3568
|
+
provider._bId = bId;
|
|
3569
|
+
params.viewer.terrainProvider = provider;
|
|
3570
|
+
}
|
|
3571
|
+
}
|
|
3572
|
+
Terrain.RenderLegacy = RenderLegacy;
|
|
3573
|
+
})(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
|
|
3574
|
+
})(TileRenderEngine || (TileRenderEngine = {}));
|
|
3575
|
+
|
|
3576
|
+
var ViewRenderEngine;
|
|
3577
|
+
(function (ViewRenderEngine) {
|
|
3578
|
+
function Render(params) {
|
|
3579
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
3580
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3581
|
+
var view, bookmark, terrainTiles, terrainTile, terrainTileName, i, tile, frustum, scene, curFrustum, camera, pos, go, enabledItems, newItemIds, _i, enabledItems_1, id;
|
|
3582
|
+
return __generator(this, function (_l) {
|
|
3583
|
+
switch (_l.label) {
|
|
3584
|
+
case 0: return [4 /*yield*/, ProjectView.Get(params.api, params.viewId)];
|
|
3585
|
+
case 1:
|
|
3586
|
+
view = _l.sent();
|
|
3587
|
+
bookmark = null;
|
|
3588
|
+
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
3589
|
+
return [4 /*yield*/, ProjectViewBookmark.Get(params.api, params.viewId, params.bookmarkId)];
|
|
3590
|
+
case 2:
|
|
3591
|
+
bookmark = _l.sent();
|
|
3592
|
+
_l.label = 3;
|
|
3593
|
+
case 3:
|
|
3594
|
+
terrainTiles = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.CesiumTerrainSources) !== null && _b !== void 0 ? _b : [];
|
|
3595
|
+
terrainTile = null;
|
|
3596
|
+
terrainTileName = null;
|
|
3597
|
+
if ((_c = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _c === void 0 ? void 0 : _c.terrain) {
|
|
3598
|
+
terrainTileName = bookmark.Settings.terrain;
|
|
3599
|
+
}
|
|
3600
|
+
else {
|
|
3601
|
+
terrainTileName = (_d = view.Settings) === null || _d === void 0 ? void 0 : _d.DefaultTerrain;
|
|
3602
|
+
}
|
|
3603
|
+
return [4 /*yield*/, ProjectViewTileSource.MergeTerrainTemplateData(terrainTiles, ((_e = view.Settings) === null || _e === void 0 ? void 0 : _e.CesiumTerrainSources) == null)];
|
|
3604
|
+
case 4:
|
|
3605
|
+
_l.sent();
|
|
3606
|
+
for (i = 0; i < terrainTiles.length; i++) {
|
|
3607
|
+
tile = terrainTiles[i];
|
|
3608
|
+
if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
|
|
3609
|
+
terrainTile = tile;
|
|
3610
|
+
break;
|
|
3611
|
+
}
|
|
3612
|
+
}
|
|
3613
|
+
if (terrainTile) {
|
|
3614
|
+
TileRenderEngine.Terrain.RenderLegacy({
|
|
3615
|
+
data: terrainTile,
|
|
3616
|
+
viewer: params.manager.Viewer,
|
|
3617
|
+
});
|
|
3618
|
+
}
|
|
3619
|
+
return [4 /*yield*/, TileRenderEngine.Map.RenderLegacyView({
|
|
3620
|
+
api: params.api,
|
|
3621
|
+
bookmarkId: params.bookmarkId,
|
|
3622
|
+
viewer: params.manager.Viewer,
|
|
3623
|
+
viewId: params.viewId,
|
|
3624
|
+
ignoreIds: []
|
|
3625
|
+
})];
|
|
3626
|
+
case 5:
|
|
3627
|
+
_l.sent();
|
|
3628
|
+
frustum = (_f = bookmark.Settings) === null || _f === void 0 ? void 0 : _f.cameraFrustum;
|
|
3629
|
+
if (frustum == null) {
|
|
3630
|
+
frustum = Camera.EFrustum.Perspective;
|
|
3631
|
+
}
|
|
3632
|
+
scene = params.manager.Viewer.scene;
|
|
3633
|
+
curFrustum = scene.camera.frustum instanceof OrthographicFrustum ? Camera.EFrustum.Orthographic : Camera.EFrustum.Perspective;
|
|
3634
|
+
if (curFrustum != frustum) {
|
|
3635
|
+
if (frustum == Camera.EFrustum.Perspective) {
|
|
3636
|
+
scene.camera.switchToPerspectiveFrustum();
|
|
3637
|
+
scene.screenSpaceCameraController.enableTilt = true;
|
|
3638
|
+
}
|
|
3639
|
+
else {
|
|
3640
|
+
scene.camera.switchToOrthographicFrustum();
|
|
3641
|
+
scene.screenSpaceCameraController.enableTilt = false;
|
|
3642
|
+
}
|
|
3643
|
+
params.skipTransition = true;
|
|
3644
|
+
}
|
|
3645
|
+
camera = bookmark.Camera;
|
|
3646
|
+
pos = Cartesian3.fromDegrees(+camera.position.longitude, +camera.position.latitude, +camera.position.height);
|
|
3647
|
+
params.manager.Viewer.scene.camera.flyTo({
|
|
3648
|
+
destination: pos,
|
|
3649
|
+
orientation: {
|
|
3650
|
+
heading: +camera.heading,
|
|
3651
|
+
pitch: +camera.pitch,
|
|
3652
|
+
roll: +camera.roll
|
|
3653
|
+
},
|
|
3654
|
+
duration: params.skipTransition ? 0 : 2
|
|
3655
|
+
});
|
|
3656
|
+
go = (_g = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _g === void 0 ? void 0 : _g.groundOcclusion;
|
|
3657
|
+
if (go == null) {
|
|
3658
|
+
go = (_h = view.Settings) === null || _h === void 0 ? void 0 : _h.GroundOcclusion;
|
|
3659
|
+
}
|
|
3660
|
+
if (go == null) {
|
|
3661
|
+
go = false;
|
|
3662
|
+
}
|
|
3663
|
+
params.manager.Viewer.scene.globe.depthTestAgainstTerrain = go;
|
|
3664
|
+
enabledItems = params.manager.GetEnabledItemIds();
|
|
3665
|
+
newItemIds = (_k = (_j = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _j === void 0 ? void 0 : _j.selectedItemIds) !== null && _k !== void 0 ? _k : [];
|
|
3666
|
+
for (_i = 0, enabledItems_1 = enabledItems; _i < enabledItems_1.length; _i++) {
|
|
3667
|
+
id = enabledItems_1[_i];
|
|
3668
|
+
if (newItemIds.indexOf(id) === -1) {
|
|
3669
|
+
params.manager.RemoveItemById(id);
|
|
3670
|
+
}
|
|
3671
|
+
}
|
|
3672
|
+
if (!params.bookmarkId) return [3 /*break*/, 7];
|
|
3673
|
+
return [4 /*yield*/, RenderHelper.RenderBookmarkItems({
|
|
3674
|
+
api: params.api,
|
|
3675
|
+
apiGetter: params.apiGetter,
|
|
3676
|
+
manager: params.manager,
|
|
3677
|
+
}, params.viewId, params.bookmarkId)];
|
|
3678
|
+
case 6:
|
|
3679
|
+
_l.sent();
|
|
3680
|
+
_l.label = 7;
|
|
3681
|
+
case 7: return [2 /*return*/];
|
|
3682
|
+
}
|
|
3683
|
+
});
|
|
3684
|
+
});
|
|
3685
|
+
}
|
|
3686
|
+
ViewRenderEngine.Render = Render;
|
|
3687
|
+
})(ViewRenderEngine || (ViewRenderEngine = {}));
|
|
3688
|
+
|
|
3689
|
+
export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine };
|
|
3128
3690
|
//# sourceMappingURL=bruce-cesium.es5.js.map
|