bruce-cesium 3.4.1 → 3.4.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.
@@ -1,6 +1,6 @@
1
1
  import { Cartes, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ProjectViewTile, DelayQueue, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, Bounds, EntityRelationType, ENVIRONMENT, BruceEvent, EntityCoords, Api, EntitySource, MenuItem, EntityRelation, ProgramKey, AbstractApi, ProjectViewBookmark, EntityAttachment, EntityAttachmentType, EntityAttribute, ProjectView, ProjectViewLegacyTile, Camera } from 'bruce-models';
2
2
  import * as Cesium from 'cesium';
3
- import { Cartographic, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, JulianDate, DistanceDisplayCondition, NearFarScalar, Model, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, SceneMode, GeoJsonDataSource, ColorMaterialProperty, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, Ion, Cesium3DTileStyle, KmlDataSource, OrthographicFrustum, EasingFunction, SceneTransforms, PolygonPipeline, EllipsoidTerrainProvider, CesiumInspector, defined, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, Cesium3DTileset, Matrix4, Matrix3, IonResource, BoundingSphere, GeometryInstance, ScreenSpaceEventHandler, ScreenSpaceEventType, Intersect, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics } from 'cesium';
3
+ import { Cartographic, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, JulianDate, DistanceDisplayCondition, NearFarScalar, Model, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, SceneMode, GeoJsonDataSource, ColorMaterialProperty, HeadingPitchRange, Cesium3DTileColorBlendMode, Ion, Cesium3DTileStyle, KmlDataSource, SceneTransforms, Cesium3DTileset, Matrix4, Matrix3, IonResource, OrthographicFrustum, EasingFunction, EllipsoidTerrainProvider, CesiumInspector, defined, PolygonPipeline, EllipsoidGeodesic, sampleTerrainMostDetailed, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, ScreenSpaceEventHandler, ScreenSpaceEventType, BoundingSphere, GeometryInstance, Intersect, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics } from 'cesium';
4
4
 
5
5
  /*! *****************************************************************************
6
6
  Copyright (c) Microsoft Corporation. All rights reserved.
@@ -8164,6 +8164,10 @@ var EntitiesRenderManager;
8164
8164
  }
8165
8165
  ];
8166
8166
  }
8167
+ if (this.renderAsGeojson && this.item.CameraZoomSettings.length > 1) {
8168
+ console.warn("Geojson rendering does not support multiple zoom controls. Only the first one will be used.");
8169
+ this.item.CameraZoomSettings = [this.item.CameraZoomSettings[0]];
8170
+ }
8167
8171
  var isTagItem = Boolean(this.item.BruceEntity.ExpandLayers);
8168
8172
  var tagsToRender = isTagItem ? this.item.BruceEntity.SelectedExpandLayers : null;
8169
8173
  if (!tagsToRender) {
@@ -8347,6 +8351,10 @@ var EntitiesRenderManager;
8347
8351
  }
8348
8352
  if (CameraZoomSettings === null || CameraZoomSettings === void 0 ? void 0 : CameraZoomSettings.length) {
8349
8353
  this.item.CameraZoomSettings = CameraZoomSettings;
8354
+ if (this.renderAsGeojson && this.item.CameraZoomSettings.length > 1) {
8355
+ console.warn("Geojson rendering does not support multiple zoom controls. Only the first one will be used.");
8356
+ this.item.CameraZoomSettings = [this.item.CameraZoomSettings[0]];
8357
+ }
8350
8358
  this.setGetter();
8351
8359
  }
8352
8360
  if (queueRerender != false) {
@@ -8441,11 +8449,11 @@ var EntitiesRenderManager;
8441
8449
  var _a;
8442
8450
  if (force === void 0) { force = false; }
8443
8451
  return __awaiter(this, void 0, void 0, function () {
8444
- var typeId_1, e_3;
8452
+ var typeId_1, zoomItem, e_3;
8445
8453
  return __generator(this, function (_b) {
8446
8454
  switch (_b.label) {
8447
8455
  case 0:
8448
- _b.trys.push([0, 5, , 6]);
8456
+ _b.trys.push([0, 8, , 9]);
8449
8457
  if (this.disposed || this.viewer.isDestroyed()) {
8450
8458
  return [2 /*return*/];
8451
8459
  }
@@ -8453,21 +8461,30 @@ var EntitiesRenderManager;
8453
8461
  if (typeId_1) {
8454
8462
  entities = entities.filter(function (x) { var _a; return ((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a["EntityType.ID"]) == typeId_1; });
8455
8463
  }
8456
- if (!this.useGeojson) return [3 /*break*/, 2];
8457
- return [4 /*yield*/, this.renderAsGeojson(entities, force)];
8464
+ if (!this.useGeojson) return [3 /*break*/, 5];
8465
+ zoomItem = this.item.CameraZoomSettings[0];
8466
+ if (!(zoomItem.DisplayType == ZoomControl.EDisplayType.Point)) return [3 /*break*/, 2];
8467
+ // We'll just render these as individuals since we don't support point geojson.
8468
+ return [4 /*yield*/, this.renderAsIndividuals(entities, force)];
8458
8469
  case 1:
8470
+ // We'll just render these as individuals since we don't support point geojson.
8459
8471
  _b.sent();
8460
8472
  return [3 /*break*/, 4];
8461
- case 2: return [4 /*yield*/, this.renderAsIndividuals(entities, force)];
8473
+ case 2: return [4 /*yield*/, this.renderAsGeojson(entities, force)];
8462
8474
  case 3:
8463
8475
  _b.sent();
8464
8476
  _b.label = 4;
8465
- case 4: return [3 /*break*/, 6];
8466
- case 5:
8477
+ case 4: return [3 /*break*/, 7];
8478
+ case 5: return [4 /*yield*/, this.renderAsIndividuals(entities, force)];
8479
+ case 6:
8480
+ _b.sent();
8481
+ _b.label = 7;
8482
+ case 7: return [3 /*break*/, 9];
8483
+ case 8:
8467
8484
  e_3 = _b.sent();
8468
8485
  console.error(e_3);
8469
- return [3 /*break*/, 6];
8470
- case 6: return [2 /*return*/];
8486
+ return [3 /*break*/, 9];
8487
+ case 9: return [2 /*return*/];
8471
8488
  }
8472
8489
  });
8473
8490
  });
@@ -8479,12 +8496,12 @@ var EntitiesRenderManager;
8479
8496
  * @param force TODO: This should re-render entities that are already rendered.
8480
8497
  */
8481
8498
  Manager.prototype.renderAsGeojson = function (entities, force) {
8482
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
8499
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
8483
8500
  return __awaiter(this, void 0, void 0, function () {
8484
- var zoomItem, style, e_4, entityTypeId, entityType, e_5, pStyle, lStyle, polygonsClamped, bFillColor, cFillColor, bLineColor, cLineColor, lineWidthPx, geojson, source, groups, applyStyle, register, sEntities, i, cEntity;
8501
+ var zoomItem, lods, withLods_1, individuals, style, e_4, entityTypeId, entityType, e_5, pStyle, lStyle, polygonsClamped, bFillColor, cFillColor, bLineColor, cLineColor, lineWidthPx, geojson, notRendered, source, groups, applyStyle, register, sEntities, i, cEntity;
8485
8502
  var _this = this;
8486
- return __generator(this, function (_m) {
8487
- switch (_m.label) {
8503
+ return __generator(this, function (_o) {
8504
+ switch (_o.label) {
8488
8505
  case 0:
8489
8506
  entities = entities.filter(function (entity) {
8490
8507
  var _a;
@@ -8496,52 +8513,93 @@ var EntitiesRenderManager;
8496
8513
  _this.renderedEntities[(_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a.ID] = true;
8497
8514
  });
8498
8515
  zoomItem = this.item.CameraZoomSettings[0];
8499
- style = null;
8500
- if (!((zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) && (zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) > -1)) return [3 /*break*/, 4];
8501
- _m.label = 1;
8516
+ if (!(zoomItem.DisplayType == ZoomControl.EDisplayType.Model3D && entities.length)) return [3 /*break*/, 2];
8517
+ return [4 /*yield*/, EntityLod.GetLods({
8518
+ api: this.apiGetter.getApi(),
8519
+ filter: {
8520
+ externalSources: false,
8521
+ Items: entities.map(function (x) {
8522
+ var _a, _b;
8523
+ return {
8524
+ entityId: (_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID,
8525
+ categoryId: (_b = zoomItem.LODCategoryID) !== null && _b !== void 0 ? _b : "GLB",
8526
+ group: "DEFAULT",
8527
+ level: Number(zoomItem.LODLevel)
8528
+ };
8529
+ }),
8530
+ strict: false
8531
+ }
8532
+ })];
8502
8533
  case 1:
8503
- _m.trys.push([1, 3, , 4]);
8534
+ lods = (_o.sent()).lods;
8535
+ if (this.disposed) {
8536
+ this.doDispose();
8537
+ return [2 /*return*/];
8538
+ }
8539
+ withLods_1 = lods.filter(function (x) { return x.entityId && !!x.clientFileId; }).map(function (x) { return x.entityId; });
8540
+ individuals = entities.filter(function (entity) {
8541
+ var _a;
8542
+ return withLods_1.includes((_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a.ID);
8543
+ });
8544
+ if (individuals.length) {
8545
+ this.renderAsIndividuals(individuals, force);
8546
+ }
8547
+ // Now we proceed with what is left.
8548
+ entities = entities.filter(function (entity) {
8549
+ var _a;
8550
+ return !withLods_1.includes((_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a.ID);
8551
+ });
8552
+ _o.label = 2;
8553
+ case 2:
8554
+ if (!entities.length) {
8555
+ return [2 /*return*/];
8556
+ }
8557
+ style = null;
8558
+ if (!((zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) && (zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) > -1)) return [3 /*break*/, 6];
8559
+ _o.label = 3;
8560
+ case 3:
8561
+ _o.trys.push([3, 5, , 6]);
8504
8562
  return [4 /*yield*/, Style.Get({
8505
8563
  api: this.apiGetter.getApi(),
8506
8564
  styleId: zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID
8507
8565
  })];
8508
- case 2:
8509
- style = (_a = (_m.sent()).style) === null || _a === void 0 ? void 0 : _a.Settings;
8510
- return [3 /*break*/, 4];
8511
- case 3:
8512
- e_4 = _m.sent();
8513
- console.error(e_4);
8514
- return [3 /*break*/, 4];
8515
8566
  case 4:
8567
+ style = (_a = (_o.sent()).style) === null || _a === void 0 ? void 0 : _a.Settings;
8568
+ return [3 /*break*/, 6];
8569
+ case 5:
8570
+ e_4 = _o.sent();
8571
+ console.error(e_4);
8572
+ return [3 /*break*/, 6];
8573
+ case 6:
8516
8574
  entityTypeId = (_b = this.item.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"];
8517
8575
  if (!entityTypeId) {
8518
8576
  entityTypeId = (_d = (_c = entities.find(function (x) { var _a; return !!((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a["EntityType.ID"]); })) === null || _c === void 0 ? void 0 : _c.Bruce) === null || _d === void 0 ? void 0 : _d["EntityType.ID"];
8519
8577
  }
8520
- if (!entityTypeId) return [3 /*break*/, 10];
8521
- _m.label = 5;
8522
- case 5:
8523
- _m.trys.push([5, 9, , 10]);
8578
+ if (!entityTypeId) return [3 /*break*/, 12];
8579
+ _o.label = 7;
8580
+ case 7:
8581
+ _o.trys.push([7, 11, , 12]);
8524
8582
  return [4 /*yield*/, EntityType.Get({
8525
8583
  entityTypeId: entityTypeId,
8526
8584
  api: this.apiGetter.getApi()
8527
8585
  })];
8528
- case 6:
8529
- entityType = (_e = (_m.sent())) === null || _e === void 0 ? void 0 : _e.entityType;
8530
- if (!(!style && entityType)) return [3 /*break*/, 8];
8531
- if (!(entityType["DisplaySetting.ID"] && entityType["DisplaySetting.ID"] > 0)) return [3 /*break*/, 8];
8586
+ case 8:
8587
+ entityType = (_e = (_o.sent())) === null || _e === void 0 ? void 0 : _e.entityType;
8588
+ if (!(!style && entityType)) return [3 /*break*/, 10];
8589
+ if (!(entityType["DisplaySetting.ID"] && entityType["DisplaySetting.ID"] > 0)) return [3 /*break*/, 10];
8532
8590
  return [4 /*yield*/, Style.Get({
8533
8591
  api: this.apiGetter.getApi(),
8534
8592
  styleId: entityType["DisplaySetting.ID"]
8535
8593
  })];
8536
- case 7:
8537
- style = (_f = (_m.sent()).style) === null || _f === void 0 ? void 0 : _f.Settings;
8538
- _m.label = 8;
8539
- case 8: return [3 /*break*/, 10];
8540
8594
  case 9:
8541
- e_5 = _m.sent();
8595
+ style = (_f = (_o.sent()).style) === null || _f === void 0 ? void 0 : _f.Settings;
8596
+ _o.label = 10;
8597
+ case 10: return [3 /*break*/, 12];
8598
+ case 11:
8599
+ e_5 = _o.sent();
8542
8600
  console.error(e_5);
8543
- return [3 /*break*/, 10];
8544
- case 10:
8601
+ return [3 /*break*/, 12];
8602
+ case 12:
8545
8603
  pStyle = (_g = style === null || style === void 0 ? void 0 : style.polygonStyle) !== null && _g !== void 0 ? _g : {};
8546
8604
  lStyle = (_h = style === null || style === void 0 ? void 0 : style.polylineStyle) !== null && _h !== void 0 ? _h : {};
8547
8605
  polygonsClamped = ((_j = pStyle === null || pStyle === void 0 ? void 0 : pStyle.altitudeOption) === null || _j === void 0 ? void 0 : _j.id) == null ? true : ((_k = pStyle === null || pStyle === void 0 ? void 0 : pStyle.altitudeOption) === null || _k === void 0 ? void 0 : _k.id) == 0;
@@ -8566,7 +8624,16 @@ var EntitiesRenderManager;
8566
8624
  // No points.
8567
8625
  allowedDisplayTypes: [ZoomControl.EDisplayType.Geometry]
8568
8626
  });
8569
- if (!((_l = geojson === null || geojson === void 0 ? void 0 : geojson.features) === null || _l === void 0 ? void 0 : _l.length)) {
8627
+ notRendered = !((_l = geojson === null || geojson === void 0 ? void 0 : geojson.features) === null || _l === void 0 ? void 0 : _l.length) ? entities : entities.filter(function (entity) {
8628
+ return !geojson.features.some(function (feature) {
8629
+ var _a, _b, _c;
8630
+ return ((_b = (_a = feature.properties) === null || _a === void 0 ? void 0 : _a.Bruce) === null || _b === void 0 ? void 0 : _b.ID) == ((_c = entity.Bruce) === null || _c === void 0 ? void 0 : _c.ID);
8631
+ });
8632
+ });
8633
+ if (notRendered.length) {
8634
+ this.renderAsIndividuals(notRendered, force);
8635
+ }
8636
+ if (!((_m = geojson === null || geojson === void 0 ? void 0 : geojson.features) === null || _m === void 0 ? void 0 : _m.length)) {
8570
8637
  return [2 /*return*/];
8571
8638
  }
8572
8639
  return [4 /*yield*/, GeoJsonDataSource.load(geojson, {
@@ -8575,8 +8642,8 @@ var EntitiesRenderManager;
8575
8642
  strokeWidth: lineWidthPx,
8576
8643
  clampToGround: lineWidthPx <= 0 && polygonsClamped
8577
8644
  })];
8578
- case 11:
8579
- source = _m.sent();
8645
+ case 13:
8646
+ source = _o.sent();
8580
8647
  this.viewer.dataSources.add(source);
8581
8648
  this.sources.push(source);
8582
8649
  if (this.disposed) {
@@ -9022,6 +9089,10 @@ var EntitiesLoadedRenderManager;
9022
9089
  }
9023
9090
  ];
9024
9091
  }
9092
+ if (this.renderAsGeojson && this.item.CameraZoomSettings.length > 1) {
9093
+ console.warn("Geojson rendering does not support multiple zoom controls. Only the first one will be used.");
9094
+ this.item.CameraZoomSettings = [this.item.CameraZoomSettings[0]];
9095
+ }
9025
9096
  this.recreateGetter();
9026
9097
  };
9027
9098
  /**
@@ -9109,6 +9180,10 @@ var EntitiesLoadedRenderManager;
9109
9180
  }
9110
9181
  if (CameraZoomSettings === null || CameraZoomSettings === void 0 ? void 0 : CameraZoomSettings.length) {
9111
9182
  this.item.CameraZoomSettings = CameraZoomSettings;
9183
+ if (this.renderAsGeojson && this.item.CameraZoomSettings.length > 1) {
9184
+ console.warn("Geojson rendering does not support multiple zoom controls. Only the first one will be used.");
9185
+ this.item.CameraZoomSettings = [this.item.CameraZoomSettings[0]];
9186
+ }
9112
9187
  }
9113
9188
  if (queueRerender != false) {
9114
9189
  var entityIds = Object.keys(this.renderedEntities);
@@ -9175,12 +9250,12 @@ var EntitiesLoadedRenderManager;
9175
9250
  Manager.prototype.onGetterUpdate = function (entities, force) {
9176
9251
  if (force === void 0) { force = false; }
9177
9252
  return __awaiter(this, void 0, void 0, function () {
9178
- var isEntityInItem_1, e_2;
9253
+ var isEntityInItem_1, zoomItem, e_2;
9179
9254
  var _this = this;
9180
9255
  return __generator(this, function (_a) {
9181
9256
  switch (_a.label) {
9182
9257
  case 0:
9183
- _a.trys.push([0, 5, , 6]);
9258
+ _a.trys.push([0, 8, , 9]);
9184
9259
  if (this.disposed || this.viewer.isDestroyed()) {
9185
9260
  return [2 /*return*/];
9186
9261
  }
@@ -9194,21 +9269,30 @@ var EntitiesLoadedRenderManager;
9194
9269
  var _a;
9195
9270
  return isEntityInItem_1((_a = x === null || x === void 0 ? void 0 : x.Bruce) === null || _a === void 0 ? void 0 : _a.ID);
9196
9271
  });
9197
- if (!this.useGeojson) return [3 /*break*/, 2];
9198
- return [4 /*yield*/, this.renderAsGeojson(entities, force)];
9272
+ if (!this.useGeojson) return [3 /*break*/, 5];
9273
+ zoomItem = this.item.CameraZoomSettings[0];
9274
+ if (!(zoomItem.DisplayType == ZoomControl.EDisplayType.Point)) return [3 /*break*/, 2];
9275
+ // We'll just render these as individuals since we don't support point geojson.
9276
+ return [4 /*yield*/, this.renderAsIndividuals(entities, force)];
9199
9277
  case 1:
9278
+ // We'll just render these as individuals since we don't support point geojson.
9200
9279
  _a.sent();
9201
9280
  return [3 /*break*/, 4];
9202
- case 2: return [4 /*yield*/, this.renderAsIndividuals(entities, force)];
9281
+ case 2: return [4 /*yield*/, this.renderAsGeojson(entities, force)];
9203
9282
  case 3:
9204
9283
  _a.sent();
9205
9284
  _a.label = 4;
9206
- case 4: return [3 /*break*/, 6];
9207
- case 5:
9285
+ case 4: return [3 /*break*/, 7];
9286
+ case 5: return [4 /*yield*/, this.renderAsIndividuals(entities, force)];
9287
+ case 6:
9288
+ _a.sent();
9289
+ _a.label = 7;
9290
+ case 7: return [3 /*break*/, 9];
9291
+ case 8:
9208
9292
  e_2 = _a.sent();
9209
9293
  console.error(e_2);
9210
- return [3 /*break*/, 6];
9211
- case 6: return [2 /*return*/];
9294
+ return [3 /*break*/, 9];
9295
+ case 9: return [2 /*return*/];
9212
9296
  }
9213
9297
  });
9214
9298
  });
@@ -9220,12 +9304,12 @@ var EntitiesLoadedRenderManager;
9220
9304
  * @param force TODO: This should re-render entities that are already rendered.
9221
9305
  */
9222
9306
  Manager.prototype.renderAsGeojson = function (entities, force) {
9223
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
9307
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
9224
9308
  return __awaiter(this, void 0, void 0, function () {
9225
- var zoomItem, style, e_3, entityTypeId, entityType, e_4, pStyle, lStyle, polygonsClamped, bFillColor, cFillColor, bLineColor, cLineColor, lineWidthPx, geojson, source, groups, applyStyle, register, sEntities, i, cEntity;
9309
+ var zoomItem, lods, withLods_1, individuals, style, e_3, entityTypeId, entityType, e_4, pStyle, lStyle, polygonsClamped, bFillColor, cFillColor, bLineColor, cLineColor, lineWidthPx, geojson, notRendered, source, groups, applyStyle, register, sEntities, i, cEntity;
9226
9310
  var _this = this;
9227
- return __generator(this, function (_m) {
9228
- switch (_m.label) {
9311
+ return __generator(this, function (_o) {
9312
+ switch (_o.label) {
9229
9313
  case 0:
9230
9314
  entities = entities.filter(function (entity) {
9231
9315
  var _a;
@@ -9237,52 +9321,93 @@ var EntitiesLoadedRenderManager;
9237
9321
  _this.renderedEntities[(_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a.ID] = true;
9238
9322
  });
9239
9323
  zoomItem = this.item.CameraZoomSettings[0];
9240
- style = null;
9241
- if (!((zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) && (zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) > -1)) return [3 /*break*/, 4];
9242
- _m.label = 1;
9324
+ if (!(zoomItem.DisplayType == ZoomControl.EDisplayType.Model3D && entities.length)) return [3 /*break*/, 2];
9325
+ return [4 /*yield*/, EntityLod.GetLods({
9326
+ api: this.apiGetter.getApi(),
9327
+ filter: {
9328
+ externalSources: false,
9329
+ Items: entities.map(function (x) {
9330
+ var _a, _b;
9331
+ return {
9332
+ entityId: (_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID,
9333
+ categoryId: (_b = zoomItem.LODCategoryID) !== null && _b !== void 0 ? _b : "GLB",
9334
+ group: "DEFAULT",
9335
+ level: Number(zoomItem.LODLevel)
9336
+ };
9337
+ }),
9338
+ strict: false
9339
+ }
9340
+ })];
9243
9341
  case 1:
9244
- _m.trys.push([1, 3, , 4]);
9342
+ lods = (_o.sent()).lods;
9343
+ if (this.disposed) {
9344
+ this.doDispose();
9345
+ return [2 /*return*/];
9346
+ }
9347
+ withLods_1 = lods.filter(function (x) { return x.entityId && !!x.clientFileId; }).map(function (x) { return x.entityId; });
9348
+ individuals = entities.filter(function (entity) {
9349
+ var _a;
9350
+ return withLods_1.includes((_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a.ID);
9351
+ });
9352
+ if (individuals.length) {
9353
+ this.renderAsIndividuals(individuals, force);
9354
+ }
9355
+ // Now we proceed with what is left.
9356
+ entities = entities.filter(function (entity) {
9357
+ var _a;
9358
+ return !withLods_1.includes((_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a.ID);
9359
+ });
9360
+ _o.label = 2;
9361
+ case 2:
9362
+ if (!entities.length) {
9363
+ return [2 /*return*/];
9364
+ }
9365
+ style = null;
9366
+ if (!((zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) && (zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) > -1)) return [3 /*break*/, 6];
9367
+ _o.label = 3;
9368
+ case 3:
9369
+ _o.trys.push([3, 5, , 6]);
9245
9370
  return [4 /*yield*/, Style.Get({
9246
9371
  api: this.apiGetter.getApi(),
9247
9372
  styleId: zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID
9248
9373
  })];
9249
- case 2:
9250
- style = (_a = (_m.sent()).style) === null || _a === void 0 ? void 0 : _a.Settings;
9251
- return [3 /*break*/, 4];
9252
- case 3:
9253
- e_3 = _m.sent();
9254
- console.error(e_3);
9255
- return [3 /*break*/, 4];
9256
9374
  case 4:
9375
+ style = (_a = (_o.sent()).style) === null || _a === void 0 ? void 0 : _a.Settings;
9376
+ return [3 /*break*/, 6];
9377
+ case 5:
9378
+ e_3 = _o.sent();
9379
+ console.error(e_3);
9380
+ return [3 /*break*/, 6];
9381
+ case 6:
9257
9382
  entityTypeId = (_b = this.item.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"];
9258
9383
  if (!entityTypeId) {
9259
9384
  entityTypeId = (_d = (_c = entities.find(function (x) { var _a; return !!((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a["EntityType.ID"]); })) === null || _c === void 0 ? void 0 : _c.Bruce) === null || _d === void 0 ? void 0 : _d["EntityType.ID"];
9260
9385
  }
9261
- if (!entityTypeId) return [3 /*break*/, 10];
9262
- _m.label = 5;
9263
- case 5:
9264
- _m.trys.push([5, 9, , 10]);
9386
+ if (!entityTypeId) return [3 /*break*/, 12];
9387
+ _o.label = 7;
9388
+ case 7:
9389
+ _o.trys.push([7, 11, , 12]);
9265
9390
  return [4 /*yield*/, EntityType.Get({
9266
9391
  entityTypeId: entityTypeId,
9267
9392
  api: this.apiGetter.getApi()
9268
9393
  })];
9269
- case 6:
9270
- entityType = (_e = (_m.sent())) === null || _e === void 0 ? void 0 : _e.entityType;
9271
- if (!(!style && entityType)) return [3 /*break*/, 8];
9272
- if (!(entityType["DisplaySetting.ID"] && entityType["DisplaySetting.ID"] > 0)) return [3 /*break*/, 8];
9394
+ case 8:
9395
+ entityType = (_e = (_o.sent())) === null || _e === void 0 ? void 0 : _e.entityType;
9396
+ if (!(!style && entityType)) return [3 /*break*/, 10];
9397
+ if (!(entityType["DisplaySetting.ID"] && entityType["DisplaySetting.ID"] > 0)) return [3 /*break*/, 10];
9273
9398
  return [4 /*yield*/, Style.Get({
9274
9399
  api: this.apiGetter.getApi(),
9275
9400
  styleId: entityType["DisplaySetting.ID"]
9276
9401
  })];
9277
- case 7:
9278
- style = (_f = (_m.sent()).style) === null || _f === void 0 ? void 0 : _f.Settings;
9279
- _m.label = 8;
9280
- case 8: return [3 /*break*/, 10];
9281
9402
  case 9:
9282
- e_4 = _m.sent();
9403
+ style = (_f = (_o.sent()).style) === null || _f === void 0 ? void 0 : _f.Settings;
9404
+ _o.label = 10;
9405
+ case 10: return [3 /*break*/, 12];
9406
+ case 11:
9407
+ e_4 = _o.sent();
9283
9408
  console.error(e_4);
9284
- return [3 /*break*/, 10];
9285
- case 10:
9409
+ return [3 /*break*/, 12];
9410
+ case 12:
9286
9411
  pStyle = (_g = style === null || style === void 0 ? void 0 : style.polygonStyle) !== null && _g !== void 0 ? _g : {};
9287
9412
  lStyle = (_h = style === null || style === void 0 ? void 0 : style.polylineStyle) !== null && _h !== void 0 ? _h : {};
9288
9413
  polygonsClamped = ((_j = pStyle === null || pStyle === void 0 ? void 0 : pStyle.altitudeOption) === null || _j === void 0 ? void 0 : _j.id) == null ? true : ((_k = pStyle === null || pStyle === void 0 ? void 0 : pStyle.altitudeOption) === null || _k === void 0 ? void 0 : _k.id) == 0;
@@ -9307,7 +9432,16 @@ var EntitiesLoadedRenderManager;
9307
9432
  // No points.
9308
9433
  allowedDisplayTypes: [ZoomControl.EDisplayType.Geometry]
9309
9434
  });
9310
- if (!((_l = geojson === null || geojson === void 0 ? void 0 : geojson.features) === null || _l === void 0 ? void 0 : _l.length)) {
9435
+ notRendered = !((_l = geojson === null || geojson === void 0 ? void 0 : geojson.features) === null || _l === void 0 ? void 0 : _l.length) ? entities : entities.filter(function (entity) {
9436
+ return !geojson.features.some(function (feature) {
9437
+ var _a, _b, _c;
9438
+ return ((_b = (_a = feature.properties) === null || _a === void 0 ? void 0 : _a.Bruce) === null || _b === void 0 ? void 0 : _b.ID) == ((_c = entity.Bruce) === null || _c === void 0 ? void 0 : _c.ID);
9439
+ });
9440
+ });
9441
+ if (notRendered.length) {
9442
+ this.renderAsIndividuals(notRendered, force);
9443
+ }
9444
+ if (!((_m = geojson === null || geojson === void 0 ? void 0 : geojson.features) === null || _m === void 0 ? void 0 : _m.length)) {
9311
9445
  return [2 /*return*/];
9312
9446
  }
9313
9447
  return [4 /*yield*/, GeoJsonDataSource.load(geojson, {
@@ -9316,8 +9450,8 @@ var EntitiesLoadedRenderManager;
9316
9450
  strokeWidth: lineWidthPx,
9317
9451
  clampToGround: lineWidthPx <= 0 && polygonsClamped
9318
9452
  })];
9319
- case 11:
9320
- source = _m.sent();
9453
+ case 13:
9454
+ source = _o.sent();
9321
9455
  this.viewer.dataSources.add(source);
9322
9456
  this.sources.push(source);
9323
9457
  if (this.disposed) {
@@ -9603,6 +9737,10 @@ var EntitiesIdsRenderManager;
9603
9737
  }
9604
9738
  ];
9605
9739
  }
9740
+ if (this.renderAsGeojson && this.item.CameraZoomSettings.length > 1) {
9741
+ console.warn("Geojson rendering does not support multiple zoom controls. Only the first one will be used.");
9742
+ this.item.CameraZoomSettings = [this.item.CameraZoomSettings[0]];
9743
+ }
9606
9744
  this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.EntityIds, this.monitor, BATCH_SIZE$2);
9607
9745
  this.getterSub = this.getter.OnUpdate.Subscribe(function (ids) {
9608
9746
  _this.onGetterUpdate(ids);
@@ -9671,6 +9809,10 @@ var EntitiesIdsRenderManager;
9671
9809
  }
9672
9810
  if (CameraZoomSettings === null || CameraZoomSettings === void 0 ? void 0 : CameraZoomSettings.length) {
9673
9811
  this.item.CameraZoomSettings = CameraZoomSettings;
9812
+ if (this.renderAsGeojson && this.item.CameraZoomSettings.length > 1) {
9813
+ console.warn("Geojson rendering does not support multiple zoom controls. Only the first one will be used.");
9814
+ this.item.CameraZoomSettings = [this.item.CameraZoomSettings[0]];
9815
+ }
9674
9816
  }
9675
9817
  if (queueRerender != false) {
9676
9818
  var entityIds = Object.keys(this.renderedEntities);
@@ -9717,7 +9859,7 @@ var EntitiesIdsRenderManager;
9717
9859
  Manager.prototype.renderEntities = function (entities, force) {
9718
9860
  if (force === void 0) { force = false; }
9719
9861
  return __awaiter(this, void 0, void 0, function () {
9720
- var e_2;
9862
+ var zoomItem, e_2;
9721
9863
  return __generator(this, function (_a) {
9722
9864
  switch (_a.label) {
9723
9865
  case 0:
@@ -9726,22 +9868,31 @@ var EntitiesIdsRenderManager;
9726
9868
  }
9727
9869
  _a.label = 1;
9728
9870
  case 1:
9729
- _a.trys.push([1, 6, , 7]);
9730
- if (!this.useGeojson) return [3 /*break*/, 3];
9731
- return [4 /*yield*/, this.renderAsGeojson(entities, force)];
9871
+ _a.trys.push([1, 9, , 10]);
9872
+ if (!this.useGeojson) return [3 /*break*/, 6];
9873
+ zoomItem = this.item.CameraZoomSettings[0];
9874
+ if (!(zoomItem.DisplayType == ZoomControl.EDisplayType.Point)) return [3 /*break*/, 3];
9875
+ // We'll just render these as individuals since we don't support point geojson.
9876
+ return [4 /*yield*/, this.renderAsIndividuals(entities, force)];
9732
9877
  case 2:
9878
+ // We'll just render these as individuals since we don't support point geojson.
9733
9879
  _a.sent();
9734
9880
  return [3 /*break*/, 5];
9735
- case 3: return [4 /*yield*/, this.renderAsIndividuals(entities, force)];
9881
+ case 3: return [4 /*yield*/, this.renderAsGeojson(entities, force)];
9736
9882
  case 4:
9737
9883
  _a.sent();
9738
9884
  _a.label = 5;
9739
- case 5: return [3 /*break*/, 7];
9740
- case 6:
9885
+ case 5: return [3 /*break*/, 8];
9886
+ case 6: return [4 /*yield*/, this.renderAsIndividuals(entities, force)];
9887
+ case 7:
9888
+ _a.sent();
9889
+ _a.label = 8;
9890
+ case 8: return [3 /*break*/, 10];
9891
+ case 9:
9741
9892
  e_2 = _a.sent();
9742
9893
  console.error(e_2);
9743
- return [3 /*break*/, 7];
9744
- case 7: return [2 /*return*/];
9894
+ return [3 /*break*/, 10];
9895
+ case 10: return [2 /*return*/];
9745
9896
  }
9746
9897
  });
9747
9898
  });
@@ -9753,12 +9904,12 @@ var EntitiesIdsRenderManager;
9753
9904
  * @param force TODO: This should re-render entities that are already rendered.
9754
9905
  */
9755
9906
  Manager.prototype.renderAsGeojson = function (entities, force) {
9756
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
9907
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
9757
9908
  return __awaiter(this, void 0, void 0, function () {
9758
- var zoomItem, style, e_3, entityTypeId, entityType, e_4, pStyle, lStyle, polygonsClamped, bFillColor, cFillColor, bLineColor, cLineColor, lineWidthPx, geojson, source, groups, applyStyle, register, sEntities, i, cEntity;
9909
+ var zoomItem, lods, withLods_1, individuals, style, e_3, entityTypeId, entityType, e_4, pStyle, lStyle, polygonsClamped, bFillColor, cFillColor, bLineColor, cLineColor, lineWidthPx, geojson, notRendered, source, groups, applyStyle, register, sEntities, i, cEntity;
9759
9910
  var _this = this;
9760
- return __generator(this, function (_m) {
9761
- switch (_m.label) {
9911
+ return __generator(this, function (_o) {
9912
+ switch (_o.label) {
9762
9913
  case 0:
9763
9914
  entities = entities.filter(function (entity) {
9764
9915
  var _a;
@@ -9770,52 +9921,93 @@ var EntitiesIdsRenderManager;
9770
9921
  _this.renderedEntities[(_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a.ID] = true;
9771
9922
  });
9772
9923
  zoomItem = this.item.CameraZoomSettings[0];
9773
- style = null;
9774
- if (!((zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) && (zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) > -1)) return [3 /*break*/, 4];
9775
- _m.label = 1;
9924
+ if (!(zoomItem.DisplayType == ZoomControl.EDisplayType.Model3D && entities.length)) return [3 /*break*/, 2];
9925
+ return [4 /*yield*/, EntityLod.GetLods({
9926
+ api: this.apiGetter.getApi(),
9927
+ filter: {
9928
+ externalSources: false,
9929
+ Items: entities.map(function (x) {
9930
+ var _a, _b;
9931
+ return {
9932
+ entityId: (_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID,
9933
+ categoryId: (_b = zoomItem.LODCategoryID) !== null && _b !== void 0 ? _b : "GLB",
9934
+ group: "DEFAULT",
9935
+ level: Number(zoomItem.LODLevel)
9936
+ };
9937
+ }),
9938
+ strict: false
9939
+ }
9940
+ })];
9776
9941
  case 1:
9777
- _m.trys.push([1, 3, , 4]);
9942
+ lods = (_o.sent()).lods;
9943
+ if (this.disposed) {
9944
+ this.doDispose();
9945
+ return [2 /*return*/];
9946
+ }
9947
+ withLods_1 = lods.filter(function (x) { return x.entityId && !!x.clientFileId; }).map(function (x) { return x.entityId; });
9948
+ individuals = entities.filter(function (entity) {
9949
+ var _a;
9950
+ return withLods_1.includes((_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a.ID);
9951
+ });
9952
+ if (individuals.length) {
9953
+ this.renderAsIndividuals(individuals, force);
9954
+ }
9955
+ // Now we proceed with what is left.
9956
+ entities = entities.filter(function (entity) {
9957
+ var _a;
9958
+ return !withLods_1.includes((_a = entity.Bruce) === null || _a === void 0 ? void 0 : _a.ID);
9959
+ });
9960
+ _o.label = 2;
9961
+ case 2:
9962
+ if (!entities.length) {
9963
+ return [2 /*return*/];
9964
+ }
9965
+ style = null;
9966
+ if (!((zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) && (zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID) > -1)) return [3 /*break*/, 6];
9967
+ _o.label = 3;
9968
+ case 3:
9969
+ _o.trys.push([3, 5, , 6]);
9778
9970
  return [4 /*yield*/, Style.Get({
9779
9971
  api: this.apiGetter.getApi(),
9780
9972
  styleId: zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.StyleID
9781
9973
  })];
9782
- case 2:
9783
- style = (_a = (_m.sent()).style) === null || _a === void 0 ? void 0 : _a.Settings;
9784
- return [3 /*break*/, 4];
9785
- case 3:
9786
- e_3 = _m.sent();
9787
- console.error(e_3);
9788
- return [3 /*break*/, 4];
9789
9974
  case 4:
9975
+ style = (_a = (_o.sent()).style) === null || _a === void 0 ? void 0 : _a.Settings;
9976
+ return [3 /*break*/, 6];
9977
+ case 5:
9978
+ e_3 = _o.sent();
9979
+ console.error(e_3);
9980
+ return [3 /*break*/, 6];
9981
+ case 6:
9790
9982
  entityTypeId = (_b = this.item.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"];
9791
9983
  if (!entityTypeId) {
9792
9984
  entityTypeId = (_d = (_c = entities.find(function (x) { var _a; return !!((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a["EntityType.ID"]); })) === null || _c === void 0 ? void 0 : _c.Bruce) === null || _d === void 0 ? void 0 : _d["EntityType.ID"];
9793
9985
  }
9794
- if (!entityTypeId) return [3 /*break*/, 10];
9795
- _m.label = 5;
9796
- case 5:
9797
- _m.trys.push([5, 9, , 10]);
9986
+ if (!entityTypeId) return [3 /*break*/, 12];
9987
+ _o.label = 7;
9988
+ case 7:
9989
+ _o.trys.push([7, 11, , 12]);
9798
9990
  return [4 /*yield*/, EntityType.Get({
9799
9991
  entityTypeId: entityTypeId,
9800
9992
  api: this.apiGetter.getApi()
9801
9993
  })];
9802
- case 6:
9803
- entityType = (_e = (_m.sent())) === null || _e === void 0 ? void 0 : _e.entityType;
9804
- if (!(!style && entityType)) return [3 /*break*/, 8];
9805
- if (!(entityType["DisplaySetting.ID"] && entityType["DisplaySetting.ID"] > 0)) return [3 /*break*/, 8];
9994
+ case 8:
9995
+ entityType = (_e = (_o.sent())) === null || _e === void 0 ? void 0 : _e.entityType;
9996
+ if (!(!style && entityType)) return [3 /*break*/, 10];
9997
+ if (!(entityType["DisplaySetting.ID"] && entityType["DisplaySetting.ID"] > 0)) return [3 /*break*/, 10];
9806
9998
  return [4 /*yield*/, Style.Get({
9807
9999
  api: this.apiGetter.getApi(),
9808
10000
  styleId: entityType["DisplaySetting.ID"]
9809
10001
  })];
9810
- case 7:
9811
- style = (_f = (_m.sent()).style) === null || _f === void 0 ? void 0 : _f.Settings;
9812
- _m.label = 8;
9813
- case 8: return [3 /*break*/, 10];
9814
10002
  case 9:
9815
- e_4 = _m.sent();
10003
+ style = (_f = (_o.sent()).style) === null || _f === void 0 ? void 0 : _f.Settings;
10004
+ _o.label = 10;
10005
+ case 10: return [3 /*break*/, 12];
10006
+ case 11:
10007
+ e_4 = _o.sent();
9816
10008
  console.error(e_4);
9817
- return [3 /*break*/, 10];
9818
- case 10:
10009
+ return [3 /*break*/, 12];
10010
+ case 12:
9819
10011
  pStyle = (_g = style === null || style === void 0 ? void 0 : style.polygonStyle) !== null && _g !== void 0 ? _g : {};
9820
10012
  lStyle = (_h = style === null || style === void 0 ? void 0 : style.polylineStyle) !== null && _h !== void 0 ? _h : {};
9821
10013
  polygonsClamped = ((_j = pStyle === null || pStyle === void 0 ? void 0 : pStyle.altitudeOption) === null || _j === void 0 ? void 0 : _j.id) == null ? true : ((_k = pStyle === null || pStyle === void 0 ? void 0 : pStyle.altitudeOption) === null || _k === void 0 ? void 0 : _k.id) == 0;
@@ -9840,7 +10032,16 @@ var EntitiesIdsRenderManager;
9840
10032
  // No points.
9841
10033
  allowedDisplayTypes: [ZoomControl.EDisplayType.Geometry]
9842
10034
  });
9843
- if (!((_l = geojson === null || geojson === void 0 ? void 0 : geojson.features) === null || _l === void 0 ? void 0 : _l.length)) {
10035
+ notRendered = !((_l = geojson === null || geojson === void 0 ? void 0 : geojson.features) === null || _l === void 0 ? void 0 : _l.length) ? entities : entities.filter(function (entity) {
10036
+ return !geojson.features.some(function (feature) {
10037
+ var _a, _b, _c;
10038
+ return ((_b = (_a = feature.properties) === null || _a === void 0 ? void 0 : _a.Bruce) === null || _b === void 0 ? void 0 : _b.ID) == ((_c = entity.Bruce) === null || _c === void 0 ? void 0 : _c.ID);
10039
+ });
10040
+ });
10041
+ if (notRendered.length) {
10042
+ this.renderAsIndividuals(notRendered, force);
10043
+ }
10044
+ if (!((_m = geojson === null || geojson === void 0 ? void 0 : geojson.features) === null || _m === void 0 ? void 0 : _m.length)) {
9844
10045
  return [2 /*return*/];
9845
10046
  }
9846
10047
  return [4 /*yield*/, GeoJsonDataSource.load(geojson, {
@@ -9849,8 +10050,8 @@ var EntitiesIdsRenderManager;
9849
10050
  strokeWidth: lineWidthPx,
9850
10051
  clampToGround: lineWidthPx <= 0 && polygonsClamped
9851
10052
  })];
9852
- case 11:
9853
- source = _m.sent();
10053
+ case 13:
10054
+ source = _o.sent();
9854
10055
  this.viewer.dataSources.add(source);
9855
10056
  this.sources.push(source);
9856
10057
  if (this.disposed) {
@@ -21159,7 +21360,7 @@ var CesiumViewMonitor;
21159
21360
  CesiumViewMonitor$$1.Monitor = Monitor;
21160
21361
  })(CesiumViewMonitor || (CesiumViewMonitor = {}));
21161
21362
 
21162
- var VERSION$1 = "3.4.1";
21363
+ var VERSION$1 = "3.4.2";
21163
21364
 
21164
21365
  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, EntityLabel, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, CESIUM_INSPECTOR_KEY, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils, Draw3dPolygon, Draw3dPolyline };
21165
21366
  //# sourceMappingURL=bruce-cesium.es5.js.map