bruce-cesium 2.1.3 → 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.
- package/dist/bruce-cesium.es5.js +115 -58
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +114 -57
- package/dist/bruce-cesium.umd.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 +14 -9
- package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
- 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,
|
|
3
|
+
import { Cartesian2, Cartographic, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, SceneMode, HeightReference, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, OrthographicFrustum, JulianDate, NearFarScalar, Cesium3DTileset, Matrix4, Matrix3, IonResource, CesiumInspector, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, PolygonPipeline, ColorMaterialProperty, EasingFunction, GeometryInstance, EllipsoidGeodesic, sampleTerrainMostDetailed } from 'cesium';
|
|
4
4
|
|
|
5
5
|
var TIME_LAG = 300;
|
|
6
6
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -4924,6 +4924,11 @@ var TilesetRenderEngine;
|
|
|
4924
4924
|
switch (_a.label) {
|
|
4925
4925
|
case 0:
|
|
4926
4926
|
api = params.apiGetter.getApi(params.apiGetter.accountId);
|
|
4927
|
+
// Ensure regional url is loaded.
|
|
4928
|
+
return [4 /*yield*/, api.Loading];
|
|
4929
|
+
case 1:
|
|
4930
|
+
// Ensure regional url is loaded.
|
|
4931
|
+
_a.sent();
|
|
4927
4932
|
loadUrl = params.tileset.loadUrl;
|
|
4928
4933
|
// CDN url must match the api getter account id.
|
|
4929
4934
|
if (!params.accountId || params.accountId == params.apiGetter.accountId) {
|
|
@@ -4934,13 +4939,13 @@ var TilesetRenderEngine;
|
|
|
4934
4939
|
loadUrl += "&generation=" + params.tileset.generateVersion;
|
|
4935
4940
|
}
|
|
4936
4941
|
}
|
|
4937
|
-
if (!(params.tileset.type == Tileset.EType.Cad)) return [3 /*break*/,
|
|
4942
|
+
if (!(params.tileset.type == Tileset.EType.Cad)) return [3 /*break*/, 3];
|
|
4938
4943
|
return [4 /*yield*/, createTileset(loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
|
|
4939
4944
|
api: api,
|
|
4940
4945
|
tilesetId: params.tileset.id,
|
|
4941
4946
|
file: "tileset.json"
|
|
4942
4947
|
}) + "?generation=" + params.tileset.generateVersion, null)];
|
|
4943
|
-
case
|
|
4948
|
+
case 2:
|
|
4944
4949
|
cTileset_1 = _a.sent();
|
|
4945
4950
|
params.viewer.scene.primitives.add(cTileset_1);
|
|
4946
4951
|
cTileset_1.readyPromise.then(function () {
|
|
@@ -4970,25 +4975,25 @@ var TilesetRenderEngine;
|
|
|
4970
4975
|
}
|
|
4971
4976
|
});
|
|
4972
4977
|
return [2 /*return*/, cTileset_1];
|
|
4973
|
-
case
|
|
4974
|
-
if (!(params.tileset.type === Tileset.EType.EntitiesSet)) return [3 /*break*/,
|
|
4978
|
+
case 3:
|
|
4979
|
+
if (!(params.tileset.type === Tileset.EType.EntitiesSet)) return [3 /*break*/, 5];
|
|
4975
4980
|
return [4 /*yield*/, createTileset(loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
|
|
4976
4981
|
api: api,
|
|
4977
4982
|
tilesetId: params.tileset.id,
|
|
4978
4983
|
file: "tileset.json"
|
|
4979
4984
|
}) + "?generation=" + params.tileset.generateVersion, null)];
|
|
4980
|
-
case
|
|
4985
|
+
case 4:
|
|
4981
4986
|
cTileset = _a.sent();
|
|
4982
4987
|
params.viewer.scene.primitives.add(cTileset);
|
|
4983
4988
|
return [2 /*return*/, cTileset];
|
|
4984
|
-
case
|
|
4985
|
-
if (!(params.tileset.type == Tileset.EType.PointCloud)) return [3 /*break*/,
|
|
4989
|
+
case 5:
|
|
4990
|
+
if (!(params.tileset.type == Tileset.EType.PointCloud)) return [3 /*break*/, 7];
|
|
4986
4991
|
return [4 /*yield*/, createTileset(loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
|
|
4987
4992
|
api: api,
|
|
4988
4993
|
tilesetId: params.tileset.id,
|
|
4989
4994
|
file: "tileset.json"
|
|
4990
4995
|
}) + "?generation=" + params.tileset.generateVersion, null)];
|
|
4991
|
-
case
|
|
4996
|
+
case 6:
|
|
4992
4997
|
cTileset_2 = _a.sent();
|
|
4993
4998
|
params.viewer.scene.primitives.add(cTileset_2);
|
|
4994
4999
|
cTileset_2.readyPromise.then(function () {
|
|
@@ -5018,7 +5023,7 @@ var TilesetRenderEngine;
|
|
|
5018
5023
|
}
|
|
5019
5024
|
});
|
|
5020
5025
|
return [2 /*return*/, cTileset_2];
|
|
5021
|
-
case
|
|
5026
|
+
case 7: throw ("Not implemented.");
|
|
5022
5027
|
}
|
|
5023
5028
|
});
|
|
5024
5029
|
});
|
|
@@ -8693,7 +8698,7 @@ var TileRenderEngine;
|
|
|
8693
8698
|
(function (Navigator) {
|
|
8694
8699
|
function GetOrCreateLayer(params) {
|
|
8695
8700
|
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;
|
|
8701
|
+
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
8702
|
var _e;
|
|
8698
8703
|
return __generator(this, function (_f) {
|
|
8699
8704
|
switch (_f.label) {
|
|
@@ -8716,90 +8721,131 @@ var TileRenderEngine;
|
|
|
8716
8721
|
return [4 /*yield*/, renderDefaultMapTile(apiGetter, defaultImg.id)];
|
|
8717
8722
|
case 1:
|
|
8718
8723
|
provider = _f.sent();
|
|
8719
|
-
return [3 /*break*/,
|
|
8724
|
+
return [3 /*break*/, 16];
|
|
8720
8725
|
case 2:
|
|
8721
8726
|
api = apiGetter.getApi(meta.accountId);
|
|
8727
|
+
// Ensure regional url is loaded.
|
|
8728
|
+
// When loading stuff in the same account as the default it's likely already loaded,
|
|
8729
|
+
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
8730
|
+
return [4 /*yield*/, api.Loading];
|
|
8731
|
+
case 3:
|
|
8732
|
+
// Ensure regional url is loaded.
|
|
8733
|
+
// When loading stuff in the same account as the default it's likely already loaded,
|
|
8734
|
+
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
8735
|
+
_f.sent();
|
|
8722
8736
|
return [4 /*yield*/, Tileset.Get({
|
|
8723
8737
|
api: api,
|
|
8724
8738
|
tilesetId: meta.tilesetId
|
|
8725
8739
|
})];
|
|
8726
|
-
case
|
|
8740
|
+
case 4:
|
|
8727
8741
|
tileset = (_f.sent()).tileset;
|
|
8728
|
-
|
|
8742
|
+
boundaries = undefined;
|
|
8743
|
+
settings = tileset === null || tileset === void 0 ? void 0 : tileset.settings;
|
|
8744
|
+
if (settings && settings.boundaries) {
|
|
8745
|
+
minLat = settings.boundaries.minLatitude;
|
|
8746
|
+
maxLat = settings.boundaries.maxLatitude;
|
|
8747
|
+
minLon = settings.boundaries.minLongitude;
|
|
8748
|
+
maxLon = settings.boundaries.maxLongitude;
|
|
8749
|
+
boundaries = Rectangle.fromDegrees(minLon, minLat, maxLon, maxLat);
|
|
8750
|
+
}
|
|
8751
|
+
minLevel = settings === null || settings === void 0 ? void 0 : settings.levelMin;
|
|
8752
|
+
maxLevel = settings === null || settings === void 0 ? void 0 : settings.levelMax;
|
|
8753
|
+
hasLevels = !isNaN(minLevel) && !isNaN(maxLevel);
|
|
8754
|
+
if (!(tileset.type === Tileset.EType.GeoMap)) return [3 /*break*/, 5];
|
|
8729
8755
|
provider = new TileMapServiceImageryProvider({
|
|
8730
8756
|
url: Tileset.GetPublicFileUrl({
|
|
8731
8757
|
api: api,
|
|
8732
8758
|
tilesetId: meta.tilesetId,
|
|
8733
|
-
file: ""
|
|
8759
|
+
file: "",
|
|
8760
|
+
viaCdn: true,
|
|
8761
|
+
viaCdnCacheToken: tileset.generateVersion
|
|
8734
8762
|
}),
|
|
8735
|
-
fileExtension: "png"
|
|
8763
|
+
fileExtension: "png",
|
|
8764
|
+
// Tested to not cause increased lag.
|
|
8765
|
+
rectangle: boundaries,
|
|
8766
|
+
maximumLevel: hasLevels ? maxLevel : undefined,
|
|
8767
|
+
minimumLevel: hasLevels ? minLevel : undefined,
|
|
8736
8768
|
});
|
|
8737
|
-
return [3 /*break*/,
|
|
8738
|
-
case
|
|
8739
|
-
if (!(tileset.type === Tileset.EType.ExternalGeoMap)) return [3 /*break*/,
|
|
8740
|
-
|
|
8741
|
-
_a =
|
|
8769
|
+
return [3 /*break*/, 16];
|
|
8770
|
+
case 5:
|
|
8771
|
+
if (!(tileset.type === Tileset.EType.ExternalGeoMap)) return [3 /*break*/, 15];
|
|
8772
|
+
settings_1 = tileset.settings;
|
|
8773
|
+
_a = settings_1.mapType;
|
|
8742
8774
|
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*/,
|
|
8775
|
+
case Tileset.Settings.EExternalMapType.CesiumIon: return [3 /*break*/, 6];
|
|
8776
|
+
case Tileset.Settings.EExternalMapType.MapBoxImagery: return [3 /*break*/, 8];
|
|
8777
|
+
case Tileset.Settings.EExternalMapType.OpenStreetMapImagery: return [3 /*break*/, 12];
|
|
8778
|
+
case Tileset.Settings.EExternalMapType.TileMapImagery: return [3 /*break*/, 13];
|
|
8747
8779
|
}
|
|
8748
|
-
return [3 /*break*/,
|
|
8749
|
-
case
|
|
8780
|
+
return [3 /*break*/, 14];
|
|
8781
|
+
case 6:
|
|
8750
8782
|
_c = (_b = IonImageryProvider).bind;
|
|
8751
8783
|
_e = {
|
|
8752
|
-
assetId:
|
|
8784
|
+
assetId: settings_1.ionId
|
|
8753
8785
|
};
|
|
8754
8786
|
return [4 /*yield*/, findKey(apiGetter, ProgramKey.EProgramId.CesiumIon, null)];
|
|
8755
|
-
case
|
|
8787
|
+
case 7:
|
|
8756
8788
|
provider = new (_c.apply(_b, [void 0, (_e.accessToken = _f.sent(),
|
|
8757
8789
|
_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;
|
|
8790
|
+
return [3 /*break*/, 14];
|
|
8791
|
+
case 8:
|
|
8792
|
+
if (!settings_1.mapBoxKey) return [3 /*break*/, 9];
|
|
8793
|
+
_d = settings_1.mapBoxKey;
|
|
8794
|
+
return [3 /*break*/, 11];
|
|
8795
|
+
case 9: return [4 /*yield*/, findKey(apiGetter, ProgramKey.EProgramId.Mapbox, null)];
|
|
8767
8796
|
case 10:
|
|
8797
|
+
_d = _f.sent();
|
|
8798
|
+
_f.label = 11;
|
|
8799
|
+
case 11:
|
|
8768
8800
|
mapboxKey = _d;
|
|
8769
8801
|
provider = new UrlTemplateImageryProvider({
|
|
8770
8802
|
url: "https://api.mapbox.com/styles/v1/"
|
|
8771
|
-
+
|
|
8803
|
+
+ settings_1.mapBoxAccount + "/" + settings_1.mapBoxStyleId +
|
|
8772
8804
|
"/tiles/256/{z}/{x}/{y}?access_token="
|
|
8773
8805
|
+ mapboxKey
|
|
8774
8806
|
});
|
|
8775
|
-
return [3 /*break*/,
|
|
8776
|
-
case
|
|
8807
|
+
return [3 /*break*/, 14];
|
|
8808
|
+
case 12:
|
|
8777
8809
|
provider = new OpenStreetMapImageryProvider({
|
|
8778
|
-
url:
|
|
8779
|
-
fileExtension: prepareFileExt(
|
|
8810
|
+
url: settings_1.url,
|
|
8811
|
+
fileExtension: prepareFileExt(settings_1.sourceExt),
|
|
8812
|
+
// Unused until tested properly. In the past these settings caused large lag.
|
|
8813
|
+
// rectangle: boundaries,
|
|
8814
|
+
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
8815
|
+
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
8780
8816
|
});
|
|
8781
|
-
return [3 /*break*/,
|
|
8782
|
-
case
|
|
8817
|
+
return [3 /*break*/, 14];
|
|
8818
|
+
case 13:
|
|
8783
8819
|
provider = new TileMapServiceImageryProvider({
|
|
8784
|
-
url:
|
|
8785
|
-
fileExtension: prepareFileExt(
|
|
8820
|
+
url: settings_1.url,
|
|
8821
|
+
fileExtension: prepareFileExt(settings_1.sourceExt),
|
|
8822
|
+
// Unused until tested properly. In the past these settings caused large lag.
|
|
8823
|
+
// rectangle: boundaries,
|
|
8824
|
+
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
8825
|
+
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
8786
8826
|
});
|
|
8787
|
-
return [3 /*break*/,
|
|
8788
|
-
case
|
|
8789
|
-
case
|
|
8827
|
+
return [3 /*break*/, 14];
|
|
8828
|
+
case 14: return [3 /*break*/, 16];
|
|
8829
|
+
case 15:
|
|
8790
8830
|
if (tileset.type === Tileset.EType.EntitiesMap) {
|
|
8791
8831
|
provider = new UrlTemplateImageryProvider({
|
|
8792
8832
|
url: Tileset.GetPublicFileUrl({
|
|
8793
8833
|
api: api,
|
|
8794
8834
|
tilesetId: meta.tilesetId,
|
|
8795
|
-
file: "{z}/{x}/{y}.png"
|
|
8835
|
+
file: "{z}/{x}/{y}.png",
|
|
8836
|
+
viaCdn: true,
|
|
8837
|
+
viaCdnCacheToken: tileset.generateVersion
|
|
8796
8838
|
}),
|
|
8797
8839
|
tileHeight: 256,
|
|
8798
8840
|
tileWidth: 256
|
|
8841
|
+
// Unused until tested properly. In the past these settings caused large lag.
|
|
8842
|
+
// rectangle: boundaries,
|
|
8843
|
+
// minimumLevel: hasLevels ? minLevel : undefined,
|
|
8844
|
+
// maximumLevel: hasLevels ? maxLevel : undefined,
|
|
8799
8845
|
});
|
|
8800
8846
|
}
|
|
8801
|
-
_f.label =
|
|
8802
|
-
case
|
|
8847
|
+
_f.label = 16;
|
|
8848
|
+
case 16:
|
|
8803
8849
|
if (provider) {
|
|
8804
8850
|
layer = viewer.imageryLayers.addImageryProvider(provider);
|
|
8805
8851
|
layer._bMeta = meta;
|
|
@@ -9037,14 +9083,23 @@ var TileRenderEngine;
|
|
|
9037
9083
|
return [4 /*yield*/, renderDefaultTerrTile(defaultTerr.id)];
|
|
9038
9084
|
case 1:
|
|
9039
9085
|
provider = (_b.sent());
|
|
9040
|
-
return [3 /*break*/,
|
|
9086
|
+
return [3 /*break*/, 5];
|
|
9041
9087
|
case 2:
|
|
9042
9088
|
api = params.apiGetter.getApi(params.tile.accountId);
|
|
9089
|
+
// Ensure regional url is loaded.
|
|
9090
|
+
// When loading stuff in the same account as the default it's likely already loaded,
|
|
9091
|
+
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
9092
|
+
return [4 /*yield*/, api.Loading];
|
|
9093
|
+
case 3:
|
|
9094
|
+
// Ensure regional url is loaded.
|
|
9095
|
+
// When loading stuff in the same account as the default it's likely already loaded,
|
|
9096
|
+
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
9097
|
+
_b.sent();
|
|
9043
9098
|
return [4 /*yield*/, Tileset.Get({
|
|
9044
9099
|
api: api,
|
|
9045
9100
|
tilesetId: params.tile.tilesetId
|
|
9046
9101
|
})];
|
|
9047
|
-
case
|
|
9102
|
+
case 4:
|
|
9048
9103
|
tileset = (_b.sent()).tileset;
|
|
9049
9104
|
url = void 0;
|
|
9050
9105
|
vertexes = true;
|
|
@@ -9052,7 +9107,9 @@ var TileRenderEngine;
|
|
|
9052
9107
|
url = Tileset.GetPublicFileUrl({
|
|
9053
9108
|
api: api,
|
|
9054
9109
|
tilesetId: tileset.id,
|
|
9055
|
-
file: ""
|
|
9110
|
+
file: "",
|
|
9111
|
+
viaCdn: true,
|
|
9112
|
+
viaCdnCacheToken: tileset.generateVersion
|
|
9056
9113
|
});
|
|
9057
9114
|
}
|
|
9058
9115
|
else if (tileset.type === Tileset.EType.ExternalTerrain) {
|
|
@@ -9069,8 +9126,8 @@ var TileRenderEngine;
|
|
|
9069
9126
|
requestVertexNormals: vertexes
|
|
9070
9127
|
});
|
|
9071
9128
|
}
|
|
9072
|
-
_b.label =
|
|
9073
|
-
case
|
|
9129
|
+
_b.label = 5;
|
|
9130
|
+
case 5:
|
|
9074
9131
|
if (provider) {
|
|
9075
9132
|
provider._bMeta = {
|
|
9076
9133
|
accountId: params.tile.accountId,
|