bruce-cesium 2.3.0 → 2.3.2
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 +63 -48
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +62 -47
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/rendering/render-managers/common/point-clustering.js +56 -42
- package/dist/lib/rendering/render-managers/common/point-clustering.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +2 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +3 -3
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/dist/types/rendering/render-managers/common/point-clustering.d.ts +4 -1
- package/package.json +2 -2
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BruceEvent, Cartes, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, DelayQueue, BatchedDataGetter, EntityRelationType, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, EntityRelation, ENVIRONMENT, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera, AbstractApi, EntityAttachment, EntityAttachmentType, EntityAttribute } from 'bruce-models';
|
|
2
2
|
import * as Cesium from 'cesium';
|
|
3
|
-
import { Cartographic, Cartesian2, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, Entity, Primitive, Cesium3DTileFeature, HeightReference, DistanceDisplayCondition, NearFarScalar, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode,
|
|
3
|
+
import { Cartographic, Cartesian2, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, SceneMode, Entity, Primitive, Cesium3DTileFeature, HeightReference, DistanceDisplayCondition, NearFarScalar, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, OrthographicFrustum, JulianDate, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumInspector, defined, PolygonPipeline, Cesium3DTileset, Matrix4, Matrix3, IonResource, EllipsoidGeodesic, sampleTerrainMostDetailed, Model, ScreenSpaceEventHandler, ScreenSpaceEventType, ColorMaterialProperty, EasingFunction, GeometryInstance, Ion, BoundingSphere } from 'cesium';
|
|
4
4
|
|
|
5
5
|
var TIME_LAG = 300;
|
|
6
6
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -3082,8 +3082,10 @@ function getClusterImage(params) {
|
|
|
3082
3082
|
var FORCE_UPDATE_BATCH_SIZE = 1000;
|
|
3083
3083
|
var FORCE_UPDATE_BATCH_DELAY = 100;
|
|
3084
3084
|
var PointClustering = /** @class */ (function () {
|
|
3085
|
-
function PointClustering(register, menuItemId) {
|
|
3085
|
+
function PointClustering(register, menuItemId, settings) {
|
|
3086
3086
|
var _this = this;
|
|
3087
|
+
this.minDistance = 5000;
|
|
3088
|
+
this.minTotalCount = 0;
|
|
3087
3089
|
this.disposed = false;
|
|
3088
3090
|
this.registeredEntityIds = new Set();
|
|
3089
3091
|
// Queue to force update entities.
|
|
@@ -3100,6 +3102,14 @@ var PointClustering = /** @class */ (function () {
|
|
|
3100
3102
|
_this.doUpdate();
|
|
3101
3103
|
}, 1000);
|
|
3102
3104
|
this.listenCamera();
|
|
3105
|
+
if (settings) {
|
|
3106
|
+
if (!isNaN(+settings.minDistance)) {
|
|
3107
|
+
this.minDistance = +settings.minDistance;
|
|
3108
|
+
}
|
|
3109
|
+
if (!isNaN(+settings.minTotalCount)) {
|
|
3110
|
+
this.minTotalCount = +settings.minTotalCount;
|
|
3111
|
+
}
|
|
3112
|
+
}
|
|
3103
3113
|
}
|
|
3104
3114
|
PointClustering.prototype.queueForceUpdate = function (entityIds) {
|
|
3105
3115
|
for (var i = 0; i < entityIds.length; i++) {
|
|
@@ -3381,51 +3391,55 @@ var PointClustering = /** @class */ (function () {
|
|
|
3381
3391
|
var clusters = [];
|
|
3382
3392
|
var processedPoints = new Set();
|
|
3383
3393
|
var cameraPosition = this.viewer.camera.position;
|
|
3384
|
-
|
|
3385
|
-
var
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
var
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
var
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3412
|
-
|
|
3394
|
+
// Only cluster if total registered points exceeds minTotalCount.
|
|
3395
|
+
var validClusters = [];
|
|
3396
|
+
if (this.registeredEntityIds.size < this.minTotalCount) {
|
|
3397
|
+
var MIN_CAMERA_DISTANCE_1 = this.minDistance;
|
|
3398
|
+
var processQuad_1 = function (quad) {
|
|
3399
|
+
// Distance to quad.
|
|
3400
|
+
// TODO: Needs improvement.
|
|
3401
|
+
var distanceToQuad = quad.GetDistanceToQuad(cameraPosition);
|
|
3402
|
+
// Skip quads that are too close.
|
|
3403
|
+
if (distanceToQuad >= MIN_CAMERA_DISTANCE_1) {
|
|
3404
|
+
for (var _i = 0, _a = quad.points; _i < _a.length; _i++) {
|
|
3405
|
+
var point = _a[_i];
|
|
3406
|
+
// Skip points already processed in previous clusters.
|
|
3407
|
+
if (processedPoints.has(point.id)) {
|
|
3408
|
+
continue;
|
|
3409
|
+
}
|
|
3410
|
+
// Skip points closer than MIN_CAMERA_DISTANCE meters to the camera.
|
|
3411
|
+
var cartesian3 = Cartesian3.fromDegrees(point.lon, point.lat);
|
|
3412
|
+
var distanceFromCluster = Cartesian3.distance(cartesian3, cameraPosition);
|
|
3413
|
+
if (distanceFromCluster <= MIN_CAMERA_DISTANCE_1) {
|
|
3414
|
+
continue;
|
|
3415
|
+
}
|
|
3416
|
+
var found = [];
|
|
3417
|
+
var nearbyPoints = quad.Query(new Circle(point.lon, point.lat, _this.getClusterSpacing(distanceFromCluster)), found);
|
|
3418
|
+
if (nearbyPoints.length > 1) {
|
|
3419
|
+
var cluster = { center: point, points: [] };
|
|
3420
|
+
for (var _b = 0, nearbyPoints_1 = nearbyPoints; _b < nearbyPoints_1.length; _b++) {
|
|
3421
|
+
var nearby = nearbyPoints_1[_b];
|
|
3422
|
+
if (!processedPoints.has(nearby.id) && !cluster.points.includes(nearby)) {
|
|
3423
|
+
cluster.points.push(nearby);
|
|
3424
|
+
processedPoints.add(nearby.id);
|
|
3425
|
+
_this.currClusteredEntities.add(nearby.id);
|
|
3426
|
+
}
|
|
3413
3427
|
}
|
|
3428
|
+
clusters.push(cluster);
|
|
3414
3429
|
}
|
|
3415
|
-
clusters.push(cluster);
|
|
3416
3430
|
}
|
|
3417
3431
|
}
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3424
|
-
}
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
|
|
3428
|
-
|
|
3432
|
+
if (quad.divided) {
|
|
3433
|
+
processQuad_1(quad.northwest);
|
|
3434
|
+
processQuad_1(quad.northeast);
|
|
3435
|
+
processQuad_1(quad.southwest);
|
|
3436
|
+
processQuad_1(quad.southeast);
|
|
3437
|
+
}
|
|
3438
|
+
};
|
|
3439
|
+
processQuad_1(this.quadTree);
|
|
3440
|
+
// Filter out clusters with only one point.
|
|
3441
|
+
validClusters = clusters.filter(function (cluster) { return cluster.points.length > 1; });
|
|
3442
|
+
}
|
|
3429
3443
|
// Get the entity IDs that are no longer clustered
|
|
3430
3444
|
var noLongerClustered = new Set(Array.from(this.prevClusteredEntities).filter(function (id) { return !_this.currClusteredEntities.has(id); }));
|
|
3431
3445
|
// Update the previous clustered entities ref.
|
|
@@ -3581,7 +3595,7 @@ var EntitiesRenderManager;
|
|
|
3581
3595
|
});
|
|
3582
3596
|
Manager.prototype.Init = function (params) {
|
|
3583
3597
|
var _this = this;
|
|
3584
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
3598
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
3585
3599
|
if (this.disposed) {
|
|
3586
3600
|
throw (new Error("This item is disposed."));
|
|
3587
3601
|
}
|
|
@@ -3635,12 +3649,12 @@ var EntitiesRenderManager;
|
|
|
3635
3649
|
return;
|
|
3636
3650
|
}
|
|
3637
3651
|
if (this.item.enableClustering) {
|
|
3638
|
-
this.clustering = new PointClustering(this.visualsManager, this.item.id);
|
|
3652
|
+
this.clustering = new PointClustering(this.visualsManager, this.item.id, (_h = this.item) === null || _h === void 0 ? void 0 : _h.clustering);
|
|
3639
3653
|
}
|
|
3640
3654
|
var api = this.apiGetter.getApi();
|
|
3641
3655
|
this.getter = this.sharedGetters.GetOrCreateFilterGetter({
|
|
3642
3656
|
api: api,
|
|
3643
|
-
attrFilter: (
|
|
3657
|
+
attrFilter: (_j = this.item.BruceEntity.Filter) !== null && _j !== void 0 ? _j : {},
|
|
3644
3658
|
batchSize: BATCH_SIZE,
|
|
3645
3659
|
typeId: this.item.BruceEntity["EntityType.ID"],
|
|
3646
3660
|
monitor: this.monitor,
|
|
@@ -5535,6 +5549,7 @@ var EntitiesIdsRenderManager;
|
|
|
5535
5549
|
(function (EntitiesIdsRenderManager) {
|
|
5536
5550
|
var Manager = /** @class */ (function () {
|
|
5537
5551
|
function Manager(params) {
|
|
5552
|
+
var _a;
|
|
5538
5553
|
this.getter = null;
|
|
5539
5554
|
this.getterSub = null;
|
|
5540
5555
|
this.disposed = false;
|
|
@@ -5546,7 +5561,7 @@ var EntitiesIdsRenderManager;
|
|
|
5546
5561
|
this.item = item;
|
|
5547
5562
|
this.visualsManager = visualsManager;
|
|
5548
5563
|
if (this.item.enableClustering) {
|
|
5549
|
-
this.clustering = new PointClustering(visualsManager, this.item.id);
|
|
5564
|
+
this.clustering = new PointClustering(visualsManager, this.item.id, (_a = this.item) === null || _a === void 0 ? void 0 : _a.clustering);
|
|
5550
5565
|
}
|
|
5551
5566
|
}
|
|
5552
5567
|
Object.defineProperty(Manager.prototype, "Disposed", {
|
|
@@ -14241,7 +14256,7 @@ var ViewerUtils;
|
|
|
14241
14256
|
ViewerUtils.CreateWidgets = CreateWidgets;
|
|
14242
14257
|
})(ViewerUtils || (ViewerUtils = {}));
|
|
14243
14258
|
|
|
14244
|
-
var VERSION$1 = "2.2
|
|
14259
|
+
var VERSION$1 = "2.3.2";
|
|
14245
14260
|
|
|
14246
14261
|
export { VERSION$1 as VERSION, CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, MenuItemCreator, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, TilesetArbRenderManager, TilesetEntitiesRenderManager, TilesetOsmRenderManager, TilesetPointcloudRenderManager, TilesetGooglePhotosRenderManager, DataSourceStaticKmlManager, RelationsRenderManager, SharedGetters, CesiumParabola, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, CESIUM_INSPECTOR_KEY, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils, Draw3dPolygon, Draw3dPolyline };
|
|
14247
14262
|
//# sourceMappingURL=bruce-cesium.es5.js.map
|