bruce-cesium 4.6.2 → 4.6.3
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 +285 -85
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +283 -83
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/rendering/getters/entity-filter-getter.js +162 -10
- package/dist/lib/rendering/getters/entity-filter-getter.js.map +1 -1
- package/dist/lib/rendering/render-managers/common/shared-getters.js +7 -1
- package/dist/lib/rendering/render-managers/common/shared-getters.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +75 -47
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/view-render-engine.js +22 -16
- package/dist/lib/rendering/view-render-engine.js.map +1 -1
- package/dist/lib/widgets/widget-left-panel.js +18 -8
- package/dist/lib/widgets/widget-left-panel.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/dist/types/rendering/getters/entity-filter-getter.d.ts +12 -0
- package/dist/types/rendering/render-managers/common/shared-getters.d.ts +1 -0
- package/package.json +2 -2
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BruceEvent, Cartes, Entity as Entity$1, Carto, Geometry, MathUtils, LRUCache, Api, Calculator, ClientFile, EntityTag, EntityType, ObjectUtils, Style, ProjectViewTile, DelayQueue, EntityLod, Bounds, ZoomControl, EntityRelationType, ENVIRONMENT, EntityHistoricData, Tileset, EntityCoords, EntitySource, MenuItem, EntityRelation, ProgramKey, ProjectView, ProjectViewBookmark,
|
|
1
|
+
import { BruceEvent, Cartes, Entity as Entity$1, Carto, Geometry, MathUtils, LRUCache, Api, Calculator, ClientFile, EntityTag, EntityType, ObjectUtils, Style, ProjectViewTile, DelayQueue, EntityLod, Bounds, ZoomControl, EntityRelationType, ENVIRONMENT, EntityHistoricData, Tileset, EntityCoords, EntitySource, MenuItem, EntityRelation, ProgramKey, ProjectView, ProjectViewBookmark, ProjectViewLegacyTile, Camera, EntityAttribute, EntityAttachment, EntityAttachmentType, AbstractApi, Session } from 'bruce-models';
|
|
2
2
|
import * as Cesium from 'cesium';
|
|
3
|
-
import { Cartographic, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, JulianDate, Entity, DistanceDisplayCondition, HorizontalOrigin, VerticalOrigin, ConstantProperty, ConstantPositionProperty, ClassificationType, ArcType, CornerType, ShadowMode,
|
|
3
|
+
import { Cartographic, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, JulianDate, Entity, DistanceDisplayCondition, HorizontalOrigin, VerticalOrigin, ConstantProperty, ConstantPositionProperty, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, ColorMaterialProperty, ColorBlendMode, HeadingPitchRoll, Transforms, Model, Primitive, Cesium3DTileFeature, SceneMode, GeoJsonDataSource, Cesium3DTileColorBlendMode, HeadingPitchRange, Cesium3DTileStyle, Ion, KmlDataSource, EllipsoidTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, UrlTemplateImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, SceneTransforms, OrthographicFrustum, EasingFunction, NearFarScalar, Cesium3DTileset, Matrix4, Matrix3, IonResource, EllipsoidGeodesic, sampleTerrainMostDetailed, defined, CesiumInspector, ClockRange, PolygonPipeline, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics, PolylineDashMaterialProperty, BoundingSphere, GeometryInstance, Quaternion, ScreenSpaceEventHandler, ScreenSpaceEventType, CzmlDataSource, Intersect, Fullscreen } from 'cesium';
|
|
4
4
|
|
|
5
5
|
/*! *****************************************************************************
|
|
6
6
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -11861,6 +11861,20 @@ function getValue$2(viewer, obj) {
|
|
|
11861
11861
|
function colorToCColor$1(color) {
|
|
11862
11862
|
return new Color(color.red ? color.red / 255 : 0, color.green ? color.green / 255 : 0, color.blue ? color.blue / 255 : 0, color.alpha);
|
|
11863
11863
|
}
|
|
11864
|
+
function getShowDebugBounds() {
|
|
11865
|
+
if (!window) {
|
|
11866
|
+
return false;
|
|
11867
|
+
}
|
|
11868
|
+
var showBounds = window === null || window === void 0 ? void 0 : window.ENTITIES_RENDER_MANAGER_SHOW_BOUNDS;
|
|
11869
|
+
if (showBounds) {
|
|
11870
|
+
return true;
|
|
11871
|
+
}
|
|
11872
|
+
if (window.location.search) {
|
|
11873
|
+
var params = new URLSearchParams(window.location.search);
|
|
11874
|
+
showBounds = params.get("debugScanBounds");
|
|
11875
|
+
}
|
|
11876
|
+
return showBounds == "true" || showBounds == "1" || showBounds == "yes";
|
|
11877
|
+
}
|
|
11864
11878
|
/**
|
|
11865
11879
|
* Manager for rendering Bruce entities.
|
|
11866
11880
|
* This will request entities based on setup menu item filter.
|
|
@@ -11996,9 +12010,10 @@ var EntitiesRenderManager;
|
|
|
11996
12010
|
// Unfortunately this searches as an "AND" rather than "OR" which does not meet our needs here.
|
|
11997
12011
|
// So for multiple tags we'll manually sort on UI end...
|
|
11998
12012
|
tagIds: (tagsToRender === null || tagsToRender === void 0 ? void 0 : tagsToRender.length) ? tagsToRender : [],
|
|
11999
|
-
debugShowBounds:
|
|
12013
|
+
debugShowBounds: getShowDebugBounds(),
|
|
12000
12014
|
cdn: this.item.cdnEnabled,
|
|
12001
12015
|
historicAttrKey: this.item.BruceEntity.historicAttrKey,
|
|
12016
|
+
historicInterpolation: this.item.historicInterpolation,
|
|
12002
12017
|
schemaId: (_b = this.item.BruceEntity) === null || _b === void 0 ? void 0 : _b.schemaId
|
|
12003
12018
|
});
|
|
12004
12019
|
var minMax = RenderManager.GetZoomMinMax({
|
|
@@ -12226,7 +12241,7 @@ var EntitiesRenderManager;
|
|
|
12226
12241
|
switch (_b.label) {
|
|
12227
12242
|
case 0:
|
|
12228
12243
|
_b.trys.push([0, 8, , 9]);
|
|
12229
|
-
if (this.disposed || this.viewer.isDestroyed()) {
|
|
12244
|
+
if (this.disposed || this.viewer.isDestroyed() || !(entities === null || entities === void 0 ? void 0 : entities.length)) {
|
|
12230
12245
|
return [2 /*return*/];
|
|
12231
12246
|
}
|
|
12232
12247
|
typeId_1 = (_a = this.item.BruceEntity) === null || _a === void 0 ? void 0 : _a["EntityType.ID"];
|
|
@@ -12622,28 +12637,16 @@ var EntitiesRenderManager;
|
|
|
12622
12637
|
* @returns
|
|
12623
12638
|
*/
|
|
12624
12639
|
Manager.prototype.renderAsIndividuals = function (entities, force) {
|
|
12625
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
12640
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
12626
12641
|
if (force === void 0) { force = false; }
|
|
12627
12642
|
return __awaiter(this, void 0, void 0, function () {
|
|
12628
|
-
var entitiesHistoric,
|
|
12629
|
-
return __generator(this, function (
|
|
12630
|
-
switch (
|
|
12643
|
+
var entitiesHistoric, startTmp, stopTmp, startStr, stopStr, historicData, toRemoveIds_1, i, removeId, toRemoveIds_2, i, removeId, _o, updated, cEntities, i, entity, id, cEntity, rego, visual, wasClustered, tagIds, rego_1;
|
|
12644
|
+
return __generator(this, function (_p) {
|
|
12645
|
+
switch (_p.label) {
|
|
12631
12646
|
case 0:
|
|
12632
12647
|
entitiesHistoric = {};
|
|
12633
|
-
if (!((_a = this.item.BruceEntity) === null || _a === void 0 ? void 0 : _a.historicAttrKey)) return [3 /*break*/,
|
|
12634
|
-
toRemove = entities.filter(function (x) { var _a; return !((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.HistoricAttrKey); });
|
|
12635
|
-
for (i = 0; i < toRemove.length; i++) {
|
|
12636
|
-
entity = toRemove[i];
|
|
12637
|
-
this.visualsManager.RemoveRegos({
|
|
12638
|
-
entityId: entity.Bruce.ID,
|
|
12639
|
-
menuItemId: this.item.id,
|
|
12640
|
-
requestRender: false
|
|
12641
|
-
});
|
|
12642
|
-
(_b = this.clustering) === null || _b === void 0 ? void 0 : _b.RemoveEntity(entity.Bruce.ID, false);
|
|
12643
|
-
}
|
|
12644
|
-
entities = entities.filter(function (x) { var _a; return !!((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.HistoricAttrKey); });
|
|
12648
|
+
if (!(((_a = this.item.BruceEntity) === null || _a === void 0 ? void 0 : _a.historicAttrKey) && entities.length)) return [3 /*break*/, 3];
|
|
12645
12649
|
if (!this.item.historicInterpolation) return [3 /*break*/, 2];
|
|
12646
|
-
if (!entities.length) return [3 /*break*/, 2];
|
|
12647
12650
|
startTmp = JulianDate.toDate(this.viewer.clock.startTime);
|
|
12648
12651
|
stopTmp = JulianDate.toDate(this.viewer.clock.stopTime);
|
|
12649
12652
|
startStr = new Date(startTmp.getTime() - 1000).toISOString();
|
|
@@ -12656,29 +12659,54 @@ var EntitiesRenderManager;
|
|
|
12656
12659
|
api: this.apiGetter.getApi()
|
|
12657
12660
|
})];
|
|
12658
12661
|
case 1:
|
|
12659
|
-
historicData =
|
|
12662
|
+
historicData = _p.sent();
|
|
12663
|
+
entitiesHistoric = historicData.recordsByIds;
|
|
12664
|
+
toRemoveIds_1 = entities.filter(function (x) { var _a; return !((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.HistoricAttrKey) && !entitiesHistoric[x.Bruce.ID]; }).map(function (x) { return x.Bruce.ID; });
|
|
12665
|
+
for (i = 0; i < toRemoveIds_1.length; i++) {
|
|
12666
|
+
removeId = toRemoveIds_1[i];
|
|
12667
|
+
this.visualsManager.RemoveRegos({
|
|
12668
|
+
entityId: removeId,
|
|
12669
|
+
menuItemId: this.item.id,
|
|
12670
|
+
requestRender: false
|
|
12671
|
+
});
|
|
12672
|
+
(_b = this.clustering) === null || _b === void 0 ? void 0 : _b.RemoveEntity(removeId, false);
|
|
12673
|
+
}
|
|
12674
|
+
entities = entities.filter(function (x) { return !toRemoveIds_1.includes(x.Bruce.ID); });
|
|
12675
|
+
return [3 /*break*/, 3];
|
|
12676
|
+
case 2:
|
|
12677
|
+
toRemoveIds_2 = entities.filter(function (x) { var _a; return !((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.HistoricAttrKey); }).map(function (x) { return x.Bruce.ID; });
|
|
12678
|
+
for (i = 0; i < toRemoveIds_2.length; i++) {
|
|
12679
|
+
removeId = toRemoveIds_2[i];
|
|
12680
|
+
this.visualsManager.RemoveRegos({
|
|
12681
|
+
entityId: removeId,
|
|
12682
|
+
menuItemId: this.item.id,
|
|
12683
|
+
requestRender: false
|
|
12684
|
+
});
|
|
12685
|
+
(_c = this.clustering) === null || _c === void 0 ? void 0 : _c.RemoveEntity(removeId, false);
|
|
12686
|
+
}
|
|
12687
|
+
entities = entities.filter(function (x) { return !toRemoveIds_2.includes(x.Bruce.ID); });
|
|
12688
|
+
_p.label = 3;
|
|
12689
|
+
case 3:
|
|
12660
12690
|
if (this.disposed) {
|
|
12661
12691
|
this.doDispose();
|
|
12662
12692
|
return [2 /*return*/];
|
|
12663
12693
|
}
|
|
12664
|
-
|
|
12665
|
-
|
|
12666
|
-
|
|
12667
|
-
|
|
12668
|
-
|
|
12669
|
-
|
|
12670
|
-
|
|
12671
|
-
|
|
12672
|
-
|
|
12673
|
-
|
|
12674
|
-
|
|
12675
|
-
|
|
12676
|
-
|
|
12677
|
-
|
|
12678
|
-
|
|
12679
|
-
|
|
12680
|
-
case 3:
|
|
12681
|
-
_m = _o.sent(), updated = _m.updated, cEntities = _m.entities;
|
|
12694
|
+
return [4 /*yield*/, EntityRenderEngine.Render({
|
|
12695
|
+
viewer: this.viewer,
|
|
12696
|
+
apiGetter: this.apiGetter,
|
|
12697
|
+
entities: entities,
|
|
12698
|
+
menuItemId: this.item.id,
|
|
12699
|
+
visualRegister: this.visualsManager,
|
|
12700
|
+
zoomControl: this.item.CameraZoomSettings,
|
|
12701
|
+
entitiesHistoric: entitiesHistoric,
|
|
12702
|
+
entityHistoricDrawTrack: this.item.historicDrawTrack,
|
|
12703
|
+
force: force,
|
|
12704
|
+
optimizeGeometry: this.item.optimizeGeometry,
|
|
12705
|
+
optimizeMinPoints: this.item.optimizeMinPoints,
|
|
12706
|
+
optimizeTolerance: this.item.optimizeTolerance,
|
|
12707
|
+
})];
|
|
12708
|
+
case 4:
|
|
12709
|
+
_o = _p.sent(), updated = _o.updated, cEntities = _o.entities;
|
|
12682
12710
|
if (this.disposed) {
|
|
12683
12711
|
this.doDispose();
|
|
12684
12712
|
return [2 /*return*/];
|
|
@@ -12696,10 +12724,10 @@ var EntitiesRenderManager;
|
|
|
12696
12724
|
visual = rego === null || rego === void 0 ? void 0 : rego.visual;
|
|
12697
12725
|
if (!visual || visual != cEntity) {
|
|
12698
12726
|
wasClustered = this.clustering ? this.clustering.AddEntity(id, cEntity, false) : false;
|
|
12699
|
-
tagIds = (
|
|
12727
|
+
tagIds = (_d = entity.Bruce) === null || _d === void 0 ? void 0 : _d["Layer.ID"];
|
|
12700
12728
|
rego_1 = {
|
|
12701
12729
|
entityId: id,
|
|
12702
|
-
schemaId: (
|
|
12730
|
+
schemaId: (_e = entity.Bruce) === null || _e === void 0 ? void 0 : _e.SchemaID,
|
|
12703
12731
|
menuItemId: this.item.id,
|
|
12704
12732
|
menuItemType: this.item.Type,
|
|
12705
12733
|
visual: cEntity,
|
|
@@ -12710,8 +12738,8 @@ var EntitiesRenderManager;
|
|
|
12710
12738
|
overrideShow: wasClustered ? false : null,
|
|
12711
12739
|
name: cEntity.name,
|
|
12712
12740
|
cdn: this.item.cdnEnabled,
|
|
12713
|
-
historicDateTime: (
|
|
12714
|
-
historicAttrKey: (
|
|
12741
|
+
historicDateTime: (_f = entity.Bruce) === null || _f === void 0 ? void 0 : _f.HistoricDateTime,
|
|
12742
|
+
historicAttrKey: (_g = entity.Bruce) === null || _g === void 0 ? void 0 : _g.HistoricAttrKey
|
|
12715
12743
|
};
|
|
12716
12744
|
this.visualsManager.AddRego({
|
|
12717
12745
|
rego: rego_1,
|
|
@@ -12722,11 +12750,11 @@ var EntitiesRenderManager;
|
|
|
12722
12750
|
rego.name = cEntity.name;
|
|
12723
12751
|
rego.visual = cEntity;
|
|
12724
12752
|
rego.entityTypeId = entity.Bruce["EntityType.ID"];
|
|
12725
|
-
rego.tagIds = ((
|
|
12726
|
-
rego.historicDateTime = (
|
|
12727
|
-
rego.historicAttrKey = (
|
|
12753
|
+
rego.tagIds = ((_h = entity.Bruce) === null || _h === void 0 ? void 0 : _h["Layer.ID"]) ? [].concat(entity.Bruce["Layer.ID"]) : [];
|
|
12754
|
+
rego.historicDateTime = (_j = entity.Bruce) === null || _j === void 0 ? void 0 : _j.HistoricDateTime;
|
|
12755
|
+
rego.historicAttrKey = (_k = entity.Bruce) === null || _k === void 0 ? void 0 : _k.HistoricAttrKey;
|
|
12728
12756
|
rego.cdn = this.item.cdnEnabled;
|
|
12729
|
-
rego.schemaId = (
|
|
12757
|
+
rego.schemaId = (_l = entity.Bruce) === null || _l === void 0 ? void 0 : _l.SchemaID;
|
|
12730
12758
|
// Marked as stale meaning some change was performed that requires a refresh.
|
|
12731
12759
|
// This usually means a new sibling was added that we need to update.
|
|
12732
12760
|
if (rego.stale) {
|
|
@@ -12756,7 +12784,7 @@ var EntitiesRenderManager;
|
|
|
12756
12784
|
menuItemId: this.item.id,
|
|
12757
12785
|
requestRender: false
|
|
12758
12786
|
});
|
|
12759
|
-
(
|
|
12787
|
+
(_m = this.clustering) === null || _m === void 0 ? void 0 : _m.RemoveEntity(id, false);
|
|
12760
12788
|
}
|
|
12761
12789
|
}
|
|
12762
12790
|
this.viewer.scene.requestRender();
|
|
@@ -16184,20 +16212,28 @@ var EntityFilterGetter;
|
|
|
16184
16212
|
this.onStateUpdate = null;
|
|
16185
16213
|
this.onScanUpdate = null;
|
|
16186
16214
|
this.viewPortChangeRemoval = null;
|
|
16215
|
+
this.viewPortDelayQueue = null;
|
|
16187
16216
|
this.viewerDateTimeChangeRemoval = null;
|
|
16188
16217
|
this.cells = null;
|
|
16189
16218
|
this.registeredItems = {};
|
|
16190
16219
|
this.getterLoopId = 0;
|
|
16220
|
+
this.getterLoopAbortControllers = {};
|
|
16191
16221
|
this.tagIds = null;
|
|
16192
16222
|
this.minHeight = 0;
|
|
16193
16223
|
this.maxHeight = 100000;
|
|
16194
16224
|
this.viewRect = null;
|
|
16195
16225
|
this.viewCenter = null;
|
|
16196
|
-
|
|
16226
|
+
this.historicRefreshAbortController = null;
|
|
16227
|
+
// Entity IDs found for the latest integrity.
|
|
16228
|
+
// We use this for refreshing historic data without having to repeat geographic queries.
|
|
16229
|
+
this.gatheredIntegrity = null;
|
|
16230
|
+
this.gatheredEntityIds = [];
|
|
16231
|
+
var api = params.api, viewer = params.viewer, viewPort = params.viewPort, typeId = params.typeId, schemaId = params.schemaId, batchSize = params.batchSize, attrFilter = params.attrFilter, historicAttrKey = params.historicAttrKey, historicInterpolation = params.historicInterpolation, viaCdn = params.viaCdn;
|
|
16197
16232
|
this.api = api;
|
|
16198
16233
|
this.typeId = typeId;
|
|
16199
16234
|
this.schemaId = schemaId;
|
|
16200
16235
|
this.historicAttrKey = historicAttrKey;
|
|
16236
|
+
this.historicInterpolation = Boolean(historicInterpolation);
|
|
16201
16237
|
this.viaCdn = Boolean(viaCdn);
|
|
16202
16238
|
this.batchSize = isNaN(batchSize) ? 300 : batchSize;
|
|
16203
16239
|
this.viewPort = viewPort;
|
|
@@ -16250,15 +16286,22 @@ var EntityFilterGetter;
|
|
|
16250
16286
|
Getter.prototype.viewAreaSub = function () {
|
|
16251
16287
|
var _this = this;
|
|
16252
16288
|
this.viewAreaDispose();
|
|
16253
|
-
|
|
16289
|
+
// We'll avoid restarting the scanner too often.
|
|
16290
|
+
this.viewPortDelayQueue = new DelayQueue(function () {
|
|
16254
16291
|
_this.updateBounds();
|
|
16255
16292
|
_this.startGetterLoop();
|
|
16293
|
+
}, 2000);
|
|
16294
|
+
this.viewPortChangeRemoval = this.viewPort.Updated().Subscribe(function () {
|
|
16295
|
+
var _a;
|
|
16296
|
+
(_a = _this.viewPortDelayQueue) === null || _a === void 0 ? void 0 : _a.Call();
|
|
16256
16297
|
});
|
|
16257
16298
|
};
|
|
16258
16299
|
Getter.prototype.viewAreaDispose = function () {
|
|
16259
|
-
var _a;
|
|
16300
|
+
var _a, _b;
|
|
16260
16301
|
(_a = this.viewPortChangeRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
16261
16302
|
this.viewPortChangeRemoval = null;
|
|
16303
|
+
(_b = this.viewPortDelayQueue) === null || _b === void 0 ? void 0 : _b.Dispose();
|
|
16304
|
+
this.viewPortDelayQueue = null;
|
|
16262
16305
|
};
|
|
16263
16306
|
/**
|
|
16264
16307
|
* Monitors the Cesium viewer and updates the historic data filter values.
|
|
@@ -16272,6 +16315,11 @@ var EntityFilterGetter;
|
|
|
16272
16315
|
// This is multiplied by the speed of animation to figure
|
|
16273
16316
|
// out how many animation "ticks" before we allow an update.
|
|
16274
16317
|
var INTERVAL_WHILE_ANIMATING = 2.5 * 1000;
|
|
16318
|
+
var INTERVAL_WHILE_NOT_ANIMATING = 1000;
|
|
16319
|
+
if (this.historicInterpolation) {
|
|
16320
|
+
INTERVAL_WHILE_ANIMATING = 6 * 1000;
|
|
16321
|
+
INTERVAL_WHILE_NOT_ANIMATING = 3.5 * 1000;
|
|
16322
|
+
}
|
|
16275
16323
|
var lastUpdateTime = null;
|
|
16276
16324
|
var delayQueue = new DelayQueue(function () {
|
|
16277
16325
|
try {
|
|
@@ -16281,17 +16329,16 @@ var EntityFilterGetter;
|
|
|
16281
16329
|
return;
|
|
16282
16330
|
}
|
|
16283
16331
|
}
|
|
16284
|
-
lastUpdateTime = new Date().getTime();
|
|
16285
16332
|
var current = _this.historicAttrDateTime;
|
|
16286
16333
|
_this.updateHistoricDateTime();
|
|
16287
16334
|
if (current != _this.historicAttrDateTime) {
|
|
16288
|
-
_this.
|
|
16335
|
+
_this.emitHistoricData();
|
|
16289
16336
|
}
|
|
16290
16337
|
}
|
|
16291
16338
|
catch (e) {
|
|
16292
16339
|
console.error(e);
|
|
16293
16340
|
}
|
|
16294
|
-
},
|
|
16341
|
+
}, INTERVAL_WHILE_NOT_ANIMATING);
|
|
16295
16342
|
var postUpdateRemoval = this.viewer.scene.postUpdate.addEventListener(function () {
|
|
16296
16343
|
if (delayQueue) {
|
|
16297
16344
|
delayQueue.Call();
|
|
@@ -16410,8 +16457,20 @@ var EntityFilterGetter;
|
|
|
16410
16457
|
this.getterLoopId += 1;
|
|
16411
16458
|
var loopId = this.getterLoopId;
|
|
16412
16459
|
var loopIntegrity = this.getIntegrityId();
|
|
16413
|
-
|
|
16414
|
-
|
|
16460
|
+
// Abort any existing loops that don't match the current loop.
|
|
16461
|
+
// We tried using integrity, however we want to interrupt when user moves camera quickly.
|
|
16462
|
+
// So it's better to use the loop ID.
|
|
16463
|
+
var abortId = String(loopId);
|
|
16464
|
+
{
|
|
16465
|
+
var newAbortControllers = {};
|
|
16466
|
+
for (var key in this.getterLoopAbortControllers) {
|
|
16467
|
+
this.getterLoopAbortControllers[key].abort();
|
|
16468
|
+
}
|
|
16469
|
+
this.getterLoopAbortControllers = newAbortControllers;
|
|
16470
|
+
}
|
|
16471
|
+
var abortController = this.getterLoopAbortControllers[abortId] = new AbortController();
|
|
16472
|
+
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
16473
|
+
var MIN_HEIGHT, MAX_HEIGHT, PAGE_SIZE, retryAttempts, retryDelay, prevFirstId, prevLastId, prevTicks, alt, cells, curCellIndex, postedScanning, postedLoading, total, curCell, entities, integrity, i, entity, first, last, e_1;
|
|
16415
16474
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
16416
16475
|
return __generator(this, function (_j) {
|
|
16417
16476
|
switch (_j.label) {
|
|
@@ -16505,7 +16564,10 @@ var EntityFilterGetter;
|
|
|
16505
16564
|
viaCdn: this.viaCdn,
|
|
16506
16565
|
migrated: true,
|
|
16507
16566
|
req: {
|
|
16508
|
-
noCache
|
|
16567
|
+
// If we are passing in an abort, we MUST pass in noCache.
|
|
16568
|
+
// Otherwise we will cache an aborted request.
|
|
16569
|
+
noCache: true,
|
|
16570
|
+
abortSignal: abortController.signal
|
|
16509
16571
|
}
|
|
16510
16572
|
})];
|
|
16511
16573
|
case 9:
|
|
@@ -16514,6 +16576,20 @@ var EntityFilterGetter;
|
|
|
16514
16576
|
if (loopIntegrity == integrity && entities) {
|
|
16515
16577
|
(_c = this.onUpdate) === null || _c === void 0 ? void 0 : _c.Trigger(entities);
|
|
16516
16578
|
}
|
|
16579
|
+
if (this.gatheredIntegrity != integrity) {
|
|
16580
|
+
this.gatheredIntegrity = integrity;
|
|
16581
|
+
this.gatheredEntityIds = [];
|
|
16582
|
+
}
|
|
16583
|
+
// Add to the integrity list for any new IDs found.
|
|
16584
|
+
// This lets us keep track of all IDs we've found within the same integrity for historic data.
|
|
16585
|
+
if (this.historicAttrKey) {
|
|
16586
|
+
for (i = 0; i < entities.length; i++) {
|
|
16587
|
+
entity = entities[i];
|
|
16588
|
+
if (!this.gatheredEntityIds.includes(entity.Bruce.ID)) {
|
|
16589
|
+
this.gatheredEntityIds.push(entity.Bruce.ID);
|
|
16590
|
+
}
|
|
16591
|
+
}
|
|
16592
|
+
}
|
|
16517
16593
|
if (this.getterLoopId != loopId) {
|
|
16518
16594
|
return [3 /*break*/, 13];
|
|
16519
16595
|
}
|
|
@@ -16556,7 +16632,14 @@ var EntityFilterGetter;
|
|
|
16556
16632
|
return [3 /*break*/, 11];
|
|
16557
16633
|
case 10:
|
|
16558
16634
|
e_1 = _j.sent();
|
|
16635
|
+
// Ignore abort errors.
|
|
16636
|
+
if (e_1 && typeof e_1 === "object" && e_1.name == "AbortError") {
|
|
16637
|
+
return [3 /*break*/, 13];
|
|
16638
|
+
}
|
|
16559
16639
|
console.error(e_1);
|
|
16640
|
+
if (this.getterLoopId != loopId) {
|
|
16641
|
+
return [3 /*break*/, 13];
|
|
16642
|
+
}
|
|
16560
16643
|
// Request failed so let's add a delay and try again soon.
|
|
16561
16644
|
retryDelay += RETRY_DELAY_INCREMENT;
|
|
16562
16645
|
retryAttempts -= 1;
|
|
@@ -16575,7 +16658,104 @@ var EntityFilterGetter;
|
|
|
16575
16658
|
return [2 /*return*/];
|
|
16576
16659
|
}
|
|
16577
16660
|
});
|
|
16578
|
-
}); });
|
|
16661
|
+
}); })();
|
|
16662
|
+
};
|
|
16663
|
+
/**
|
|
16664
|
+
* Gets the historic state of found Entities for the current date times and emits them.
|
|
16665
|
+
* Since geometry searches are tied to the base Entity, we don't have to re-scan the viewport.
|
|
16666
|
+
*/
|
|
16667
|
+
Getter.prototype.emitHistoricData = function () {
|
|
16668
|
+
var _this = this;
|
|
16669
|
+
var integrity = this.getIntegrityId();
|
|
16670
|
+
// Gathered ID does't match current one.
|
|
16671
|
+
if (this.gatheredIntegrity != integrity) {
|
|
16672
|
+
return;
|
|
16673
|
+
}
|
|
16674
|
+
var historicAttrDateTime = this.historicAttrDateTime;
|
|
16675
|
+
var SCAN_BATCH_SIZE = 1000;
|
|
16676
|
+
if (this.historicRefreshAbortController) {
|
|
16677
|
+
this.historicRefreshAbortController.abort();
|
|
16678
|
+
this.historicRefreshAbortController = null;
|
|
16679
|
+
}
|
|
16680
|
+
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
16681
|
+
var pageIndex, i, batch, controller, entities, e_2;
|
|
16682
|
+
var _a;
|
|
16683
|
+
return __generator(this, function (_b) {
|
|
16684
|
+
switch (_b.label) {
|
|
16685
|
+
case 0:
|
|
16686
|
+
pageIndex = 0;
|
|
16687
|
+
_b.label = 1;
|
|
16688
|
+
case 1:
|
|
16689
|
+
_b.trys.push([1, 6, , 7]);
|
|
16690
|
+
i = 0;
|
|
16691
|
+
_b.label = 2;
|
|
16692
|
+
case 2:
|
|
16693
|
+
if (!(i < this.gatheredEntityIds.length)) return [3 /*break*/, 5];
|
|
16694
|
+
batch = this.gatheredEntityIds.slice(i, i + SCAN_BATCH_SIZE);
|
|
16695
|
+
if (!batch.length) {
|
|
16696
|
+
return [3 /*break*/, 5];
|
|
16697
|
+
}
|
|
16698
|
+
controller = this.historicRefreshAbortController = new AbortController();
|
|
16699
|
+
return [4 /*yield*/, Entity$1.GetList({
|
|
16700
|
+
api: this.api,
|
|
16701
|
+
historicKey: this.historicAttrKey,
|
|
16702
|
+
historicPoint: historicAttrDateTime,
|
|
16703
|
+
schemaId: this.schemaId,
|
|
16704
|
+
filter: {
|
|
16705
|
+
pageSize: SCAN_BATCH_SIZE,
|
|
16706
|
+
pageIndex: pageIndex,
|
|
16707
|
+
entityTypeId: this.typeId,
|
|
16708
|
+
layerIds: this.tagIds,
|
|
16709
|
+
layerIdsOperator: "in",
|
|
16710
|
+
sortOrder: Api.ESortOrder.Asc,
|
|
16711
|
+
entityTypeConditions: {
|
|
16712
|
+
"ID": {
|
|
16713
|
+
"IN": batch
|
|
16714
|
+
}
|
|
16715
|
+
},
|
|
16716
|
+
},
|
|
16717
|
+
viaCdn: this.viaCdn,
|
|
16718
|
+
migrated: true,
|
|
16719
|
+
req: {
|
|
16720
|
+
// If we are passing in an abort, we MUST pass in noCache.
|
|
16721
|
+
// Otherwise we will cache an aborted request.
|
|
16722
|
+
noCache: true,
|
|
16723
|
+
abortSignal: controller.signal
|
|
16724
|
+
}
|
|
16725
|
+
})];
|
|
16726
|
+
case 3:
|
|
16727
|
+
entities = (_b.sent()).entities;
|
|
16728
|
+
// Date changed.
|
|
16729
|
+
if (this.historicAttrDateTime != historicAttrDateTime) {
|
|
16730
|
+
return [3 /*break*/, 5];
|
|
16731
|
+
}
|
|
16732
|
+
// Integrity changed.
|
|
16733
|
+
if (this.gatheredIntegrity != integrity) {
|
|
16734
|
+
return [3 /*break*/, 5];
|
|
16735
|
+
}
|
|
16736
|
+
// No Menu Items.
|
|
16737
|
+
if (!this.GetMenuItems().length) {
|
|
16738
|
+
return [3 /*break*/, 5];
|
|
16739
|
+
}
|
|
16740
|
+
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger(entities);
|
|
16741
|
+
pageIndex += 1;
|
|
16742
|
+
_b.label = 4;
|
|
16743
|
+
case 4:
|
|
16744
|
+
i += SCAN_BATCH_SIZE;
|
|
16745
|
+
return [3 /*break*/, 2];
|
|
16746
|
+
case 5: return [3 /*break*/, 7];
|
|
16747
|
+
case 6:
|
|
16748
|
+
e_2 = _b.sent();
|
|
16749
|
+
// Ignore abort errors.
|
|
16750
|
+
if (e_2 && typeof e_2 === "object" && e_2.name == "AbortError") {
|
|
16751
|
+
return [2 /*return*/];
|
|
16752
|
+
}
|
|
16753
|
+
console.error(e_2);
|
|
16754
|
+
return [3 /*break*/, 7];
|
|
16755
|
+
case 7: return [2 /*return*/];
|
|
16756
|
+
}
|
|
16757
|
+
});
|
|
16758
|
+
}); })();
|
|
16579
16759
|
};
|
|
16580
16760
|
return Getter;
|
|
16581
16761
|
}());
|
|
@@ -16591,6 +16771,9 @@ function createFilterGetterCacheKey(params) {
|
|
|
16591
16771
|
cacheKey += params.schemaId ? params.schemaId : "";
|
|
16592
16772
|
cacheKey += JSON.stringify(params.tagIds ? params.tagIds : []);
|
|
16593
16773
|
cacheKey += params.historicAttrKey ? params.historicAttrKey : "";
|
|
16774
|
+
if (params.historicAttrKey) {
|
|
16775
|
+
cacheKey += params.historicInterpolation ? "true" : "false";
|
|
16776
|
+
}
|
|
16594
16777
|
// This could potentially crash, but if it crashes here then it would crash during API request anyways.
|
|
16595
16778
|
cacheKey += JSON.stringify(params.attrFilter ? params.attrFilter : {});
|
|
16596
16779
|
return cacheKey;
|
|
@@ -16615,6 +16798,7 @@ var SharedGetters;
|
|
|
16615
16798
|
batchSize: params.batchSize,
|
|
16616
16799
|
attrFilter: params.attrFilter,
|
|
16617
16800
|
historicAttrKey: params.historicAttrKey,
|
|
16801
|
+
historicInterpolation: params.historicInterpolation,
|
|
16618
16802
|
viaCdn: params.cdn
|
|
16619
16803
|
});
|
|
16620
16804
|
this.data[cacheKey] = getter;
|
|
@@ -16625,6 +16809,7 @@ var SharedGetters;
|
|
|
16625
16809
|
if (params.viewer && params.debugShowBounds) {
|
|
16626
16810
|
// Cell id -> entity.
|
|
16627
16811
|
var cellCache_1 = {};
|
|
16812
|
+
var cellPrefix_1 = ObjectUtils.UId(10) + "_";
|
|
16628
16813
|
getter.OnScanUpdate.Subscribe(function (cells) {
|
|
16629
16814
|
if (window.ON_SCAN_UPDATE_PAUSED == true) {
|
|
16630
16815
|
return;
|
|
@@ -16635,7 +16820,7 @@ var SharedGetters;
|
|
|
16635
16820
|
cells.forEach(function (cell) {
|
|
16636
16821
|
var _a;
|
|
16637
16822
|
var bounds = cell.GetBounds();
|
|
16638
|
-
var id = bounds.east + "_" + bounds.north + "_" + bounds.south + "_" + bounds.west;
|
|
16823
|
+
var id = cellPrefix_1 + bounds.east + "_" + bounds.north + "_" + bounds.south + "_" + bounds.west;
|
|
16639
16824
|
curCellIds.push(id);
|
|
16640
16825
|
fetchedCells[id] = cell.IsFetched();
|
|
16641
16826
|
fetchingCellId = cell.Fetching ? id : fetchingCellId;
|
|
@@ -24122,11 +24307,11 @@ function renderNavigator(iteration, params, bookmark, view, getters) {
|
|
|
24122
24307
|
var ViewRenderEngine;
|
|
24123
24308
|
(function (ViewRenderEngine) {
|
|
24124
24309
|
function Render(params) {
|
|
24125
|
-
var _a;
|
|
24310
|
+
var _a, _b;
|
|
24126
24311
|
return __awaiter(this, void 0, void 0, function () {
|
|
24127
|
-
var iteration, api, view,
|
|
24128
|
-
return __generator(this, function (
|
|
24129
|
-
switch (
|
|
24312
|
+
var iteration, api, view, _c, bookmark, bookmarkId, _d, version, bWidget, lpWidget;
|
|
24313
|
+
return __generator(this, function (_e) {
|
|
24314
|
+
switch (_e.label) {
|
|
24130
24315
|
case 0:
|
|
24131
24316
|
if (!params.manager && params.viewer) {
|
|
24132
24317
|
params.manager = ViewerUtils.GetManager({
|
|
@@ -24149,17 +24334,17 @@ var ViewRenderEngine;
|
|
|
24149
24334
|
}
|
|
24150
24335
|
api = params.getters.GetBruceApi();
|
|
24151
24336
|
if (!params.view) return [3 /*break*/, 1];
|
|
24152
|
-
|
|
24337
|
+
_c = params.view;
|
|
24153
24338
|
return [3 /*break*/, 3];
|
|
24154
24339
|
case 1: return [4 /*yield*/, ProjectView.Get({
|
|
24155
24340
|
api: api,
|
|
24156
24341
|
viewId: params.viewId
|
|
24157
24342
|
})];
|
|
24158
24343
|
case 2:
|
|
24159
|
-
|
|
24160
|
-
|
|
24344
|
+
_c = (_e.sent()).view;
|
|
24345
|
+
_e.label = 3;
|
|
24161
24346
|
case 3:
|
|
24162
|
-
view =
|
|
24347
|
+
view = _c;
|
|
24163
24348
|
bookmark = params.bookmark;
|
|
24164
24349
|
if (!!bookmark) return [3 /*break*/, 7];
|
|
24165
24350
|
bookmarkId = params.bookmarkId;
|
|
@@ -24173,14 +24358,14 @@ var ViewRenderEngine;
|
|
|
24173
24358
|
bookmarkId: bookmarkId
|
|
24174
24359
|
})];
|
|
24175
24360
|
case 4:
|
|
24176
|
-
|
|
24361
|
+
_d = (_e.sent()).bookmark;
|
|
24177
24362
|
return [3 /*break*/, 6];
|
|
24178
24363
|
case 5:
|
|
24179
|
-
|
|
24180
|
-
|
|
24364
|
+
_d = null;
|
|
24365
|
+
_e.label = 6;
|
|
24181
24366
|
case 6:
|
|
24182
|
-
bookmark =
|
|
24183
|
-
|
|
24367
|
+
bookmark = _d;
|
|
24368
|
+
_e.label = 7;
|
|
24184
24369
|
case 7:
|
|
24185
24370
|
if (!assertIteration$1(params.viewer, iteration)) {
|
|
24186
24371
|
return [2 /*return*/];
|
|
@@ -24189,12 +24374,12 @@ var ViewRenderEngine;
|
|
|
24189
24374
|
if (!(version == 1)) return [3 /*break*/, 9];
|
|
24190
24375
|
return [4 /*yield*/, renderLegacyNavigator(iteration, params, bookmark, view)];
|
|
24191
24376
|
case 8:
|
|
24192
|
-
|
|
24377
|
+
_e.sent();
|
|
24193
24378
|
return [3 /*break*/, 11];
|
|
24194
24379
|
case 9: return [4 /*yield*/, renderNavigator(iteration, params, bookmark, view, params.getters)];
|
|
24195
24380
|
case 10:
|
|
24196
|
-
|
|
24197
|
-
|
|
24381
|
+
_e.sent();
|
|
24382
|
+
_e.label = 11;
|
|
24198
24383
|
case 11:
|
|
24199
24384
|
if (!assertIteration$1(params.viewer, iteration)) {
|
|
24200
24385
|
return [2 /*return*/];
|
|
@@ -24204,6 +24389,11 @@ var ViewRenderEngine;
|
|
|
24204
24389
|
bWidget.ViewId = params.viewId ? params.viewId : view === null || view === void 0 ? void 0 : view.ID;
|
|
24205
24390
|
bWidget.LastEnabledBookmarkId = params.bookmarkId ? params.bookmarkId : bookmark === null || bookmark === void 0 ? void 0 : bookmark.ID;
|
|
24206
24391
|
}
|
|
24392
|
+
lpWidget = (_b = params.viewer) === null || _b === void 0 ? void 0 : _b[VIEWER_LEFT_PANEL_WIDGET_KEY];
|
|
24393
|
+
if (lpWidget) {
|
|
24394
|
+
lpWidget.ViewId = params.viewId ? params.viewId : view === null || view === void 0 ? void 0 : view.ID;
|
|
24395
|
+
lpWidget.LastEnabledBookmarkId = params.bookmarkId ? params.bookmarkId : bookmark === null || bookmark === void 0 ? void 0 : bookmark.ID;
|
|
24396
|
+
}
|
|
24207
24397
|
return [2 /*return*/];
|
|
24208
24398
|
}
|
|
24209
24399
|
});
|
|
@@ -24246,6 +24436,8 @@ var WidgetLeftPanel = /** @class */ (function (_super) {
|
|
|
24246
24436
|
var isChanged = this._viewId != value;
|
|
24247
24437
|
if (isChanged) {
|
|
24248
24438
|
this._viewId = value;
|
|
24439
|
+
this._updatePanelStyles();
|
|
24440
|
+
this._loading = this.loadBookmarks();
|
|
24249
24441
|
}
|
|
24250
24442
|
},
|
|
24251
24443
|
enumerable: false,
|
|
@@ -24297,13 +24489,15 @@ var WidgetLeftPanel = /** @class */ (function (_super) {
|
|
|
24297
24489
|
};
|
|
24298
24490
|
WidgetLeftPanel.prototype.loadBookmarks = function () {
|
|
24299
24491
|
return __awaiter(this, void 0, void 0, function () {
|
|
24300
|
-
var
|
|
24492
|
+
var viewId, api, data, e_1;
|
|
24301
24493
|
return __generator(this, function (_a) {
|
|
24302
24494
|
switch (_a.label) {
|
|
24303
24495
|
case 0:
|
|
24304
|
-
_a.trys.push([0, 2, , 3]);
|
|
24305
|
-
api = this._apiGetters.GetBruceApi();
|
|
24306
24496
|
viewId = this._viewId;
|
|
24497
|
+
_a.label = 1;
|
|
24498
|
+
case 1:
|
|
24499
|
+
_a.trys.push([1, 3, , 4]);
|
|
24500
|
+
api = this._apiGetters.GetBruceApi();
|
|
24307
24501
|
if (!viewId) {
|
|
24308
24502
|
this.bookmarks = [];
|
|
24309
24503
|
return [2 /*return*/];
|
|
@@ -24312,16 +24506,22 @@ var WidgetLeftPanel = /** @class */ (function (_super) {
|
|
|
24312
24506
|
viewId: viewId,
|
|
24313
24507
|
api: api
|
|
24314
24508
|
})];
|
|
24315
|
-
case
|
|
24509
|
+
case 2:
|
|
24316
24510
|
data = _a.sent();
|
|
24511
|
+
if (this._viewId !== viewId) {
|
|
24512
|
+
return [2 /*return*/];
|
|
24513
|
+
}
|
|
24317
24514
|
this.bookmarks = data.bookmarks;
|
|
24318
|
-
return [3 /*break*/,
|
|
24319
|
-
case
|
|
24515
|
+
return [3 /*break*/, 4];
|
|
24516
|
+
case 3:
|
|
24320
24517
|
e_1 = _a.sent();
|
|
24321
24518
|
console.error(e_1);
|
|
24519
|
+
if (this._viewId !== viewId) {
|
|
24520
|
+
return [2 /*return*/];
|
|
24521
|
+
}
|
|
24322
24522
|
this.bookmarks = [];
|
|
24323
|
-
return [3 /*break*/,
|
|
24324
|
-
case
|
|
24523
|
+
return [3 /*break*/, 4];
|
|
24524
|
+
case 4: return [2 /*return*/];
|
|
24325
24525
|
}
|
|
24326
24526
|
});
|
|
24327
24527
|
});
|
|
@@ -27871,7 +28071,7 @@ var WidgetViewBar = /** @class */ (function (_super) {
|
|
|
27871
28071
|
return WidgetViewBar;
|
|
27872
28072
|
}(Widget.AWidget));
|
|
27873
28073
|
|
|
27874
|
-
var VERSION = "4.6.
|
|
28074
|
+
var VERSION = "4.6.3";
|
|
27875
28075
|
|
|
27876
28076
|
export { VERSION, CesiumViewMonitor, ViewerUtils, ViewerEventTracker, MenuItemManager, EntityRenderEngine, EntityRenderEnginePoint, EntityRenderEnginePolyline, EntityRenderEnginePolygon, EntityRenderEngineModel3d, MenuItemCreator, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, TilesetArbRenderManager, TilesetEntitiesRenderManager, TilesetOsmRenderManager, TilesetPointcloudRenderManager, TilesetGooglePhotosRenderManager, DataSourceStaticKmlManager, GoogleSearchRenderManager, RelationsRenderManager, SharedGetters, CesiumParabola, EntityLabel, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, CESIUM_INSPECTOR_KEY, CESIUM_TIMELINE_KEY, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils, CesiumEntityStyler, CesiumAnimatedProperty, CesiumAnimatedInOut, Draw3dPolygon, Draw3dPolyline, MeasureCreator, Widget, VIEWER_BOOKMARKS_WIDGET_KEY, WidgetBookmarks, WidgetBranding, WidgetCursorBar, WidgetEmbeddedInfoView, WidgetInfoView, WidgetNavCompass$$1 as WidgetNavCompass, VIEWER_VIEW_BAR_WIDGET_KEY, WidgetViewBar, WidgetControlViewBar, WidgetControlViewBarSearch, VIEWER_LEFT_PANEL_WIDGET_KEY, VIEWER_LEFT_PANEL_CSS_VAR_LEFT, WidgetLeftPanel, WidgetLeftPanelTab, WidgetLeftPanelTabBookmarks };
|
|
27877
28077
|
//# sourceMappingURL=bruce-cesium.es5.js.map
|