bruce-cesium 2.1.3 → 2.1.5
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.
- package/dist/bruce-cesium.es5.js +228 -69
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +227 -68
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +3 -2
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +3 -2
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +2 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +2 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -1
- package/dist/lib/rendering/tile-render-engine.js +100 -48
- package/dist/lib/rendering/tile-render-engine.js.map +1 -1
- package/dist/lib/rendering/tileset-render-engine.js +117 -16
- package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
- package/dist/types/rendering/tileset-render-engine.d.ts +29 -0
- package/package.json +3 -3
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BruceEvent, Cartes, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, DelayQueue, BatchedDataGetter, EntityRelationType, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, EntityRelation, ENVIRONMENT, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
|
|
2
2
|
import * as Cesium from 'cesium';
|
|
3
|
-
import { Cartesian2, Cartographic, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, SceneMode, Entity, Primitive, Cesium3DTileFeature, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, OrthographicFrustum, JulianDate, NearFarScalar,
|
|
3
|
+
import { Cartesian2, Cartographic, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, SceneMode, Entity, Primitive, Cesium3DTileFeature, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, OrthographicFrustum, JulianDate, NearFarScalar, EllipsoidGeodesic, EllipsoidTerrainProvider, sampleTerrainMostDetailed, CesiumInspector, PolygonPipeline, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, Cesium3DTileset, Matrix4, Matrix3, IonResource, ColorMaterialProperty, EasingFunction, GeometryInstance } from 'cesium';
|
|
4
4
|
|
|
5
5
|
var TIME_LAG = 300;
|
|
6
6
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -4761,6 +4761,8 @@ function correctStyle(style) {
|
|
|
4761
4761
|
}
|
|
4762
4762
|
return style;
|
|
4763
4763
|
}
|
|
4764
|
+
var VIEWER_WATCH_KEY = "bruce-viewer-watch";
|
|
4765
|
+
var WATCH_KEY = "bruce-tileset-watch";
|
|
4764
4766
|
/**
|
|
4765
4767
|
* Creates and returns a tileset instance from a given url.
|
|
4766
4768
|
* This is made to handle the difference between old and new cesium versions.
|
|
@@ -4771,15 +4773,21 @@ function correctStyle(style) {
|
|
|
4771
4773
|
*/
|
|
4772
4774
|
function createTileset(url, props) {
|
|
4773
4775
|
return __awaiter(this, void 0, void 0, function () {
|
|
4774
|
-
var C3DT;
|
|
4776
|
+
var defaultProps, C3DT;
|
|
4775
4777
|
return __generator(this, function (_a) {
|
|
4778
|
+
defaultProps = {
|
|
4779
|
+
// "Optimization option. Reduce the screen space error for tiles that are further away from the camera.".
|
|
4780
|
+
dynamicScreenSpaceError: true,
|
|
4781
|
+
// "The maximum amount of memory in MB that can be used by the tileset.".
|
|
4782
|
+
maximumMemoryUsage: 512
|
|
4783
|
+
};
|
|
4776
4784
|
C3DT = Cesium3DTileset;
|
|
4777
4785
|
if (C3DT.fromUrl) {
|
|
4778
4786
|
// New cesium is running.
|
|
4779
|
-
return [2 /*return*/, C3DT.fromUrl(url, __assign({}, props))];
|
|
4787
|
+
return [2 /*return*/, C3DT.fromUrl(url, __assign(__assign({}, defaultProps), props))];
|
|
4780
4788
|
}
|
|
4781
4789
|
// Old cesium is running.
|
|
4782
|
-
return [2 /*return*/, new C3DT(__assign({ url: url }, props))];
|
|
4790
|
+
return [2 /*return*/, new C3DT(__assign(__assign({ url: url }, defaultProps), props))];
|
|
4783
4791
|
});
|
|
4784
4792
|
});
|
|
4785
4793
|
}
|
|
@@ -4924,6 +4932,11 @@ var TilesetRenderEngine;
|
|
|
4924
4932
|
switch (_a.label) {
|
|
4925
4933
|
case 0:
|
|
4926
4934
|
api = params.apiGetter.getApi(params.apiGetter.accountId);
|
|
4935
|
+
// Ensure regional url is loaded.
|
|
4936
|
+
return [4 /*yield*/, api.Loading];
|
|
4937
|
+
case 1:
|
|
4938
|
+
// Ensure regional url is loaded.
|
|
4939
|
+
_a.sent();
|
|
4927
4940
|
loadUrl = params.tileset.loadUrl;
|
|
4928
4941
|
// CDN url must match the api getter account id.
|
|
4929
4942
|
if (!params.accountId || params.accountId == params.apiGetter.accountId) {
|
|
@@ -4934,21 +4947,22 @@ var TilesetRenderEngine;
|
|
|
4934
4947
|
loadUrl += "&generation=" + params.tileset.generateVersion;
|
|
4935
4948
|
}
|
|
4936
4949
|
}
|
|
4937
|
-
if (!(params.tileset.type == Tileset.EType.Cad)) return [3 /*break*/,
|
|
4950
|
+
if (!(params.tileset.type == Tileset.EType.Cad)) return [3 /*break*/, 3];
|
|
4938
4951
|
return [4 /*yield*/, createTileset(loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
|
|
4939
4952
|
api: api,
|
|
4940
4953
|
tilesetId: params.tileset.id,
|
|
4941
4954
|
file: "tileset.json"
|
|
4942
4955
|
}) + "?generation=" + params.tileset.generateVersion, null)];
|
|
4943
|
-
case
|
|
4956
|
+
case 2:
|
|
4944
4957
|
cTileset_1 = _a.sent();
|
|
4945
4958
|
params.viewer.scene.primitives.add(cTileset_1);
|
|
4946
4959
|
cTileset_1.readyPromise.then(function () {
|
|
4947
|
-
var _a, _b, _c;
|
|
4960
|
+
var _a, _b, _c, _d;
|
|
4948
4961
|
try {
|
|
4949
4962
|
if (!isAlive(params.viewer, cTileset_1)) {
|
|
4950
4963
|
return;
|
|
4951
4964
|
}
|
|
4965
|
+
(_a = GetMemoryWatcher(params.viewer)) === null || _a === void 0 ? void 0 : _a.Watch(cTileset_1);
|
|
4952
4966
|
var settings = params.tileset.settings;
|
|
4953
4967
|
ApplySettings({
|
|
4954
4968
|
cTileset: cTileset_1,
|
|
@@ -4959,9 +4973,9 @@ var TilesetRenderEngine;
|
|
|
4959
4973
|
ApplyPosition({
|
|
4960
4974
|
cTileset: cTileset_1,
|
|
4961
4975
|
position: {
|
|
4962
|
-
ucs: (
|
|
4963
|
-
location: ((
|
|
4964
|
-
transform: ((
|
|
4976
|
+
ucs: (_b = params.coords) === null || _b === void 0 ? void 0 : _b.ucs,
|
|
4977
|
+
location: ((_c = params.coords) === null || _c === void 0 ? void 0 : _c.location) == null ? settings.location : params.coords.location,
|
|
4978
|
+
transform: ((_d = params.coords) === null || _d === void 0 ? void 0 : _d.transform) == null ? settings.transform : params.coords.transform
|
|
4965
4979
|
}
|
|
4966
4980
|
});
|
|
4967
4981
|
}
|
|
@@ -4970,32 +4984,34 @@ var TilesetRenderEngine;
|
|
|
4970
4984
|
}
|
|
4971
4985
|
});
|
|
4972
4986
|
return [2 /*return*/, cTileset_1];
|
|
4973
|
-
case
|
|
4974
|
-
if (!(params.tileset.type === Tileset.EType.EntitiesSet)) return [3 /*break*/,
|
|
4987
|
+
case 3:
|
|
4988
|
+
if (!(params.tileset.type === Tileset.EType.EntitiesSet)) return [3 /*break*/, 5];
|
|
4975
4989
|
return [4 /*yield*/, createTileset(loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
|
|
4976
4990
|
api: api,
|
|
4977
4991
|
tilesetId: params.tileset.id,
|
|
4978
4992
|
file: "tileset.json"
|
|
4979
4993
|
}) + "?generation=" + params.tileset.generateVersion, null)];
|
|
4980
|
-
case
|
|
4994
|
+
case 4:
|
|
4981
4995
|
cTileset = _a.sent();
|
|
4982
4996
|
params.viewer.scene.primitives.add(cTileset);
|
|
4983
4997
|
return [2 /*return*/, cTileset];
|
|
4984
|
-
case
|
|
4985
|
-
if (!(params.tileset.type == Tileset.EType.PointCloud)) return [3 /*break*/,
|
|
4998
|
+
case 5:
|
|
4999
|
+
if (!(params.tileset.type == Tileset.EType.PointCloud)) return [3 /*break*/, 7];
|
|
4986
5000
|
return [4 /*yield*/, createTileset(loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
|
|
4987
5001
|
api: api,
|
|
4988
5002
|
tilesetId: params.tileset.id,
|
|
4989
5003
|
file: "tileset.json"
|
|
4990
5004
|
}) + "?generation=" + params.tileset.generateVersion, null)];
|
|
4991
|
-
case
|
|
5005
|
+
case 6:
|
|
4992
5006
|
cTileset_2 = _a.sent();
|
|
4993
5007
|
params.viewer.scene.primitives.add(cTileset_2);
|
|
4994
5008
|
cTileset_2.readyPromise.then(function () {
|
|
5009
|
+
var _a;
|
|
4995
5010
|
try {
|
|
4996
5011
|
if (!isAlive(params.viewer, cTileset_2)) {
|
|
4997
5012
|
return;
|
|
4998
5013
|
}
|
|
5014
|
+
(_a = GetMemoryWatcher(params.viewer)) === null || _a === void 0 ? void 0 : _a.Watch(cTileset_2);
|
|
4999
5015
|
var settings = params.tileset.settings;
|
|
5000
5016
|
ApplySettings({
|
|
5001
5017
|
cTileset: cTileset_2,
|
|
@@ -5018,7 +5034,7 @@ var TilesetRenderEngine;
|
|
|
5018
5034
|
}
|
|
5019
5035
|
});
|
|
5020
5036
|
return [2 /*return*/, cTileset_2];
|
|
5021
|
-
case
|
|
5037
|
+
case 7: throw ("Not implemented.");
|
|
5022
5038
|
}
|
|
5023
5039
|
});
|
|
5024
5040
|
});
|
|
@@ -5068,10 +5084,12 @@ var TilesetRenderEngine;
|
|
|
5068
5084
|
cTileset = _a.sent();
|
|
5069
5085
|
viewer.scene.primitives.add(cTileset);
|
|
5070
5086
|
cTileset.readyPromise.then(function () {
|
|
5087
|
+
var _a;
|
|
5071
5088
|
try {
|
|
5072
5089
|
if (!isAlive(viewer, cTileset)) {
|
|
5073
5090
|
return;
|
|
5074
5091
|
}
|
|
5092
|
+
(_a = GetMemoryWatcher(params.viewer)) === null || _a === void 0 ? void 0 : _a.Watch(cTileset);
|
|
5075
5093
|
if (tileset) {
|
|
5076
5094
|
var settings_1 = tileset.Settings;
|
|
5077
5095
|
settings_1 = __assign({}, settings_1);
|
|
@@ -5518,6 +5536,89 @@ var TilesetRenderEngine;
|
|
|
5518
5536
|
return Styler;
|
|
5519
5537
|
}());
|
|
5520
5538
|
TilesetRenderEngine.Styler = Styler;
|
|
5539
|
+
/**
|
|
5540
|
+
* The maximum memory in MB that can be used by all tilesets.
|
|
5541
|
+
* This is distributed evenly between all loaded tilesets.
|
|
5542
|
+
*/
|
|
5543
|
+
TilesetRenderEngine.MAX_TILESET_MEMORY = 1024;
|
|
5544
|
+
/**
|
|
5545
|
+
* Watches tilesets in the viewer.
|
|
5546
|
+
* This will regulate their max memory param.
|
|
5547
|
+
* As more get watched their memory will be reduced.
|
|
5548
|
+
*/
|
|
5549
|
+
var MemoryWatcher = /** @class */ (function () {
|
|
5550
|
+
function MemoryWatcher(viewer) {
|
|
5551
|
+
this.watched = [];
|
|
5552
|
+
this.viewer = viewer;
|
|
5553
|
+
}
|
|
5554
|
+
MemoryWatcher.prototype.distributeMemory = function () {
|
|
5555
|
+
this.clean();
|
|
5556
|
+
// Total 1gb as default.
|
|
5557
|
+
// We'll need to allow user to change this somehow.
|
|
5558
|
+
var maxMemory = TilesetRenderEngine.MAX_TILESET_MEMORY;
|
|
5559
|
+
// Minimum memory in MB per tileset.
|
|
5560
|
+
var minMemory = 80;
|
|
5561
|
+
var totalPerTileset = Math.max(this.watched.length ? maxMemory / this.watched.length : maxMemory, minMemory);
|
|
5562
|
+
this.watched.forEach(function (x) {
|
|
5563
|
+
x.maximumMemoryUsage = totalPerTileset;
|
|
5564
|
+
});
|
|
5565
|
+
};
|
|
5566
|
+
MemoryWatcher.prototype.destroy = function () {
|
|
5567
|
+
this.watched = [];
|
|
5568
|
+
};
|
|
5569
|
+
/**
|
|
5570
|
+
* Remove all dead tilesets.
|
|
5571
|
+
*/
|
|
5572
|
+
MemoryWatcher.prototype.clean = function () {
|
|
5573
|
+
var _this = this;
|
|
5574
|
+
// Remove all dead tilesets.
|
|
5575
|
+
this.watched = this.watched.filter(function (x) { return isAlive(_this.viewer, x); });
|
|
5576
|
+
// Check if viewer is destroyed.
|
|
5577
|
+
if (!this.viewer || this.viewer.isDestroyed()) {
|
|
5578
|
+
this.destroy();
|
|
5579
|
+
}
|
|
5580
|
+
};
|
|
5581
|
+
MemoryWatcher.prototype.Watch = function (tileset) {
|
|
5582
|
+
if (!tileset) {
|
|
5583
|
+
return;
|
|
5584
|
+
}
|
|
5585
|
+
if (!tileset[WATCH_KEY]) {
|
|
5586
|
+
tileset[WATCH_KEY] = ObjectUtils.UId();
|
|
5587
|
+
}
|
|
5588
|
+
var index = this.watched.findIndex(function (x) { return x[WATCH_KEY] === tileset[WATCH_KEY]; });
|
|
5589
|
+
if (index >= 0) {
|
|
5590
|
+
return;
|
|
5591
|
+
}
|
|
5592
|
+
this.watched.push(tileset);
|
|
5593
|
+
this.distributeMemory();
|
|
5594
|
+
};
|
|
5595
|
+
MemoryWatcher.prototype.Unwatch = function (tileset) {
|
|
5596
|
+
if (!tileset) {
|
|
5597
|
+
return;
|
|
5598
|
+
}
|
|
5599
|
+
if (!tileset[WATCH_KEY]) {
|
|
5600
|
+
tileset[WATCH_KEY] = ObjectUtils.UId();
|
|
5601
|
+
}
|
|
5602
|
+
var index = this.watched.findIndex(function (x) { return (x === null || x === void 0 ? void 0 : x[WATCH_KEY]) === tileset[WATCH_KEY]; });
|
|
5603
|
+
if (index > -1) {
|
|
5604
|
+
this.watched.splice(index, 1);
|
|
5605
|
+
}
|
|
5606
|
+
this.distributeMemory();
|
|
5607
|
+
};
|
|
5608
|
+
return MemoryWatcher;
|
|
5609
|
+
}());
|
|
5610
|
+
TilesetRenderEngine.MemoryWatcher = MemoryWatcher;
|
|
5611
|
+
function GetMemoryWatcher(viewer) {
|
|
5612
|
+
// If viewer is dead return nothing.
|
|
5613
|
+
if (!viewer || viewer.isDestroyed()) {
|
|
5614
|
+
return null;
|
|
5615
|
+
}
|
|
5616
|
+
if (!viewer[VIEWER_WATCH_KEY]) {
|
|
5617
|
+
viewer[VIEWER_WATCH_KEY] = new MemoryWatcher(viewer);
|
|
5618
|
+
}
|
|
5619
|
+
return viewer[VIEWER_WATCH_KEY];
|
|
5620
|
+
}
|
|
5621
|
+
TilesetRenderEngine.GetMemoryWatcher = GetMemoryWatcher;
|
|
5521
5622
|
})(TilesetRenderEngine || (TilesetRenderEngine = {}));
|
|
5522
5623
|
|
|
5523
5624
|
/**
|
|
@@ -5798,16 +5899,17 @@ var TilesetCadRenderManager;
|
|
|
5798
5899
|
this.doDispose();
|
|
5799
5900
|
};
|
|
5800
5901
|
Manager.prototype.doDispose = function () {
|
|
5801
|
-
var _a;
|
|
5902
|
+
var _a, _b;
|
|
5802
5903
|
if (this.cTileset) {
|
|
5803
5904
|
var viewer = this.viewer;
|
|
5804
5905
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
5805
5906
|
this.cTileset.show = false;
|
|
5806
5907
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
5908
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
5807
5909
|
}
|
|
5808
5910
|
this.cTileset = null;
|
|
5809
5911
|
}
|
|
5810
|
-
(
|
|
5912
|
+
(_b = this.styler) === null || _b === void 0 ? void 0 : _b.Dispose();
|
|
5811
5913
|
this.visualsManager.RemoveRegos({
|
|
5812
5914
|
menuItemId: this.item.id
|
|
5813
5915
|
});
|
|
@@ -6348,11 +6450,13 @@ var TilesetEntitiesRenderManager;
|
|
|
6348
6450
|
this.doDispose();
|
|
6349
6451
|
};
|
|
6350
6452
|
Manager.prototype.doDispose = function () {
|
|
6453
|
+
var _a;
|
|
6351
6454
|
if (this.cTileset) {
|
|
6352
6455
|
var viewer = this.viewer;
|
|
6353
6456
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
6354
6457
|
this.cTileset.show = false;
|
|
6355
6458
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
6459
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
6356
6460
|
}
|
|
6357
6461
|
this.cTileset = null;
|
|
6358
6462
|
}
|
|
@@ -6500,11 +6604,13 @@ var TilesetPointcloudRenderManager;
|
|
|
6500
6604
|
this.doDispose();
|
|
6501
6605
|
};
|
|
6502
6606
|
Manager.prototype.doDispose = function () {
|
|
6607
|
+
var _a;
|
|
6503
6608
|
if (this.cTileset) {
|
|
6504
6609
|
var viewer = this.viewer;
|
|
6505
6610
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
6506
6611
|
this.cTileset.show = false;
|
|
6507
6612
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
6613
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
6508
6614
|
}
|
|
6509
6615
|
this.cTileset = null;
|
|
6510
6616
|
}
|
|
@@ -6850,16 +6956,17 @@ var TilesetArbRenderManager;
|
|
|
6850
6956
|
this.doDispose();
|
|
6851
6957
|
};
|
|
6852
6958
|
Manager.prototype.doDispose = function () {
|
|
6853
|
-
var _a;
|
|
6959
|
+
var _a, _b;
|
|
6854
6960
|
if (this.cTileset) {
|
|
6855
6961
|
var viewer = this.viewer;
|
|
6856
6962
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
6857
6963
|
this.cTileset.show = false;
|
|
6858
6964
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
6965
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
6859
6966
|
}
|
|
6860
6967
|
this.cTileset = null;
|
|
6861
6968
|
}
|
|
6862
|
-
(
|
|
6969
|
+
(_b = this.styler) === null || _b === void 0 ? void 0 : _b.Dispose();
|
|
6863
6970
|
this.visualsManager.RemoveRegos({
|
|
6864
6971
|
menuItemId: this.item.id
|
|
6865
6972
|
});
|
|
@@ -8693,7 +8800,7 @@ var TileRenderEngine;
|
|
|
8693
8800
|
(function (Navigator) {
|
|
8694
8801
|
function GetOrCreateLayer(params) {
|
|
8695
8802
|
return __awaiter(this, void 0, void 0, function () {
|
|
8696
|
-
var viewer, apiGetter, meta, enabled, i, layer, layerMeta, defaultImg, provider, api, tileset, settings, _a, _b, _c, mapboxKey, _d, layer;
|
|
8803
|
+
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;
|
|
8697
8804
|
var _e;
|
|
8698
8805
|
return __generator(this, function (_f) {
|
|
8699
8806
|
switch (_f.label) {
|
|
@@ -8716,90 +8823,131 @@ var TileRenderEngine;
|
|
|
8716
8823
|
return [4 /*yield*/, renderDefaultMapTile(apiGetter, defaultImg.id)];
|
|
8717
8824
|
case 1:
|
|
8718
8825
|
provider = _f.sent();
|
|
8719
|
-
return [3 /*break*/,
|
|
8826
|
+
return [3 /*break*/, 16];
|
|
8720
8827
|
case 2:
|
|
8721
8828
|
api = apiGetter.getApi(meta.accountId);
|
|
8829
|
+
// Ensure regional url is loaded.
|
|
8830
|
+
// When loading stuff in the same account as the default it's likely already loaded,
|
|
8831
|
+
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
8832
|
+
return [4 /*yield*/, api.Loading];
|
|
8833
|
+
case 3:
|
|
8834
|
+
// Ensure regional url is loaded.
|
|
8835
|
+
// When loading stuff in the same account as the default it's likely already loaded,
|
|
8836
|
+
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
8837
|
+
_f.sent();
|
|
8722
8838
|
return [4 /*yield*/, Tileset.Get({
|
|
8723
8839
|
api: api,
|
|
8724
8840
|
tilesetId: meta.tilesetId
|
|
8725
8841
|
})];
|
|
8726
|
-
case
|
|
8842
|
+
case 4:
|
|
8727
8843
|
tileset = (_f.sent()).tileset;
|
|
8728
|
-
|
|
8844
|
+
boundaries = undefined;
|
|
8845
|
+
settings = tileset === null || tileset === void 0 ? void 0 : tileset.settings;
|
|
8846
|
+
if (settings && settings.boundaries) {
|
|
8847
|
+
minLat = settings.boundaries.minLatitude;
|
|
8848
|
+
maxLat = settings.boundaries.maxLatitude;
|
|
8849
|
+
minLon = settings.boundaries.minLongitude;
|
|
8850
|
+
maxLon = settings.boundaries.maxLongitude;
|
|
8851
|
+
boundaries = Rectangle.fromDegrees(minLon, minLat, maxLon, maxLat);
|
|
8852
|
+
}
|
|
8853
|
+
minLevel = settings === null || settings === void 0 ? void 0 : settings.levelMin;
|
|
8854
|
+
maxLevel = settings === null || settings === void 0 ? void 0 : settings.levelMax;
|
|
8855
|
+
hasLevels = !isNaN(minLevel) && !isNaN(maxLevel);
|
|
8856
|
+
if (!(tileset.type === Tileset.EType.GeoMap)) return [3 /*break*/, 5];
|
|
8729
8857
|
provider = new TileMapServiceImageryProvider({
|
|
8730
8858
|
url: Tileset.GetPublicFileUrl({
|
|
8731
8859
|
api: api,
|
|
8732
8860
|
tilesetId: meta.tilesetId,
|
|
8733
|
-
file: ""
|
|
8861
|
+
file: "",
|
|
8862
|
+
viaCdn: true,
|
|
8863
|
+
viaCdnCacheToken: tileset.generateVersion
|
|
8734
8864
|
}),
|
|
8735
|
-
fileExtension: "png"
|
|
8865
|
+
fileExtension: "png",
|
|
8866
|
+
// Tested to not cause increased lag.
|
|
8867
|
+
rectangle: boundaries,
|
|
8868
|
+
maximumLevel: hasLevels ? maxLevel : undefined,
|
|
8869
|
+
minimumLevel: hasLevels ? minLevel : undefined,
|
|
8736
8870
|
});
|
|
8737
|
-
return [3 /*break*/,
|
|
8738
|
-
case
|
|
8739
|
-
if (!(tileset.type === Tileset.EType.ExternalGeoMap)) return [3 /*break*/,
|
|
8740
|
-
|
|
8741
|
-
_a =
|
|
8871
|
+
return [3 /*break*/, 16];
|
|
8872
|
+
case 5:
|
|
8873
|
+
if (!(tileset.type === Tileset.EType.ExternalGeoMap)) return [3 /*break*/, 15];
|
|
8874
|
+
settings_1 = tileset.settings;
|
|
8875
|
+
_a = settings_1.mapType;
|
|
8742
8876
|
switch (_a) {
|
|
8743
|
-
case Tileset.Settings.EExternalMapType.CesiumIon: return [3 /*break*/,
|
|
8744
|
-
case Tileset.Settings.EExternalMapType.MapBoxImagery: return [3 /*break*/,
|
|
8745
|
-
case Tileset.Settings.EExternalMapType.OpenStreetMapImagery: return [3 /*break*/,
|
|
8746
|
-
case Tileset.Settings.EExternalMapType.TileMapImagery: return [3 /*break*/,
|
|
8877
|
+
case Tileset.Settings.EExternalMapType.CesiumIon: return [3 /*break*/, 6];
|
|
8878
|
+
case Tileset.Settings.EExternalMapType.MapBoxImagery: return [3 /*break*/, 8];
|
|
8879
|
+
case Tileset.Settings.EExternalMapType.OpenStreetMapImagery: return [3 /*break*/, 12];
|
|
8880
|
+
case Tileset.Settings.EExternalMapType.TileMapImagery: return [3 /*break*/, 13];
|
|
8747
8881
|
}
|
|
8748
|
-
return [3 /*break*/,
|
|
8749
|
-
case
|
|
8882
|
+
return [3 /*break*/, 14];
|
|
8883
|
+
case 6:
|
|
8750
8884
|
_c = (_b = IonImageryProvider).bind;
|
|
8751
8885
|
_e = {
|
|
8752
|
-
assetId:
|
|
8886
|
+
assetId: settings_1.ionId
|
|
8753
8887
|
};
|
|
8754
8888
|
return [4 /*yield*/, findKey(apiGetter, ProgramKey.EProgramId.CesiumIon, null)];
|
|
8755
|
-
case
|
|
8889
|
+
case 7:
|
|
8756
8890
|
provider = new (_c.apply(_b, [void 0, (_e.accessToken = _f.sent(),
|
|
8757
8891
|
_e)]))();
|
|
8758
|
-
return [3 /*break*/,
|
|
8759
|
-
case
|
|
8760
|
-
if (!
|
|
8761
|
-
_d =
|
|
8762
|
-
return [3 /*break*/,
|
|
8763
|
-
case
|
|
8764
|
-
case 9:
|
|
8765
|
-
_d = _f.sent();
|
|
8766
|
-
_f.label = 10;
|
|
8892
|
+
return [3 /*break*/, 14];
|
|
8893
|
+
case 8:
|
|
8894
|
+
if (!settings_1.mapBoxKey) return [3 /*break*/, 9];
|
|
8895
|
+
_d = settings_1.mapBoxKey;
|
|
8896
|
+
return [3 /*break*/, 11];
|
|
8897
|
+
case 9: return [4 /*yield*/, findKey(apiGetter, ProgramKey.EProgramId.Mapbox, null)];
|
|
8767
8898
|
case 10:
|
|
8899
|
+
_d = _f.sent();
|
|
8900
|
+
_f.label = 11;
|
|
8901
|
+
case 11:
|
|
8768
8902
|
mapboxKey = _d;
|
|
8769
8903
|
provider = new UrlTemplateImageryProvider({
|
|
8770
8904
|
url: "https://api.mapbox.com/styles/v1/"
|
|
8771
|
-
+
|
|
8905
|
+
+ settings_1.mapBoxAccount + "/" + settings_1.mapBoxStyleId +
|
|
8772
8906
|
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
8773
8907
|
+ mapboxKey
|
|
8774
8908
|
});
|
|
8775
|
-
return [3 /*break*/,
|
|
8776
|
-
case
|
|
8909
|
+
return [3 /*break*/, 14];
|
|
8910
|
+
case 12:
|
|
8777
8911
|
provider = new OpenStreetMapImageryProvider({
|
|
8778
|
-
url:
|
|
8779
|
-
fileExtension: prepareFileExt(
|
|
8912
|
+
url: settings_1.url,
|
|
8913
|
+
fileExtension: prepareFileExt(settings_1.sourceExt),
|
|
8914
|
+
// Unused until tested properly. In the past these settings caused large lag.
|
|
8915
|
+
// rectangle: boundaries,
|
|
8916
|
+
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
8917
|
+
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
8780
8918
|
});
|
|
8781
|
-
return [3 /*break*/,
|
|
8782
|
-
case
|
|
8919
|
+
return [3 /*break*/, 14];
|
|
8920
|
+
case 13:
|
|
8783
8921
|
provider = new TileMapServiceImageryProvider({
|
|
8784
|
-
url:
|
|
8785
|
-
fileExtension: prepareFileExt(
|
|
8922
|
+
url: settings_1.url,
|
|
8923
|
+
fileExtension: prepareFileExt(settings_1.sourceExt),
|
|
8924
|
+
// Unused until tested properly. In the past these settings caused large lag.
|
|
8925
|
+
// rectangle: boundaries,
|
|
8926
|
+
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
8927
|
+
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
8786
8928
|
});
|
|
8787
|
-
return [3 /*break*/,
|
|
8788
|
-
case
|
|
8789
|
-
case
|
|
8929
|
+
return [3 /*break*/, 14];
|
|
8930
|
+
case 14: return [3 /*break*/, 16];
|
|
8931
|
+
case 15:
|
|
8790
8932
|
if (tileset.type === Tileset.EType.EntitiesMap) {
|
|
8791
8933
|
provider = new UrlTemplateImageryProvider({
|
|
8792
8934
|
url: Tileset.GetPublicFileUrl({
|
|
8793
8935
|
api: api,
|
|
8794
8936
|
tilesetId: meta.tilesetId,
|
|
8795
|
-
file: "{z}/{x}/{y}.png"
|
|
8937
|
+
file: "{z}/{x}/{y}.png",
|
|
8938
|
+
viaCdn: true,
|
|
8939
|
+
viaCdnCacheToken: tileset.generateVersion
|
|
8796
8940
|
}),
|
|
8797
8941
|
tileHeight: 256,
|
|
8798
8942
|
tileWidth: 256
|
|
8943
|
+
// Unused until tested properly. In the past these settings caused large lag.
|
|
8944
|
+
// rectangle: boundaries,
|
|
8945
|
+
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
8946
|
+
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
8799
8947
|
});
|
|
8800
8948
|
}
|
|
8801
|
-
_f.label =
|
|
8802
|
-
case
|
|
8949
|
+
_f.label = 16;
|
|
8950
|
+
case 16:
|
|
8803
8951
|
if (provider) {
|
|
8804
8952
|
layer = viewer.imageryLayers.addImageryProvider(provider);
|
|
8805
8953
|
layer._bMeta = meta;
|
|
@@ -9037,14 +9185,23 @@ var TileRenderEngine;
|
|
|
9037
9185
|
return [4 /*yield*/, renderDefaultTerrTile(defaultTerr.id)];
|
|
9038
9186
|
case 1:
|
|
9039
9187
|
provider = (_b.sent());
|
|
9040
|
-
return [3 /*break*/,
|
|
9188
|
+
return [3 /*break*/, 5];
|
|
9041
9189
|
case 2:
|
|
9042
9190
|
api = params.apiGetter.getApi(params.tile.accountId);
|
|
9191
|
+
// Ensure regional url is loaded.
|
|
9192
|
+
// When loading stuff in the same account as the default it's likely already loaded,
|
|
9193
|
+
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
9194
|
+
return [4 /*yield*/, api.Loading];
|
|
9195
|
+
case 3:
|
|
9196
|
+
// Ensure regional url is loaded.
|
|
9197
|
+
// When loading stuff in the same account as the default it's likely already loaded,
|
|
9198
|
+
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
9199
|
+
_b.sent();
|
|
9043
9200
|
return [4 /*yield*/, Tileset.Get({
|
|
9044
9201
|
api: api,
|
|
9045
9202
|
tilesetId: params.tile.tilesetId
|
|
9046
9203
|
})];
|
|
9047
|
-
case
|
|
9204
|
+
case 4:
|
|
9048
9205
|
tileset = (_b.sent()).tileset;
|
|
9049
9206
|
url = void 0;
|
|
9050
9207
|
vertexes = true;
|
|
@@ -9052,7 +9209,9 @@ var TileRenderEngine;
|
|
|
9052
9209
|
url = Tileset.GetPublicFileUrl({
|
|
9053
9210
|
api: api,
|
|
9054
9211
|
tilesetId: tileset.id,
|
|
9055
|
-
file: ""
|
|
9212
|
+
file: "",
|
|
9213
|
+
viaCdn: true,
|
|
9214
|
+
viaCdnCacheToken: tileset.generateVersion
|
|
9056
9215
|
});
|
|
9057
9216
|
}
|
|
9058
9217
|
else if (tileset.type === Tileset.EType.ExternalTerrain) {
|
|
@@ -9069,8 +9228,8 @@ var TileRenderEngine;
|
|
|
9069
9228
|
requestVertexNormals: vertexes
|
|
9070
9229
|
});
|
|
9071
9230
|
}
|
|
9072
|
-
_b.label =
|
|
9073
|
-
case
|
|
9231
|
+
_b.label = 5;
|
|
9232
|
+
case 5:
|
|
9074
9233
|
if (provider) {
|
|
9075
9234
|
provider._bMeta = {
|
|
9076
9235
|
accountId: params.tile.accountId,
|