bruce-cesium 3.6.6 → 3.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { BruceEvent, Cartes, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ProjectViewTile, DelayQueue, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, Bounds, Api, EntityRelationType, ENVIRONMENT, EntityCoords, 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, Entity, Primitive, Cesium3DTileFeature, SceneMode, GeoJsonDataSource, ColorMaterialProperty, Cesium3DTileColorBlendMode, HeadingPitchRange, Ion, Cesium3DTileStyle, KmlDataSource, SceneTransforms, OrthographicFrustum, EasingFunction, NearFarScalar, EllipsoidTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, Cesium3DTileset, Matrix4, HeadingPitchRoll, Transforms, Matrix3, IonResource, CesiumInspector, defined, EllipsoidGeodesic, sampleTerrainMostDetailed, Model, PolygonPipeline, BoundingSphere, GeometryInstance, ModelGraphics, PolygonGraphics, PolylineGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics, PolygonHierarchy, ScreenSpaceEventHandler, ScreenSpaceEventType, ShadowMode, ClassificationType, DistanceDisplayCondition, HorizontalOrigin, VerticalOrigin, ArcType, CornerType, ColorBlendMode, CzmlDataSource, Quaternion, Intersect } 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, Cesium3DTileColorBlendMode, HeadingPitchRange, Ion, Cesium3DTileStyle, KmlDataSource, SceneTransforms, OrthographicFrustum, EasingFunction, EllipsoidTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, CesiumInspector, defined, Cesium3DTileset, Matrix4, Matrix3, IonResource, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, BoundingSphere, GeometryInstance, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics, ScreenSpaceEventHandler, ScreenSpaceEventType, CzmlDataSource, Quaternion, Intersect } from 'cesium';
4
4
 
5
5
  /*! *****************************************************************************
6
6
  Copyright (c) Microsoft Corporation. All rights reserved.
@@ -15265,10 +15265,11 @@ var DataSourceStaticCsvManager;
15265
15265
  this.czmlDataInputs = [];
15266
15266
  // Array of callbacks to remove from the clock tick event.
15267
15267
  this.tickRemovals = [];
15268
- var viewer = params.viewer, apiGetter = params.apiGetter, item = params.item;
15268
+ var viewer = params.viewer, apiGetter = params.apiGetter, item = params.item, register = params.register;
15269
15269
  this.viewer = viewer;
15270
15270
  this.apiGetter = apiGetter;
15271
15271
  this.item = item;
15272
+ this.register = register;
15272
15273
  }
15273
15274
  Object.defineProperty(Manager.prototype, "Disposed", {
15274
15275
  get: function () {
@@ -15348,19 +15349,19 @@ var DataSourceStaticCsvManager;
15348
15349
  Manager.prototype.renderMovingItem = function () {
15349
15350
  var _a;
15350
15351
  return __awaiter(this, void 0, void 0, function () {
15351
- var api, vehicleFileUrl, alarmFileUrl, lineColor, fileStrings, files, i, file, fileId, externalURL, fileUrl, fileStr, csvData, i, delimiter, fileStr, headers, rows, rowsArr, j, row, rowArr, primary, pHeaders, pLatIndex, pLonIndex, pDateTimeIndex, i, row, lat, lon, dateTimeStr, utcDate, _b, datePart, timePart, _c, year, month, day, _d, hours, minutes, seconds, milliseconds, convertTo24HourFormat, dateTime24hr, _e, datePart, timePart, _f, day, month, year, _g, hours, minutes, seconds, _h, datePart, timePart, _j, year, month, day, _k, hours, minutes, seconds, vehicleId, czml, czmlAdjusted, curDateTime, source, pHeadingIndex_1, errorsInARow_1, removal_1;
15352
+ var api, vehicleFileUrl, alarmFileUrl, lineColor, vehicleEntityId, fileStrings, files, i, file, fileId, externalURL, fileUrl, fileStr, csvData, i, delimiter, fileStr, headers, rows, rowsArr, j, row, rowArr, primary, pHeaders, pLatIndex, pLonIndex, pDateTimeIndex, i, row, lat, lon, dateTimeStr, utcDate, _b, datePart, timePart, _c, year, month, day, _d, hours, minutes, seconds, milliseconds, convertTo24HourFormat, dateTime24hr, _e, datePart, timePart, _f, day, month, year, _g, hours, minutes, seconds, _h, datePart, timePart, _j, year, month, day, _k, hours, minutes, seconds, vehicleCesiumId, _l, czml, entityMapping, czmlAdjusted, curDateTime, source, pHeadingIndex_1, errorsInARow_1, removal_1, vehicleEntity, cesiumEntityIds, i, cesiumEntityId, entity, nextspaceEntityId;
15352
15353
  var _this = this;
15353
- return __generator(this, function (_l) {
15354
- switch (_l.label) {
15354
+ return __generator(this, function (_m) {
15355
+ switch (_m.label) {
15355
15356
  case 0:
15356
15357
  api = this.apiGetter.getApi();
15357
15358
  return [4 /*yield*/, api.Loading];
15358
15359
  case 1:
15359
- _l.sent();
15360
+ _m.sent();
15360
15361
  fileStrings = [];
15361
15362
  files = this.item.CSV;
15362
15363
  i = 0;
15363
- _l.label = 2;
15364
+ _m.label = 2;
15364
15365
  case 2:
15365
15366
  if (!(i < files.length)) return [3 /*break*/, 6];
15366
15367
  file = files[i];
@@ -15381,9 +15382,9 @@ var DataSourceStaticCsvManager;
15381
15382
  fileUrl = externalURL;
15382
15383
  }
15383
15384
  return [4 /*yield*/, fetch(fileUrl)];
15384
- case 3: return [4 /*yield*/, (_l.sent()).text()];
15385
+ case 3: return [4 /*yield*/, (_m.sent()).text()];
15385
15386
  case 4:
15386
- fileStr = _l.sent();
15387
+ fileStr = _m.sent();
15387
15388
  fileStrings.push(fileStr);
15388
15389
  if (this.disposed) {
15389
15390
  return [2 /*return*/];
@@ -15405,7 +15406,10 @@ var DataSourceStaticCsvManager;
15405
15406
  viaCdn: true
15406
15407
  });
15407
15408
  }
15408
- _l.label = 5;
15409
+ if (file.vehicleEntityId) {
15410
+ vehicleEntityId = file.vehicleEntityId;
15411
+ }
15412
+ _m.label = 5;
15409
15413
  case 5:
15410
15414
  i++;
15411
15415
  return [3 /*break*/, 2];
@@ -15497,8 +15501,8 @@ var DataSourceStaticCsvManager;
15497
15501
  var bDate = new Date(b[pDateTimeIndex]);
15498
15502
  return aDate.getTime() - bDate.getTime();
15499
15503
  });
15500
- vehicleId = ObjectUtils.UId();
15501
- czml = createJourneyCzml(vehicleId, vehicleFileUrl, alarmFileUrl, lineColor, primary);
15504
+ vehicleCesiumId = ObjectUtils.UId();
15505
+ _l = createJourneyCzml(vehicleCesiumId, vehicleFileUrl, alarmFileUrl, lineColor, primary), czml = _l.czml, entityMapping = _l.entityMapping;
15502
15506
  this.czmlDataInputs.push(czml);
15503
15507
  czmlAdjusted = JSON.parse(JSON.stringify(czml));
15504
15508
  czmlAdjusted.forEach(function (item) {
@@ -15507,7 +15511,7 @@ var DataSourceStaticCsvManager;
15507
15511
  curDateTime = this.viewer.clock.currentTime;
15508
15512
  return [4 /*yield*/, this.viewer.dataSources.add(CzmlDataSource.load(czmlAdjusted))];
15509
15513
  case 7:
15510
- source = _l.sent();
15514
+ source = _m.sent();
15511
15515
  this.dataSource = source;
15512
15516
  // Reset back to the previous dateTime.
15513
15517
  // Adding the czml data source will have changed the clock.
@@ -15517,7 +15521,7 @@ var DataSourceStaticCsvManager;
15517
15521
  pHeadingIndex_1 = pHeaders.findIndex(function (x) { return x.toLowerCase().includes("head"); });
15518
15522
  errorsInARow_1 = 0;
15519
15523
  removal_1 = this.viewer.clock.onTick.addEventListener(function () {
15520
- var vehicle = source.entities.getById(vehicleId);
15524
+ var vehicle = source.entities.getById(vehicleCesiumId);
15521
15525
  if (vehicle) {
15522
15526
  try {
15523
15527
  updateOrientation(primary.rows, pHeadingIndex_1, pDateTimeIndex, _this.viewer, vehicle);
@@ -15534,6 +15538,48 @@ var DataSourceStaticCsvManager;
15534
15538
  }
15535
15539
  });
15536
15540
  this.tickRemovals.push(removal_1);
15541
+ // Register vehicle rego.
15542
+ if (vehicleEntityId) {
15543
+ vehicleEntity = source.entities.getById(vehicleCesiumId);
15544
+ if (vehicleEntity) {
15545
+ this.register.AddRego({
15546
+ rego: {
15547
+ entityId: vehicleEntityId,
15548
+ menuItemId: this.item.id,
15549
+ priority: 0,
15550
+ visual: vehicleEntity,
15551
+ accountId: this.apiGetter.accountId,
15552
+ cdn: false,
15553
+ overrideShow: true
15554
+ },
15555
+ requestRender: false
15556
+ });
15557
+ }
15558
+ }
15559
+ // Register alarms (and any other Entities that were created).
15560
+ console.log("entityMapping", entityMapping);
15561
+ cesiumEntityIds = Object.keys(entityMapping);
15562
+ for (i = 0; i < cesiumEntityIds.length; i++) {
15563
+ cesiumEntityId = cesiumEntityIds[i];
15564
+ entity = source.entities.getById(cesiumEntityId);
15565
+ if (entity) {
15566
+ nextspaceEntityId = entityMapping[cesiumEntityId];
15567
+ if (nextspaceEntityId) {
15568
+ this.register.AddRego({
15569
+ rego: {
15570
+ entityId: nextspaceEntityId,
15571
+ menuItemId: this.item.id,
15572
+ priority: 0,
15573
+ visual: entity,
15574
+ accountId: this.apiGetter.accountId,
15575
+ cdn: false,
15576
+ overrideShow: true
15577
+ },
15578
+ requestRender: false
15579
+ });
15580
+ }
15581
+ }
15582
+ }
15537
15583
  }
15538
15584
  return [2 /*return*/];
15539
15585
  }
@@ -15557,6 +15603,11 @@ var DataSourceStaticCsvManager;
15557
15603
  this.tickRemovals.forEach(function (removal) { return removal(); });
15558
15604
  this.tickRemovals = [];
15559
15605
  }
15606
+ this.register.RemoveRegos({
15607
+ menuItemId: this.item.id,
15608
+ doUpdate: false,
15609
+ requestRender: false
15610
+ });
15560
15611
  };
15561
15612
  Manager.prototype.ReRender = function (params) {
15562
15613
  return __awaiter(this, void 0, void 0, function () {
@@ -15588,6 +15639,16 @@ function createJourneyCzml(vehicleId, vehicleFileUrl, alarmFileUrl, lineColor, d
15588
15639
  var lonIndex = headers.findIndex(function (x) { return x.toLowerCase().includes("lon"); });
15589
15640
  var dateTimeIndex = headers.findIndex(function (x) { return x.toLowerCase().includes("date"); });
15590
15641
  var alarmIndex = headers.findIndex(function (x) { return x.toLowerCase().includes("alarm"); });
15642
+ var entityIdIndex = headers.findIndex(function (x, i) {
15643
+ if (i === latIndex || i === lonIndex || i === dateTimeIndex || i === alarmIndex) {
15644
+ return false;
15645
+ }
15646
+ var lower = x.toLowerCase();
15647
+ return lower.includes("entityid") || lower.includes("bruce") || lower.includes("nextspace");
15648
+ });
15649
+ // Map between Cesium Entity ID and Nextspace Entity ID.
15650
+ // This is returned to the caller so they can map between the two.
15651
+ var entityMapping = {};
15591
15652
  var czml = [
15592
15653
  {
15593
15654
  "id": "document",
@@ -15651,8 +15712,9 @@ function createJourneyCzml(vehicleId, vehicleFileUrl, alarmFileUrl, lineColor, d
15651
15712
  var alarmTime = new Date(row[dateTimeIndex]).getTime();
15652
15713
  var startTime = new Date(alarmTime - visibilityDuration_1 / 2).toISOString();
15653
15714
  var endTime = new Date(alarmTime + visibilityDuration_1 / 2).toISOString();
15715
+ var alarmCesiumId = ObjectUtils.UId();
15654
15716
  czml.push({
15655
- "id": ObjectUtils.UId(),
15717
+ "id": alarmCesiumId,
15656
15718
  "name": "Alarm",
15657
15719
  "availability": startTime + "/" + endTime,
15658
15720
  "position": {
@@ -15676,6 +15738,10 @@ function createJourneyCzml(vehicleId, vehicleFileUrl, alarmFileUrl, lineColor, d
15676
15738
  }
15677
15739
  } : undefined
15678
15740
  });
15741
+ var entityId = entityIdIndex > -1 ? row[entityIdIndex] : null;
15742
+ if (entityId) {
15743
+ entityMapping[alarmCesiumId] = String(entityId);
15744
+ }
15679
15745
  });
15680
15746
  }
15681
15747
  // Add animated point for the moving item.
@@ -15707,7 +15773,10 @@ function createJourneyCzml(vehicleId, vehicleFileUrl, alarmFileUrl, lineColor, d
15707
15773
  "cartographicDegrees": vehiclePositions
15708
15774
  }
15709
15775
  });
15710
- return czml;
15776
+ return {
15777
+ czml: czml,
15778
+ entityMapping: entityMapping
15779
+ };
15711
15780
  }
15712
15781
  /**
15713
15782
  * Updates the orientation of the moving item.
@@ -16128,7 +16197,8 @@ var MenuItemManager;
16128
16197
  rItem.renderManager = new DataSourceStaticCsvManager.Manager({
16129
16198
  viewer: this.viewer,
16130
16199
  apiGetter: params.apiGetter,
16131
- item: params.item
16200
+ item: params.item,
16201
+ register: this.visualsRegister
16132
16202
  });
16133
16203
  break;
16134
16204
  case MenuItem.EType.IonTileset:
@@ -22344,7 +22414,7 @@ var ViewRenderEngine;
22344
22414
  ViewRenderEngine.Render = Render;
22345
22415
  })(ViewRenderEngine || (ViewRenderEngine = {}));
22346
22416
 
22347
- var VERSION = "3.6.6";
22417
+ var VERSION = "3.6.7";
22348
22418
 
22349
22419
  export { 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, CesiumEntityStyler, Draw3dPolygon, Draw3dPolyline };
22350
22420
  //# sourceMappingURL=bruce-cesium.es5.js.map