bruce-cesium 5.1.1 → 5.1.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 { 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, DataLab, EntitySource, MenuItem, EntityRelation, ProgramKey, ProjectView, ProjectViewBookmark, Camera, ProjectViewLegacyTile, EntityAttachment, EntityAttachmentType, EntityAttribute, 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, ClassificationType, ArcType, CornerType, ShadowMode, ConstantProperty, ConstantPositionProperty, HorizontalOrigin, VerticalOrigin, PolygonHierarchy, PolylineGraphics, ColorMaterialProperty, ColorBlendMode, HeadingPitchRoll, Transforms, Model, SceneMode, Primitive, Cesium3DTileFeature, GeoJsonDataSource, Cesium3DTileColorBlendMode, HeadingPitchRange, Cesium3DTileStyle, Ion, KmlDataSource, SceneTransforms, OrthographicFrustum, EasingFunction, NearFarScalar, EllipsoidTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, UrlTemplateImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, TileMapServiceImageryProvider, IonImageryProvider, CesiumTerrainProvider, Cesium3DTileset, Matrix4, Matrix3, IonResource, CesiumInspector, defined, ClockRange, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, BoundingSphere, GeometryInstance, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics, PolylineDashMaterialProperty, Quaternion, ScreenSpaceEventHandler, ScreenSpaceEventType, CzmlDataSource, Intersect, Fullscreen } from 'cesium';
3
+ import { Cartographic, Cartesian2, Math as Math$1, Cartesian3, CallbackProperty, Color, HeightReference, Rectangle, JulianDate, Entity, DistanceDisplayCondition, HorizontalOrigin, VerticalOrigin, ConstantProperty, ClassificationType, ConstantPositionProperty, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, ColorMaterialProperty, ColorBlendMode, HeadingPitchRoll, Transforms, Model, Primitive, Cesium3DTileFeature, SceneMode, GeoJsonDataSource, Cesium3DTileColorBlendMode, HeadingPitchRange, Cesium3DTileStyle, Ion, KmlDataSource, SceneTransforms, OrthographicFrustum, EasingFunction, NearFarScalar, EllipsoidTerrainProvider, CesiumInspector, defined, ClockRange, Cesium3DTileset, Matrix4, Matrix3, IonResource, IonImageryProvider, createWorldImagery, createWorldImageryAsync, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, UrlTemplateImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, TileMapServiceImageryProvider, CesiumTerrainProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, ModelGraphics, PolygonGraphics, CorridorGraphics, PointGraphics, BillboardGraphics, EllipseGraphics, PolylineDashMaterialProperty, BoundingSphere, GeometryInstance, Quaternion, ScreenSpaceEventHandler, ScreenSpaceEventType, CzmlDataSource, Intersect, Fullscreen } from 'cesium';
4
4
 
5
5
  const TIME_LAG = 300;
6
6
  const POSITION_CHECK_TIMER = 950;
@@ -21911,8 +21911,6 @@ function assertIteration(viewer, iteration) {
21911
21911
  const suffix = iteration.includes("imagery") ? "imagery" : "terrain";
21912
21912
  return viewer[ITERATION_KEY + suffix] === iteration;
21913
21913
  }
21914
- const DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
21915
- const DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
21916
21914
  const DEFAULT_STAMEN_KEY = "a652e5f2-8d9e-4706-a9d9-d5daa7d4c89e";
21917
21915
  const DEFAULT_THUNDERFOREST_KEY = "c3c1b64fbb5240be8e0d284a01e33107";
21918
21916
  const re = /[\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E3C-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FCD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA698-\uA69E\uA6F8-\uA6FF\uA78F\uA794-\uA79F\uA7AB-\uA7F7\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C5-\uA8CD\uA8DA-\uA8DF\uA8FC-\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9E0-\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAA7C-\uAA7F\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F-\uABBF\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE27-\uFE2F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]/g;
@@ -22056,11 +22054,11 @@ function gatherEnabledImageries(viewer) {
22056
22054
  }
22057
22055
  return layers;
22058
22056
  }
22059
- async function findKey(apiGetter, keyId, defaultKey) {
22057
+ async function findKey(apiGetter, accountId, keyId) {
22060
22058
  let key = null;
22061
22059
  try {
22062
22060
  const { programKey: pKey } = await ProgramKey.Get({
22063
- api: apiGetter.getApi(),
22061
+ api: apiGetter.getApi(accountId),
22064
22062
  programId: keyId
22065
22063
  });
22066
22064
  key = pKey === null || pKey === void 0 ? void 0 : pKey.Key;
@@ -22076,8 +22074,28 @@ async function findKey(apiGetter, keyId, defaultKey) {
22076
22074
  console.error(e);
22077
22075
  }
22078
22076
  }
22079
- return key && key.length ? key : defaultKey;
22077
+ if (key && key.length) {
22078
+ return key;
22079
+ }
22080
+ // Default to template one if the account doesn't have a key.
22081
+ else if (Api.TEMPLATE_ACCOUNT_ID != accountId) {
22082
+ return findKey(apiGetter, Api.TEMPLATE_ACCOUNT_ID, keyId);
22083
+ }
22084
+ // No nice UI yet for setting it so we'll have a hard-coded one for the time being.
22085
+ else if (keyId == ProgramKey.EProgramId.Thunderforest) {
22086
+ return DEFAULT_THUNDERFOREST_KEY;
22087
+ }
22088
+ // Same story for stamen.
22089
+ else if (keyId == ProgramKey.EProgramId.StadiaMaps) {
22090
+ return DEFAULT_STAMEN_KEY;
22091
+ }
22092
+ return null;
22080
22093
  }
22094
+ // Constants for the ion assets.
22095
+ // Older CesiumJS doesn't have these so we have to define them here.
22096
+ const CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL = 2;
22097
+ const CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL_WITH_LABELS = 3;
22098
+ const CESIUM_ION_WORLD_IMAGERY_STYLE_ROAD = 4;
22081
22099
  /**
22082
22100
  * Constructs an imagery provider for a default imagery type.
22083
22101
  * Warning: This does not add it to the viewer.
@@ -22086,73 +22104,114 @@ async function findKey(apiGetter, keyId, defaultKey) {
22086
22104
  * @returns
22087
22105
  */
22088
22106
  async function renderDefaultMapTile(apiGetter, id) {
22107
+ var _a, _b, _c;
22089
22108
  const CESIUM = Cesium;
22090
22109
  let provider;
22091
22110
  switch (id) {
22092
22111
  case ProjectViewTile.EDefaultImagery.BingMapsAerial:
22093
22112
  // Handling difference between old and new cesium versions.
22094
- if (BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
22113
+ if ((_a = IonImageryProvider) === null || _a === void 0 ? void 0 : _a["fromAssetId"]) {
22114
+ provider = CESIUM.IonImageryProvider.fromAssetId(CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL);
22115
+ break;
22116
+ }
22117
+ else if (createWorldImagery) {
22118
+ // No style is needed for this one.
22119
+ provider = CESIUM.createWorldImagery();
22120
+ break;
22121
+ }
22122
+ else if (createWorldImageryAsync) {
22123
+ provider = await CESIUM.createWorldImageryAsync();
22124
+ break;
22125
+ }
22126
+ else if (BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
22095
22127
  provider = await CESIUM.BingMapsImageryProvider.fromUrl("https://dev.virtualearth.net", {
22096
22128
  mapStyle: BingMapsStyle.AERIAL,
22097
- key: await findKey(apiGetter, ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)
22129
+ key: await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.BingMaps)
22098
22130
  });
22131
+ break;
22099
22132
  }
22100
22133
  else {
22101
22134
  provider = new CESIUM.BingMapsImageryProvider({
22102
22135
  url: "https://dev.virtualearth.net",
22103
22136
  mapStyle: BingMapsStyle.AERIAL,
22104
- key: await findKey(apiGetter, ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)
22137
+ key: await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.BingMaps)
22105
22138
  });
22139
+ break;
22106
22140
  }
22107
22141
  break;
22108
22142
  case ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels:
22109
22143
  // Handling difference between old and new cesium versions.
22110
- if (BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
22144
+ if ((_b = IonImageryProvider) === null || _b === void 0 ? void 0 : _b["fromAssetId"]) {
22145
+ provider = CESIUM.IonImageryProvider.fromAssetId(CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL_WITH_LABELS);
22146
+ break;
22147
+ }
22148
+ else if (createWorldImagery) {
22149
+ provider = CESIUM.createWorldImagery({
22150
+ style: CESIUM_ION_WORLD_IMAGERY_STYLE_AERIAL_WITH_LABELS
22151
+ });
22152
+ break;
22153
+ }
22154
+ else if (BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
22111
22155
  provider = await CESIUM.BingMapsImageryProvider.fromUrl("https://dev.virtualearth.net", {
22112
22156
  mapStyle: BingMapsStyle.AERIAL_WITH_LABELS,
22113
- key: await findKey(apiGetter, ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)
22157
+ key: await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.BingMaps)
22114
22158
  });
22159
+ break;
22115
22160
  }
22116
22161
  else {
22117
22162
  provider = new CESIUM.BingMapsImageryProvider({
22118
22163
  url: "https://dev.virtualearth.net",
22119
22164
  mapStyle: BingMapsStyle.AERIAL_WITH_LABELS,
22120
- key: await findKey(apiGetter, ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)
22165
+ key: await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.BingMaps)
22121
22166
  });
22167
+ break;
22122
22168
  }
22123
22169
  break;
22124
22170
  case ProjectViewTile.EDefaultImagery.BingMapsRoads:
22125
22171
  // Handling difference between old and new cesium versions.
22126
- if (BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
22172
+ if ((_c = IonImageryProvider) === null || _c === void 0 ? void 0 : _c["fromAssetId"]) {
22173
+ provider = CESIUM.IonImageryProvider.fromAssetId(CESIUM_ION_WORLD_IMAGERY_STYLE_ROAD);
22174
+ break;
22175
+ }
22176
+ else if (createWorldImagery) {
22177
+ provider = CESIUM.createWorldImagery({
22178
+ style: CESIUM_ION_WORLD_IMAGERY_STYLE_ROAD
22179
+ });
22180
+ break;
22181
+ }
22182
+ // Handling difference between old and new cesium versions.
22183
+ else if (BingMapsImageryProvider.hasOwnProperty("fromUrl")) {
22127
22184
  provider = await CESIUM.BingMapsImageryProvider.fromUrl("https://dev.virtualearth.net", {
22128
22185
  mapStyle: BingMapsStyle.ROAD_ON_DEMAND,
22129
- key: await findKey(apiGetter, ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)
22186
+ key: await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.BingMaps)
22130
22187
  });
22188
+ break;
22131
22189
  }
22132
22190
  else {
22133
22191
  provider = new CESIUM.BingMapsImageryProvider({
22134
22192
  url: "https://dev.virtualearth.net",
22135
22193
  mapStyle: BingMapsStyle.ROAD_ON_DEMAND,
22136
- key: await findKey(apiGetter, ProgramKey.EProgramId.BingMaps, DEFAULT_BING_KEY)
22194
+ key: await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.BingMaps)
22137
22195
  });
22196
+ break;
22138
22197
  }
22139
22198
  break;
22140
22199
  case ProjectViewTile.EDefaultImagery.MapboxSatellite:
22141
22200
  provider = new MapboxImageryProvider({
22142
22201
  mapId: "mapbox.satellite",
22143
- accessToken: await findKey(apiGetter, ProgramKey.EProgramId.Mapbox, DEFAULT_MAPBOX_KEY)
22202
+ accessToken: await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.Mapbox)
22144
22203
  });
22145
22204
  break;
22146
22205
  case ProjectViewTile.EDefaultImagery.MapBoxStreets:
22147
22206
  provider = new MapboxStyleImageryProvider({
22148
22207
  styleId: "satellite-streets-v11",
22149
- accessToken: await findKey(apiGetter, ProgramKey.EProgramId.Mapbox, DEFAULT_MAPBOX_KEY)
22208
+ accessToken: await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.Mapbox)
22150
22209
  });
22151
22210
  break;
22152
22211
  case ProjectViewTile.EDefaultImagery.MapBoxStreetsClassic:
22153
22212
  provider = new MapboxStyleImageryProvider({
22154
22213
  styleId: "streets-v11",
22155
- accessToken: await findKey(apiGetter, ProgramKey.EProgramId.Mapbox, DEFAULT_MAPBOX_KEY)
22214
+ accessToken: await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.Mapbox)
22156
22215
  });
22157
22216
  break;
22158
22217
  case ProjectViewTile.EDefaultImagery.EsriWorldImagery:
@@ -22210,35 +22269,35 @@ async function renderDefaultMapTile(apiGetter, id) {
22210
22269
  break;
22211
22270
  case ProjectViewTile.EDefaultImagery.StamenWaterColor:
22212
22271
  provider = provider = new UrlTemplateImageryProvider({
22213
- url: `https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg?api_key=${await findKey(apiGetter, ProgramKey.EProgramId.StadiaMaps, DEFAULT_STAMEN_KEY)}`,
22272
+ url: `https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg?api_key=${await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.StadiaMaps)}`,
22214
22273
  credit: '© Stadia Maps, © OpenMapTiles © OpenStreetMap contributors',
22215
22274
  maximumLevel: 16
22216
22275
  });
22217
22276
  break;
22218
22277
  case ProjectViewTile.EDefaultImagery.StamenToner:
22219
22278
  provider = new UrlTemplateImageryProvider({
22220
- url: `https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png?api_key=${await findKey(apiGetter, ProgramKey.EProgramId.StadiaMaps, DEFAULT_STAMEN_KEY)}`,
22279
+ url: `https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png?api_key=${await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.StadiaMaps)}`,
22221
22280
  credit: '© Stadia Maps, © OpenMapTiles © OpenStreetMap contributors',
22222
22281
  maximumLevel: 18
22223
22282
  });
22224
22283
  break;
22225
22284
  case ProjectViewTile.EDefaultImagery.ThunderforestCycle:
22226
22285
  provider = new UrlTemplateImageryProvider({
22227
- url: `https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, ProgramKey.EProgramId.Thunderforest, DEFAULT_THUNDERFOREST_KEY)}`,
22286
+ url: `https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.Thunderforest)}`,
22228
22287
  credit: '© Thunderforest, © OpenStreetMap contributors',
22229
22288
  maximumLevel: 22
22230
22289
  });
22231
22290
  break;
22232
22291
  case ProjectViewTile.EDefaultImagery.ThunderforestTransport:
22233
22292
  provider = new UrlTemplateImageryProvider({
22234
- url: `https://tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, ProgramKey.EProgramId.Thunderforest, DEFAULT_THUNDERFOREST_KEY)}`,
22293
+ url: `https://tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.Thunderforest)}`,
22235
22294
  credit: '© Thunderforest, © OpenStreetMap contributors',
22236
22295
  maximumLevel: 22
22237
22296
  });
22238
22297
  break;
22239
22298
  case ProjectViewTile.EDefaultImagery.ThunderforestLandscape:
22240
22299
  provider = new UrlTemplateImageryProvider({
22241
- url: `https://tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, ProgramKey.EProgramId.Thunderforest, DEFAULT_THUNDERFOREST_KEY)}`,
22300
+ url: `https://tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=${await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.Thunderforest)}`,
22242
22301
  credit: '© Thunderforest, © OpenStreetMap contributors',
22243
22302
  maximumLevel: 22
22244
22303
  });
@@ -22257,6 +22316,10 @@ async function renderDefaultMapTile(apiGetter, id) {
22257
22316
  });
22258
22317
  break;
22259
22318
  }
22319
+ // If the provider is a promise then we'll wait for it.
22320
+ if (provider instanceof Promise) {
22321
+ provider = await provider;
22322
+ }
22260
22323
  return provider;
22261
22324
  }
22262
22325
  /**
@@ -22418,7 +22481,7 @@ var TileRenderEngine;
22418
22481
  });
22419
22482
  break;
22420
22483
  case "MapBoxImagery":
22421
- var mapboxKey = tile.ProgramKey ? tile.ProgramKey : await findKey(params.apiGetter, ProgramKey.EProgramId.Mapbox, null);
22484
+ var mapboxKey = tile.ProgramKey ? tile.ProgramKey : await findKey(params.apiGetter, params.apiGetter.accountId, ProgramKey.EProgramId.Mapbox);
22422
22485
  provider = new UrlTemplateImageryProvider({
22423
22486
  url: "https://api.mapbox.com/styles/v1/"
22424
22487
  + tile.MapBoxUsername + "/" + tile.MapBoxID +
@@ -22587,7 +22650,6 @@ var TileRenderEngine;
22587
22650
  ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels,
22588
22651
  ProjectViewTile.EDefaultImagery.BingMapsRoads
22589
22652
  ];
22590
- const BING_MAPS_OPTIONS = [].concat(NEEDS_CESIUM_TOKEN);
22591
22653
  // If we need a cesium token, and we don't have one, then we can't render this.
22592
22654
  let shouldCreate = true;
22593
22655
  if (NEEDS_CESIUM_TOKEN.includes(defaultImg.id)) {
@@ -22595,43 +22657,24 @@ var TileRenderEngine;
22595
22657
  }
22596
22658
  if (shouldCreate) {
22597
22659
  try {
22598
- if (BING_MAPS_OPTIONS.includes(defaultImg.id)) {
22599
- throw new Error("Bing Maps is dead. Crashing now to avoid waiting 30 seconds for it to timeout.");
22600
- }
22601
22660
  provider = await renderDefaultMapTile(apiGetter, defaultImg.id);
22602
22661
  }
22603
22662
  catch (e) {
22604
22663
  console.error(e);
22605
- // Dead. As of 30-july-2024 bing died so we will fall back to a nice default.
22606
- // Trying to use mapbox satellite as a fallback because it looks similar.
22607
- if (defaultImg.id === ProjectViewTile.EDefaultImagery.BingMapsAerial) {
22608
- provider = await renderDefaultMapTile(apiGetter, ProjectViewTile.EDefaultImagery.MapboxSatellite);
22609
- ViewerUtils.GetEventTracker(params.viewer).Warn(ViewerEventTracker.EDomain.TileImagery, "Bing Maps Aerial failed to load. Falling back to Mapbox Satellite.", {
22610
- tilesetId: ProjectViewTile.EDefaultImagery.BingMapsAerial,
22611
- exception: e
22612
- });
22613
- }
22614
- // Trying to use mapbox streets as a fallback because it looks similar.
22615
- else if (defaultImg.id === ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels) {
22616
- provider = await renderDefaultMapTile(apiGetter, ProjectViewTile.EDefaultImagery.MapBoxStreets);
22617
- ViewerUtils.GetEventTracker(params.viewer).Warn(ViewerEventTracker.EDomain.TileImagery, "Bing Maps Aerial with Labels failed to load. Falling back to Mapbox Streets.", {
22618
- tilesetId: ProjectViewTile.EDefaultImagery.BingMapsAerialWithLabels,
22619
- exception: e
22620
- });
22621
- }
22622
- // Trying to use openstreetmap as a fallback because it looks similar.
22623
- else if (defaultImg.id === ProjectViewTile.EDefaultImagery.BingMapsRoads) {
22624
- provider = await renderDefaultMapTile(apiGetter, ProjectViewTile.EDefaultImagery.OpenStreetMap);
22625
- ViewerUtils.GetEventTracker(params.viewer).Warn(ViewerEventTracker.EDomain.TileImagery, "Bing Maps Roads failed to load. Falling back to OpenStreetMap.", {
22626
- tilesetId: ProjectViewTile.EDefaultImagery.BingMapsRoads,
22627
- exception: e
22628
- });
22629
- }
22630
- else {
22631
- throw e;
22632
- }
22664
+ ViewerUtils.GetEventTracker(params.viewer).Warn(ViewerEventTracker.EDomain.TileImagery, "Imagery failed to load.", {
22665
+ tilesetId: meta.tilesetId,
22666
+ accountId: meta.accountId,
22667
+ exception: e
22668
+ });
22633
22669
  }
22634
22670
  }
22671
+ else {
22672
+ ViewerUtils.GetEventTracker(params.viewer).Warn(ViewerEventTracker.EDomain.TileImagery, "Imagery failed to load because it requires a valid Cesium Ion Token to be set.", {
22673
+ tilesetId: meta.tilesetId,
22674
+ accountId: meta.accountId,
22675
+ e: new Error("No Cesium Ion Token set.")
22676
+ });
22677
+ }
22635
22678
  }
22636
22679
  else {
22637
22680
  const api = apiGetter.getApi(meta.accountId);
@@ -22693,7 +22736,7 @@ var TileRenderEngine;
22693
22736
  const settings = tileset.settings;
22694
22737
  switch (settings.mapType) {
22695
22738
  case Tileset.Settings.EExternalMapType.CesiumIon:
22696
- var cesiumIonKey = settings.key ? settings.key : await findKey(apiGetter, ProgramKey.EProgramId.CesiumIon, null);
22739
+ var cesiumIonKey = settings.key ? settings.key : await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.CesiumIon);
22697
22740
  if (IonImageryProvider.hasOwnProperty("fromAssetId")) {
22698
22741
  provider = await CESIUM.IonImageryProvider.fromAssetId(Number(settings.externalId), {
22699
22742
  accessToken: cesiumIonKey
@@ -22707,7 +22750,7 @@ var TileRenderEngine;
22707
22750
  }
22708
22751
  break;
22709
22752
  case Tileset.Settings.EExternalMapType.MapBoxImagery:
22710
- var mapboxKey = settings.key ? settings.key : await findKey(apiGetter, ProgramKey.EProgramId.Mapbox, null);
22753
+ var mapboxKey = settings.key ? settings.key : await findKey(apiGetter, apiGetter.accountId, ProgramKey.EProgramId.Mapbox);
22711
22754
  provider = new UrlTemplateImageryProvider({
22712
22755
  url: "https://api.mapbox.com/styles/v1/"
22713
22756
  + settings.account + "/" + settings.styleId +
@@ -29736,7 +29779,7 @@ class WidgetViewBar extends Widget.AWidget {
29736
29779
  }
29737
29780
  }
29738
29781
 
29739
- const VERSION = "5.1.1";
29782
+ const VERSION = "5.1.2";
29740
29783
 
29741
29784
  export { VERSION, CesiumViewMonitor, ViewerUtils, ViewerEventTracker, MenuItemManager, isHistoricMetadataChanged, EntityRenderEngine, EntityRenderEnginePoint, EntityRenderEnginePolyline, EntityRenderEnginePolygon, EntityRenderEngineModel3d, MenuItemCreator, VisualsRegister, RenderManager, EntitiesIdsRenderManager, DataLabRenderManager, 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, Walkthrough, 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 };
29742
29785
  //# sourceMappingURL=bruce-cesium.es5.js.map