bruce-cesium 2.1.2 → 2.1.4

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.
@@ -4826,7 +4826,7 @@
4826
4826
  }
4827
4827
  };
4828
4828
  var pos3d = void 0;
4829
- if (location.latitude != null && location.longitude != null) {
4829
+ if ((location === null || location === void 0 ? void 0 : location.latitude) != null && (location === null || location === void 0 ? void 0 : location.longitude) != null) {
4830
4830
  pos3d = Cesium.Cartesian3.fromDegrees(EnsureNumber(location.longitude), EnsureNumber(location.latitude), EnsureNumber(location.altitude));
4831
4831
  }
4832
4832
  if (!pos3d) {
@@ -4895,6 +4895,11 @@
4895
4895
  switch (_a.label) {
4896
4896
  case 0:
4897
4897
  api = params.apiGetter.getApi(params.apiGetter.accountId);
4898
+ // Ensure regional url is loaded.
4899
+ return [4 /*yield*/, api.Loading];
4900
+ case 1:
4901
+ // Ensure regional url is loaded.
4902
+ _a.sent();
4898
4903
  loadUrl = params.tileset.loadUrl;
4899
4904
  // CDN url must match the api getter account id.
4900
4905
  if (!params.accountId || params.accountId == params.apiGetter.accountId) {
@@ -4905,13 +4910,13 @@
4905
4910
  loadUrl += "&generation=" + params.tileset.generateVersion;
4906
4911
  }
4907
4912
  }
4908
- if (!(params.tileset.type == bruceModels.Tileset.EType.Cad)) return [3 /*break*/, 2];
4913
+ if (!(params.tileset.type == bruceModels.Tileset.EType.Cad)) return [3 /*break*/, 3];
4909
4914
  return [4 /*yield*/, createTileset(loadUrl ? loadUrl : bruceModels.Tileset.GetPublicFileUrl({
4910
4915
  api: api,
4911
4916
  tilesetId: params.tileset.id,
4912
4917
  file: "tileset.json"
4913
4918
  }) + "?generation=" + params.tileset.generateVersion, null)];
4914
- case 1:
4919
+ case 2:
4915
4920
  cTileset_1 = _a.sent();
4916
4921
  params.viewer.scene.primitives.add(cTileset_1);
4917
4922
  cTileset_1.readyPromise.then(function () {
@@ -4941,25 +4946,25 @@
4941
4946
  }
4942
4947
  });
4943
4948
  return [2 /*return*/, cTileset_1];
4944
- case 2:
4945
- if (!(params.tileset.type === bruceModels.Tileset.EType.EntitiesSet)) return [3 /*break*/, 4];
4949
+ case 3:
4950
+ if (!(params.tileset.type === bruceModels.Tileset.EType.EntitiesSet)) return [3 /*break*/, 5];
4946
4951
  return [4 /*yield*/, createTileset(loadUrl ? loadUrl : bruceModels.Tileset.GetPublicFileUrl({
4947
4952
  api: api,
4948
4953
  tilesetId: params.tileset.id,
4949
4954
  file: "tileset.json"
4950
4955
  }) + "?generation=" + params.tileset.generateVersion, null)];
4951
- case 3:
4956
+ case 4:
4952
4957
  cTileset = _a.sent();
4953
4958
  params.viewer.scene.primitives.add(cTileset);
4954
4959
  return [2 /*return*/, cTileset];
4955
- case 4:
4956
- if (!(params.tileset.type == bruceModels.Tileset.EType.PointCloud)) return [3 /*break*/, 6];
4960
+ case 5:
4961
+ if (!(params.tileset.type == bruceModels.Tileset.EType.PointCloud)) return [3 /*break*/, 7];
4957
4962
  return [4 /*yield*/, createTileset(loadUrl ? loadUrl : bruceModels.Tileset.GetPublicFileUrl({
4958
4963
  api: api,
4959
4964
  tilesetId: params.tileset.id,
4960
4965
  file: "tileset.json"
4961
4966
  }) + "?generation=" + params.tileset.generateVersion, null)];
4962
- case 5:
4967
+ case 6:
4963
4968
  cTileset_2 = _a.sent();
4964
4969
  params.viewer.scene.primitives.add(cTileset_2);
4965
4970
  cTileset_2.readyPromise.then(function () {
@@ -4989,7 +4994,7 @@
4989
4994
  }
4990
4995
  });
4991
4996
  return [2 /*return*/, cTileset_2];
4992
- case 6: throw ("Not implemented.");
4997
+ case 7: throw ("Not implemented.");
4993
4998
  }
4994
4999
  });
4995
5000
  });
@@ -8641,7 +8646,7 @@
8641
8646
  (function (Navigator) {
8642
8647
  function GetOrCreateLayer(params) {
8643
8648
  return __awaiter(this, void 0, void 0, function () {
8644
- var viewer, apiGetter, meta, enabled, i, layer, layerMeta, defaultImg, provider, api, tileset, settings, _a, _b, _c, mapboxKey, _d, layer;
8649
+ var viewer, apiGetter, meta, enabled, i, layer, layerMeta, defaultImg, provider, api, tileset, boundaries, settings, minLat, maxLat, minLon, maxLon, minLevel, maxLevel, hasLevels, settings_1, _a, _b, _c, mapboxKey, _d, layer;
8645
8650
  var _e;
8646
8651
  return __generator(this, function (_f) {
8647
8652
  switch (_f.label) {
@@ -8664,90 +8669,131 @@
8664
8669
  return [4 /*yield*/, renderDefaultMapTile(apiGetter, defaultImg.id)];
8665
8670
  case 1:
8666
8671
  provider = _f.sent();
8667
- return [3 /*break*/, 15];
8672
+ return [3 /*break*/, 16];
8668
8673
  case 2:
8669
8674
  api = apiGetter.getApi(meta.accountId);
8675
+ // Ensure regional url is loaded.
8676
+ // When loading stuff in the same account as the default it's likely already loaded,
8677
+ // but if we just made an API instance for some external account then it won't be loaded yet.
8678
+ return [4 /*yield*/, api.Loading];
8679
+ case 3:
8680
+ // Ensure regional url is loaded.
8681
+ // When loading stuff in the same account as the default it's likely already loaded,
8682
+ // but if we just made an API instance for some external account then it won't be loaded yet.
8683
+ _f.sent();
8670
8684
  return [4 /*yield*/, bruceModels.Tileset.Get({
8671
8685
  api: api,
8672
8686
  tilesetId: meta.tilesetId
8673
8687
  })];
8674
- case 3:
8688
+ case 4:
8675
8689
  tileset = (_f.sent()).tileset;
8676
- if (!(tileset.type === bruceModels.Tileset.EType.GeoMap)) return [3 /*break*/, 4];
8690
+ boundaries = undefined;
8691
+ settings = tileset === null || tileset === void 0 ? void 0 : tileset.settings;
8692
+ if (settings && settings.boundaries) {
8693
+ minLat = settings.boundaries.minLatitude;
8694
+ maxLat = settings.boundaries.maxLatitude;
8695
+ minLon = settings.boundaries.minLongitude;
8696
+ maxLon = settings.boundaries.maxLongitude;
8697
+ boundaries = Cesium.Rectangle.fromDegrees(minLon, minLat, maxLon, maxLat);
8698
+ }
8699
+ minLevel = settings === null || settings === void 0 ? void 0 : settings.levelMin;
8700
+ maxLevel = settings === null || settings === void 0 ? void 0 : settings.levelMax;
8701
+ hasLevels = !isNaN(minLevel) && !isNaN(maxLevel);
8702
+ if (!(tileset.type === bruceModels.Tileset.EType.GeoMap)) return [3 /*break*/, 5];
8677
8703
  provider = new Cesium.TileMapServiceImageryProvider({
8678
8704
  url: bruceModels.Tileset.GetPublicFileUrl({
8679
8705
  api: api,
8680
8706
  tilesetId: meta.tilesetId,
8681
- file: ""
8707
+ file: "",
8708
+ viaCdn: true,
8709
+ viaCdnCacheToken: tileset.generateVersion
8682
8710
  }),
8683
- fileExtension: "png"
8711
+ fileExtension: "png",
8712
+ // Tested to not cause increased lag.
8713
+ rectangle: boundaries,
8714
+ maximumLevel: hasLevels ? maxLevel : undefined,
8715
+ minimumLevel: hasLevels ? minLevel : undefined,
8684
8716
  });
8685
- return [3 /*break*/, 15];
8686
- case 4:
8687
- if (!(tileset.type === bruceModels.Tileset.EType.ExternalGeoMap)) return [3 /*break*/, 14];
8688
- settings = tileset.settings;
8689
- _a = settings.mapType;
8717
+ return [3 /*break*/, 16];
8718
+ case 5:
8719
+ if (!(tileset.type === bruceModels.Tileset.EType.ExternalGeoMap)) return [3 /*break*/, 15];
8720
+ settings_1 = tileset.settings;
8721
+ _a = settings_1.mapType;
8690
8722
  switch (_a) {
8691
- case bruceModels.Tileset.Settings.EExternalMapType.CesiumIon: return [3 /*break*/, 5];
8692
- case bruceModels.Tileset.Settings.EExternalMapType.MapBoxImagery: return [3 /*break*/, 7];
8693
- case bruceModels.Tileset.Settings.EExternalMapType.OpenStreetMapImagery: return [3 /*break*/, 11];
8694
- case bruceModels.Tileset.Settings.EExternalMapType.TileMapImagery: return [3 /*break*/, 12];
8723
+ case bruceModels.Tileset.Settings.EExternalMapType.CesiumIon: return [3 /*break*/, 6];
8724
+ case bruceModels.Tileset.Settings.EExternalMapType.MapBoxImagery: return [3 /*break*/, 8];
8725
+ case bruceModels.Tileset.Settings.EExternalMapType.OpenStreetMapImagery: return [3 /*break*/, 12];
8726
+ case bruceModels.Tileset.Settings.EExternalMapType.TileMapImagery: return [3 /*break*/, 13];
8695
8727
  }
8696
- return [3 /*break*/, 13];
8697
- case 5:
8728
+ return [3 /*break*/, 14];
8729
+ case 6:
8698
8730
  _c = (_b = Cesium.IonImageryProvider).bind;
8699
8731
  _e = {
8700
- assetId: settings.ionId
8732
+ assetId: settings_1.ionId
8701
8733
  };
8702
8734
  return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.CesiumIon, null)];
8703
- case 6:
8735
+ case 7:
8704
8736
  provider = new (_c.apply(_b, [void 0, (_e.accessToken = _f.sent(),
8705
8737
  _e)]))();
8706
- return [3 /*break*/, 13];
8707
- case 7:
8708
- if (!settings.mapBoxKey) return [3 /*break*/, 8];
8709
- _d = settings.mapBoxKey;
8710
- return [3 /*break*/, 10];
8711
- case 8: return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.Mapbox, null)];
8712
- case 9:
8713
- _d = _f.sent();
8714
- _f.label = 10;
8738
+ return [3 /*break*/, 14];
8739
+ case 8:
8740
+ if (!settings_1.mapBoxKey) return [3 /*break*/, 9];
8741
+ _d = settings_1.mapBoxKey;
8742
+ return [3 /*break*/, 11];
8743
+ case 9: return [4 /*yield*/, findKey(apiGetter, bruceModels.ProgramKey.EProgramId.Mapbox, null)];
8715
8744
  case 10:
8745
+ _d = _f.sent();
8746
+ _f.label = 11;
8747
+ case 11:
8716
8748
  mapboxKey = _d;
8717
8749
  provider = new Cesium.UrlTemplateImageryProvider({
8718
8750
  url: "https://api.mapbox.com/styles/v1/"
8719
- + settings.mapBoxAccount + "/" + settings.mapBoxStyleId +
8751
+ + settings_1.mapBoxAccount + "/" + settings_1.mapBoxStyleId +
8720
8752
  "/tiles/256/{z}/{x}/{y}?access_token="
8721
8753
  + mapboxKey
8722
8754
  });
8723
- return [3 /*break*/, 13];
8724
- case 11:
8755
+ return [3 /*break*/, 14];
8756
+ case 12:
8725
8757
  provider = new Cesium.OpenStreetMapImageryProvider({
8726
- url: settings.url,
8727
- fileExtension: prepareFileExt(settings.sourceExt)
8758
+ url: settings_1.url,
8759
+ fileExtension: prepareFileExt(settings_1.sourceExt),
8760
+ // Unused until tested properly. In the past these settings caused large lag.
8761
+ // rectangle: boundaries,
8762
+ // maximumLevel: hasLevels ? maxLevel : undefined,
8763
+ // minimumLevel: hasLevels ? minLevel : undefined,
8728
8764
  });
8729
- return [3 /*break*/, 13];
8730
- case 12:
8765
+ return [3 /*break*/, 14];
8766
+ case 13:
8731
8767
  provider = new Cesium.TileMapServiceImageryProvider({
8732
- url: settings.url,
8733
- fileExtension: prepareFileExt(settings.sourceExt)
8768
+ url: settings_1.url,
8769
+ fileExtension: prepareFileExt(settings_1.sourceExt),
8770
+ // Unused until tested properly. In the past these settings caused large lag.
8771
+ // rectangle: boundaries,
8772
+ // maximumLevel: hasLevels ? maxLevel : undefined,
8773
+ // minimumLevel: hasLevels ? minLevel : undefined,
8734
8774
  });
8735
- return [3 /*break*/, 13];
8736
- case 13: return [3 /*break*/, 15];
8737
- case 14:
8775
+ return [3 /*break*/, 14];
8776
+ case 14: return [3 /*break*/, 16];
8777
+ case 15:
8738
8778
  if (tileset.type === bruceModels.Tileset.EType.EntitiesMap) {
8739
8779
  provider = new Cesium.UrlTemplateImageryProvider({
8740
8780
  url: bruceModels.Tileset.GetPublicFileUrl({
8741
8781
  api: api,
8742
8782
  tilesetId: meta.tilesetId,
8743
- file: "{z}/{x}/{y}.png"
8783
+ file: "{z}/{x}/{y}.png",
8784
+ viaCdn: true,
8785
+ viaCdnCacheToken: tileset.generateVersion
8744
8786
  }),
8745
8787
  tileHeight: 256,
8746
8788
  tileWidth: 256
8789
+ // Unused until tested properly. In the past these settings caused large lag.
8790
+ // rectangle: boundaries,
8791
+ // minimumLevel: hasLevels ? minLevel : undefined,
8792
+ // maximumLevel: hasLevels ? maxLevel : undefined,
8747
8793
  });
8748
8794
  }
8749
- _f.label = 15;
8750
- case 15:
8795
+ _f.label = 16;
8796
+ case 16:
8751
8797
  if (provider) {
8752
8798
  layer = viewer.imageryLayers.addImageryProvider(provider);
8753
8799
  layer._bMeta = meta;
@@ -8985,14 +9031,23 @@
8985
9031
  return [4 /*yield*/, renderDefaultTerrTile(defaultTerr.id)];
8986
9032
  case 1:
8987
9033
  provider = (_b.sent());
8988
- return [3 /*break*/, 4];
9034
+ return [3 /*break*/, 5];
8989
9035
  case 2:
8990
9036
  api = params.apiGetter.getApi(params.tile.accountId);
9037
+ // Ensure regional url is loaded.
9038
+ // When loading stuff in the same account as the default it's likely already loaded,
9039
+ // but if we just made an API instance for some external account then it won't be loaded yet.
9040
+ return [4 /*yield*/, api.Loading];
9041
+ case 3:
9042
+ // Ensure regional url is loaded.
9043
+ // When loading stuff in the same account as the default it's likely already loaded,
9044
+ // but if we just made an API instance for some external account then it won't be loaded yet.
9045
+ _b.sent();
8991
9046
  return [4 /*yield*/, bruceModels.Tileset.Get({
8992
9047
  api: api,
8993
9048
  tilesetId: params.tile.tilesetId
8994
9049
  })];
8995
- case 3:
9050
+ case 4:
8996
9051
  tileset = (_b.sent()).tileset;
8997
9052
  url = void 0;
8998
9053
  vertexes = true;
@@ -9000,7 +9055,9 @@
9000
9055
  url = bruceModels.Tileset.GetPublicFileUrl({
9001
9056
  api: api,
9002
9057
  tilesetId: tileset.id,
9003
- file: ""
9058
+ file: "",
9059
+ viaCdn: true,
9060
+ viaCdnCacheToken: tileset.generateVersion
9004
9061
  });
9005
9062
  }
9006
9063
  else if (tileset.type === bruceModels.Tileset.EType.ExternalTerrain) {
@@ -9017,8 +9074,8 @@
9017
9074
  requestVertexNormals: vertexes
9018
9075
  });
9019
9076
  }
9020
- _b.label = 4;
9021
- case 4:
9077
+ _b.label = 5;
9078
+ case 5:
9022
9079
  if (provider) {
9023
9080
  provider._bMeta = {
9024
9081
  accountId: params.tile.accountId,
@@ -9696,7 +9753,7 @@
9696
9753
  ViewRenderEngine.Render = Render;
9697
9754
  })(exports.ViewRenderEngine || (exports.ViewRenderEngine = {}));
9698
9755
 
9699
- var VERSION = "2.1.2";
9756
+ var VERSION = "2.1.3";
9700
9757
 
9701
9758
  exports.VERSION = VERSION;
9702
9759
  exports.CesiumViewMonitor = CesiumViewMonitor;