bruce-cesium 0.3.9 → 0.4.1

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,5 +1,5 @@
1
1
  import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, TilesetExtMapTiles, Camera, MathUtils } from 'bruce-models';
2
- import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, OrthographicFrustum, createOsmBuildings, Cesium3DTileStyle, Rectangle, EllipsoidGeodesic, Matrix4, Cesium3DTileset } from 'cesium';
2
+ import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, OrthographicFrustum, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, createOsmBuildings, Cesium3DTileStyle, Rectangle, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -4141,10 +4141,18 @@ var TileRenderEngine;
4141
4141
  (function (V2) {
4142
4142
  function GetOrCreateLayer(viewer, apiGetter, meta) {
4143
4143
  return __awaiter(this, void 0, void 0, function () {
4144
- var defaultImg, provider, api, tileset, settings, layer;
4144
+ var enabled, i, layer, layerMeta, defaultImg, provider, api, tileset, settings, layer;
4145
4145
  return __generator(this, function (_a) {
4146
4146
  switch (_a.label) {
4147
4147
  case 0:
4148
+ enabled = gatherEnabledImageries(viewer);
4149
+ for (i = 0; i < enabled.length; i++) {
4150
+ layer = enabled[i];
4151
+ layerMeta = layer._bMeta;
4152
+ if (layerMeta && layerMeta.tilesetId === meta.tilesetId && layerMeta.accountId === meta.accountId) {
4153
+ return [2 /*return*/, layer];
4154
+ }
4155
+ }
4148
4156
  defaultImg = meta.accountId ? null : ProjectViewTile.DefaultImagery.find(function (x) { return x.id === meta.tilesetId; });
4149
4157
  provider = null;
4150
4158
  if (!defaultImg) return [3 /*break*/, 1];
@@ -4206,6 +4214,7 @@ var TileRenderEngine;
4206
4214
  if (provider) {
4207
4215
  layer = viewer.imageryLayers.addImageryProvider(provider);
4208
4216
  layer._bMeta = meta;
4217
+ viewer.imageryLayers.lowerToBottom(layer);
4209
4218
  return [2 /*return*/, layer];
4210
4219
  }
4211
4220
  return [2 /*return*/, null];
@@ -4216,35 +4225,19 @@ var TileRenderEngine;
4216
4225
  V2.GetOrCreateLayer = GetOrCreateLayer;
4217
4226
  function Render(params) {
4218
4227
  return __awaiter(this, void 0, void 0, function () {
4219
- var _loop_2, i, curEnabled, toDisable, curEnabledArr, _loop_3, i, i, _loop_4, i;
4228
+ var i, enabled, curEnabled, toDisable, curEnabledArr, _loop_2, i, i, _loop_3, i;
4220
4229
  return __generator(this, function (_a) {
4221
4230
  switch (_a.label) {
4222
4231
  case 0:
4223
- _loop_2 = function (i) {
4224
- var enabled, source;
4225
- return __generator(this, function (_a) {
4226
- switch (_a.label) {
4227
- case 0:
4228
- enabled = params.enabled[i];
4229
- source = params.sources.find(function (x) { return x.accountId === enabled.accountId && x.tilesetId === enabled.tilesetId; });
4230
- if (!source) {
4231
- console.error("Missing source for enabled imagery.", enabled);
4232
- }
4233
- return [4 /*yield*/, GetOrCreateLayer(params.viewer, params.apiGetter, {
4234
- accountId: source.accountId,
4235
- tilesetId: source.tilesetId,
4236
- })];
4237
- case 1:
4238
- _a.sent();
4239
- return [2 /*return*/];
4240
- }
4241
- });
4242
- };
4243
4232
  i = 0;
4244
4233
  _a.label = 1;
4245
4234
  case 1:
4246
- if (!(i < params.enabled.length)) return [3 /*break*/, 4];
4247
- return [5 /*yield**/, _loop_2(i)];
4235
+ if (!(i < params.tiles.length)) return [3 /*break*/, 4];
4236
+ enabled = params.tiles[i];
4237
+ return [4 /*yield*/, GetOrCreateLayer(params.viewer, params.apiGetter, {
4238
+ accountId: enabled.accountId,
4239
+ tilesetId: enabled.tilesetId,
4240
+ })];
4248
4241
  case 2:
4249
4242
  _a.sent();
4250
4243
  _a.label = 3;
@@ -4255,10 +4248,10 @@ var TileRenderEngine;
4255
4248
  curEnabled = params.viewer.imageryLayers;
4256
4249
  toDisable = [];
4257
4250
  curEnabledArr = [];
4258
- _loop_3 = function (i) {
4251
+ _loop_2 = function (i) {
4259
4252
  var layer = curEnabled.get(i);
4260
4253
  var meta = layer === null || layer === void 0 ? void 0 : layer._bMeta;
4261
- var disable = !params.enabled.find(function (x) { return x.accountId === (meta === null || meta === void 0 ? void 0 : meta.accountId) && x.tilesetId === (meta === null || meta === void 0 ? void 0 : meta.tilesetId); });
4254
+ var disable = !params.tiles.find(function (x) { return x.accountId === (meta === null || meta === void 0 ? void 0 : meta.accountId) && x.tilesetId === (meta === null || meta === void 0 ? void 0 : meta.tilesetId); });
4262
4255
  if (disable) {
4263
4256
  toDisable.push(layer);
4264
4257
  }
@@ -4267,13 +4260,13 @@ var TileRenderEngine;
4267
4260
  }
4268
4261
  };
4269
4262
  for (i = 0; i < curEnabled.length; i++) {
4270
- _loop_3(i);
4263
+ _loop_2(i);
4271
4264
  }
4272
4265
  for (i = 0; i < toDisable.length; i++) {
4273
4266
  params.viewer.imageryLayers.remove(toDisable[i]);
4274
4267
  }
4275
- _loop_4 = function (i) {
4276
- var enabled = params.enabled[i];
4268
+ _loop_3 = function (i) {
4269
+ var enabled = params.tiles[i];
4277
4270
  var layer = curEnabledArr.find(function (x) { var _a, _b; return ((_a = x._bMeta) === null || _a === void 0 ? void 0 : _a.accountId) === enabled.accountId && ((_b = x._bMeta) === null || _b === void 0 ? void 0 : _b.tilesetId) === enabled.tilesetId; });
4278
4271
  if (layer) {
4279
4272
  params.viewer.imageryLayers.raiseToTop(layer);
@@ -4285,8 +4278,8 @@ var TileRenderEngine;
4285
4278
  layer.gamma = Number(enabled.gamma == null ? 1 : enabled.gamma);
4286
4279
  }
4287
4280
  };
4288
- for (i = 0; i < params.enabled.length; i++) {
4289
- _loop_4(i);
4281
+ for (i = 0; i < params.tiles.length; i++) {
4282
+ _loop_3(i);
4290
4283
  }
4291
4284
  return [2 /*return*/];
4292
4285
  }
@@ -4388,18 +4381,18 @@ var TileRenderEngine;
4388
4381
  switch (_b.label) {
4389
4382
  case 0:
4390
4383
  enabledMeta = (_a = params.viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a._bMeta;
4391
- if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.source.tilesetId &&
4392
- (enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.source.accountId) {
4384
+ if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.tile.tilesetId &&
4385
+ (enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.tile.accountId) {
4393
4386
  return [2 /*return*/];
4394
4387
  }
4395
- defaultTerr = params.source.accountId ? null : ProjectViewTile.DefaultTerrains.find(function (x) { return x.id === params.source.tilesetId; });
4388
+ defaultTerr = params.tile.accountId ? null : ProjectViewTile.DefaultTerrains.find(function (x) { return x.id === params.tile.tilesetId; });
4396
4389
  provider = null;
4397
4390
  if (!defaultTerr) return [3 /*break*/, 1];
4398
4391
  provider = renderDefaultTerrTile(defaultTerr.id);
4399
4392
  return [3 /*break*/, 3];
4400
4393
  case 1:
4401
- api = params.apiGetter.getApi(params.source.accountId);
4402
- return [4 /*yield*/, Tileset.Get(api, params.source.tilesetId)];
4394
+ api = params.apiGetter.getApi(params.tile.accountId);
4395
+ return [4 /*yield*/, Tileset.Get(api, params.tile.tilesetId)];
4403
4396
  case 2:
4404
4397
  tileset = _b.sent();
4405
4398
  url = void 0;
@@ -4425,8 +4418,8 @@ var TileRenderEngine;
4425
4418
  case 3:
4426
4419
  if (provider) {
4427
4420
  provider._bMeta = {
4428
- accountId: params.source.accountId,
4429
- tilesetId: params.source.tilesetId
4421
+ accountId: params.tile.accountId,
4422
+ tilesetId: params.tile.tilesetId
4430
4423
  };
4431
4424
  params.viewer.terrainProvider = provider;
4432
4425
  }
@@ -4524,11 +4517,11 @@ function renderV1(params, bookmark, view) {
4524
4517
  });
4525
4518
  }
4526
4519
  function renderV2(params, bookmark, view) {
4527
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
4520
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
4528
4521
  return __awaiter(this, void 0, void 0, function () {
4529
- var viewer, scene, vSettings, bSettings, defaults, camera, newLens, curLens, transition, pos, gOcclusion, terrain, source, imagery, curEnabled, newItemIds, _i, curEnabled_1, id;
4530
- return __generator(this, function (_u) {
4531
- switch (_u.label) {
4522
+ var viewer, scene, vSettings, bSettings, defaults, camera, newLens, curLens, transition, pos, gOcclusion, terrain, imagery, curEnabled, newItemIds, _i, curEnabled_1, id;
4523
+ return __generator(this, function (_t) {
4524
+ switch (_t.label) {
4532
4525
  case 0:
4533
4526
  viewer = params.manager.Viewer;
4534
4527
  scene = viewer.scene;
@@ -4591,19 +4584,16 @@ function renderV2(params, bookmark, view) {
4591
4584
  scene.globe.depthTestAgainstTerrain = Boolean(gOcclusion);
4592
4585
  terrain = (_o = bSettings === null || bSettings === void 0 ? void 0 : bSettings.terrain) !== null && _o !== void 0 ? _o : (_p = defaults.settings) === null || _p === void 0 ? void 0 : _p.terrain;
4593
4586
  if (!terrain) return [3 /*break*/, 2];
4594
- source = (_q = vSettings.terrains) === null || _q === void 0 ? void 0 : _q.find(function (x) { return x.accountId === terrain.accountId && x.tilesetId === terrain.tilesetId; });
4595
- if (!source) return [3 /*break*/, 2];
4596
4587
  return [4 /*yield*/, TileRenderEngine.Terrain.V2.Render({
4597
4588
  apiGetter: params.apiGetter,
4598
- enabled: terrain,
4599
- source: source,
4589
+ tile: terrain,
4600
4590
  viewer: params.manager.Viewer,
4601
4591
  })];
4602
4592
  case 1:
4603
- _u.sent();
4604
- _u.label = 2;
4593
+ _t.sent();
4594
+ _t.label = 2;
4605
4595
  case 2:
4606
- imagery = (_r = bSettings.imagery) !== null && _r !== void 0 ? _r : (_s = defaults.settings) === null || _s === void 0 ? void 0 : _s.imagery;
4596
+ imagery = (_q = bSettings.imagery) !== null && _q !== void 0 ? _q : (_r = defaults.settings) === null || _r === void 0 ? void 0 : _r.imagery;
4607
4597
  if (imagery == null) {
4608
4598
  // TODO: Need global default.
4609
4599
  imagery = [
@@ -4621,24 +4611,23 @@ function renderV2(params, bookmark, view) {
4621
4611
  }
4622
4612
  return [4 /*yield*/, TileRenderEngine.Map.V2.Render({
4623
4613
  apiGetter: params.apiGetter,
4624
- enabled: imagery,
4625
- sources: vSettings.imageries,
4614
+ tiles: imagery,
4626
4615
  viewer: params.manager.Viewer,
4627
4616
  })];
4628
4617
  case 3:
4629
- _u.sent();
4618
+ _t.sent();
4630
4619
  curEnabled = params.manager.GetEnabledItemIds();
4631
- newItemIds = (_t = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _t !== void 0 ? _t : [];
4620
+ newItemIds = (_s = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _s !== void 0 ? _s : [];
4632
4621
  _i = 0, curEnabled_1 = curEnabled;
4633
- _u.label = 4;
4622
+ _t.label = 4;
4634
4623
  case 4:
4635
4624
  if (!(_i < curEnabled_1.length)) return [3 /*break*/, 7];
4636
4625
  id = curEnabled_1[_i];
4637
4626
  if (!(newItemIds.indexOf(id) === -1)) return [3 /*break*/, 6];
4638
4627
  return [4 /*yield*/, params.manager.RemoveItemById(id)];
4639
4628
  case 5:
4640
- _u.sent();
4641
- _u.label = 6;
4629
+ _t.sent();
4630
+ _t.label = 6;
4642
4631
  case 6:
4643
4632
  _i++;
4644
4633
  return [3 /*break*/, 4];
@@ -4649,8 +4638,8 @@ function renderV2(params, bookmark, view) {
4649
4638
  manager: params.manager,
4650
4639
  }, params.viewId, params.bookmarkId)];
4651
4640
  case 8:
4652
- _u.sent();
4653
- _u.label = 9;
4641
+ _t.sent();
4642
+ _t.label = 9;
4654
4643
  case 9: return [2 /*return*/];
4655
4644
  }
4656
4645
  });
@@ -4903,6 +4892,44 @@ var ViewUtils;
4903
4892
  return "flatterrain";
4904
4893
  }
4905
4894
  ViewUtils.GatherLegacyTerrainTile = GatherLegacyTerrainTile;
4895
+ function GatherMapTiles(viewer) {
4896
+ var imagery = viewer.imageryLayers;
4897
+ var tiles = [];
4898
+ var _loop_1 = function (i) {
4899
+ var provider = imagery.get(i);
4900
+ if (provider._bMeta) {
4901
+ var idCombo_1 = provider._bMeta.accountId + provider._bMeta.tilesetId;
4902
+ if (!tiles.find(function (x) { return x.accountId + x.tilesetId === idCombo_1; })) {
4903
+ tiles.push({
4904
+ accountId: provider._bMeta.accountId,
4905
+ tilesetId: provider._bMeta.tilesetId,
4906
+ alpha: provider.alpha,
4907
+ brightness: provider.brightness,
4908
+ contrast: provider.contrast,
4909
+ hue: provider.hue,
4910
+ saturation: provider.saturation,
4911
+ gamma: provider.gamma
4912
+ });
4913
+ }
4914
+ }
4915
+ };
4916
+ for (var i = 0; i < imagery.length; i++) {
4917
+ _loop_1(i);
4918
+ }
4919
+ return tiles;
4920
+ }
4921
+ ViewUtils.GatherMapTiles = GatherMapTiles;
4922
+ function GatherTerrainTile(viewer) {
4923
+ var provider = viewer.terrainProvider;
4924
+ if (provider._bMeta) {
4925
+ return {
4926
+ accountId: provider._bMeta.accountId,
4927
+ tilesetId: provider._bMeta.tilesetId,
4928
+ };
4929
+ }
4930
+ return null;
4931
+ }
4932
+ ViewUtils.GatherTerrainTile = GatherTerrainTile;
4906
4933
  })(ViewUtils || (ViewUtils = {}));
4907
4934
 
4908
4935
  export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, MeasureAddon, SharedGetters, ViewUtils };