@cesium/engine 2.1.0 → 2.2.0
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/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-379015ef.js} +1 -1
- package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-57f2b24f.js} +1 -1
- package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-ecabfc78.js} +1 -1
- package/Build/Workers/{Color-f85df1be.js → Color-14d1a36d.js} +1 -1
- package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-048c3c14.js} +1 -1
- package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-520c8619.js} +1 -1
- package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-119068b8.js} +1 -1
- package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-2dfc3523.js} +1 -1
- package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-0a1e0170.js} +1 -1
- package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-c5251669.js} +1 -1
- package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-d10a5221.js} +1 -1
- package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-7039a0ae.js} +1 -1
- package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-857186be.js} +1 -1
- package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-400fa1b7.js} +2 -2
- package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-7a2de5c6.js} +1 -1
- package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-916636fa.js} +1 -1
- package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-b4d02d4d.js} +1 -1
- package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-96fe1752.js} +5 -3
- package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-931f1ec6.js} +1 -1
- package/Build/Workers/{PolygonPipeline-d31ff61c.js → PolygonPipeline-32fc92cc.js} +1 -1
- package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-6d5c63e5.js} +1 -1
- package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-f068c1fb.js} +1 -1
- package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-879f996a.js} +1 -1
- package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-2d6f36f3.js} +1 -1
- package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-82882059.js} +1 -1
- package/Build/Workers/{Transforms-9e9df299.js → Transforms-9052372a.js} +6 -5
- package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-db7a64fb.js} +1 -1
- package/Build/Workers/cesiumWorkerBootstrapper.js +1 -1
- package/Build/Workers/combineGeometry.js +1 -1
- package/Build/Workers/createBoxGeometry.js +1 -1
- package/Build/Workers/createBoxOutlineGeometry.js +1 -1
- package/Build/Workers/createCircleGeometry.js +1 -1
- package/Build/Workers/createCircleOutlineGeometry.js +1 -1
- package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
- package/Build/Workers/createCorridorGeometry.js +1 -1
- package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
- package/Build/Workers/createCylinderGeometry.js +1 -1
- package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
- package/Build/Workers/createEllipseGeometry.js +1 -1
- package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
- package/Build/Workers/createEllipsoidGeometry.js +1 -1
- package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
- package/Build/Workers/createFrustumGeometry.js +1 -1
- package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
- package/Build/Workers/createGeometry.js +1 -1
- package/Build/Workers/createGroundPolylineGeometry.js +1 -1
- package/Build/Workers/createPlaneGeometry.js +1 -1
- package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
- package/Build/Workers/createPolygonGeometry.js +1 -1
- package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
- package/Build/Workers/createPolylineGeometry.js +1 -1
- package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
- package/Build/Workers/createRectangleGeometry.js +1 -1
- package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
- package/Build/Workers/createSimplePolylineGeometry.js +1 -1
- package/Build/Workers/createSphereGeometry.js +1 -1
- package/Build/Workers/createSphereOutlineGeometry.js +1 -1
- package/Build/Workers/createVectorTileGeometries.js +1 -1
- package/Build/Workers/createVectorTilePolygons.js +1 -1
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
- package/Build/Workers/createVerticesFromHeightmap.js +1 -1
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
- package/Build/Workers/createWallGeometry.js +1 -1
- package/Build/Workers/createWallOutlineGeometry.js +1 -1
- package/Build/Workers/package.js +1 -1
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +291 -191
- package/Source/Core/CesiumTerrainProvider.js +571 -434
- package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
- package/Source/Core/EllipsoidTerrainProvider.js +17 -10
- package/Source/Core/FrustumGeometry.js +1 -1
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +86 -34
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +119 -82
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonResource.js +14 -3
- package/Source/Core/OrientedBoundingBox.js +4 -2
- package/Source/Core/RequestScheduler.js +1 -1
- package/Source/Core/Resource.js +2 -2
- package/Source/Core/TerrainProvider.js +9 -14
- package/Source/Core/TileProviderError.js +8 -8
- package/Source/Core/VRTheWorldTerrainProvider.js +193 -124
- package/Source/Core/buildModuleUrl.js +4 -3
- package/Source/Core/createWorldTerrain.js +20 -2
- package/Source/Core/createWorldTerrainAsync.js +48 -0
- package/Source/Core/sampleTerrain.js +9 -10
- package/Source/Core/sampleTerrainMostDetailed.js +66 -72
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +37 -26
- package/Source/DataSources/Entity.js +6 -1
- package/Source/DataSources/ModelVisualizer.js +99 -31
- package/Source/DataSources/PolygonGraphics.js +1 -1
- package/Source/Scene/ArcGisMapServerImageryProvider.js +552 -376
- package/Source/Scene/BingMapsImageryProvider.js +511 -305
- package/Source/Scene/BufferLoader.js +29 -34
- package/Source/Scene/Cesium3DTile.js +388 -251
- package/Source/Scene/Cesium3DTileBatchTable.js +2 -2
- package/Source/Scene/Cesium3DTileContent.js +16 -0
- package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
- package/Source/Scene/Cesium3DTilePass.js +8 -11
- package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +225 -117
- package/Source/Scene/Cesium3DTileset.js +755 -481
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
- package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
- package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
- package/Source/Scene/ClassificationPrimitive.js +7 -0
- package/Source/Scene/Composite3DTileContent.js +69 -26
- package/Source/Scene/CreditDisplay.js +20 -4
- package/Source/Scene/DepthPlane.js +1 -1
- package/Source/Scene/Empty3DTileContent.js +31 -1
- package/Source/Scene/Geometry3DTileContent.js +47 -7
- package/Source/Scene/Globe.js +5 -1
- package/Source/Scene/GlobeSurfaceTile.js +2 -1
- package/Source/Scene/GlobeSurfaceTileProvider.js +50 -27
- package/Source/Scene/GltfBufferViewLoader.js +47 -91
- package/Source/Scene/GltfDracoLoader.js +110 -112
- package/Source/Scene/GltfImageLoader.js +71 -78
- package/Source/Scene/GltfIndexBufferLoader.js +108 -121
- package/Source/Scene/GltfJsonLoader.js +75 -74
- package/Source/Scene/GltfLoader.js +392 -280
- package/Source/Scene/GltfStructuralMetadataLoader.js +109 -110
- package/Source/Scene/GltfTextureLoader.js +97 -96
- package/Source/Scene/GltfVertexBufferLoader.js +128 -133
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +353 -225
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +491 -331
- package/Source/Scene/GridImageryProvider.js +267 -104
- package/Source/Scene/GroundPolylinePrimitive.js +12 -1
- package/Source/Scene/GroundPrimitive.js +8 -1
- package/Source/Scene/I3SDataProvider.js +214 -113
- package/Source/Scene/I3SFeature.js +7 -6
- package/Source/Scene/I3SLayer.js +26 -37
- package/Source/Scene/I3SNode.js +59 -66
- package/Source/Scene/Imagery.js +6 -1
- package/Source/Scene/ImageryLayer.js +299 -48
- package/Source/Scene/ImageryLayerCollection.js +26 -0
- package/Source/Scene/ImageryProvider.js +129 -111
- package/Source/Scene/Implicit3DTileContent.js +72 -23
- package/Source/Scene/ImplicitSubtree.js +66 -45
- package/Source/Scene/IonImageryProvider.js +471 -264
- package/Source/Scene/MapboxImageryProvider.js +272 -112
- package/Source/Scene/MapboxStyleImageryProvider.js +270 -111
- package/Source/Scene/MetadataSchemaLoader.js +26 -36
- package/Source/Scene/Model/B3dmLoader.js +42 -46
- package/Source/Scene/Model/GeoJsonLoader.js +8 -32
- package/Source/Scene/Model/I3dmLoader.js +48 -74
- package/Source/Scene/Model/Model.js +470 -132
- package/Source/Scene/Model/Model3DTileContent.js +83 -31
- package/Source/Scene/Model/ModelAnimationCollection.js +3 -3
- package/Source/Scene/Model/ModelDrawCommand.js +15 -26
- package/Source/Scene/Model/ModelUtility.js +16 -16
- package/Source/Scene/Model/PntsLoader.js +27 -32
- package/Source/Scene/Multiple3DTileContent.js +134 -115
- package/Source/Scene/PointCloud.js +11 -19
- package/Source/Scene/Primitive.js +20 -0
- package/Source/Scene/QuadtreePrimitive.js +2 -0
- package/Source/Scene/QuadtreeTileProvider.js +4 -8
- package/Source/Scene/ResourceCache.js +47 -105
- package/Source/Scene/ResourceCacheStatistics.js +24 -58
- package/Source/Scene/ResourceLoader.js +5 -17
- package/Source/Scene/ResourceLoaderState.js +12 -4
- package/Source/Scene/Scene.js +65 -0
- package/Source/Scene/ScreenSpaceCameraController.js +1 -1
- package/Source/Scene/SingleTileImageryProvider.js +382 -209
- package/Source/Scene/Terrain.js +196 -0
- package/Source/Scene/TileCoordinatesImageryProvider.js +267 -104
- package/Source/Scene/TileMapServiceImageryProvider.js +177 -85
- package/Source/Scene/Tileset3DTileContent.js +47 -5
- package/Source/Scene/TimeDynamicPointCloud.js +15 -2
- package/Source/Scene/UrlTemplateImageryProvider.js +343 -215
- package/Source/Scene/Vector3DTileClampedPolylines.js +96 -84
- package/Source/Scene/Vector3DTileContent.js +47 -22
- package/Source/Scene/Vector3DTileGeometry.js +57 -52
- package/Source/Scene/Vector3DTilePoints.js +72 -68
- package/Source/Scene/Vector3DTilePolygons.js +118 -117
- package/Source/Scene/Vector3DTilePolylines.js +86 -82
- package/Source/Scene/Vector3DTilePrimitive.js +0 -1
- package/Source/Scene/VoxelContent.js +61 -63
- package/Source/Scene/VoxelPrimitive.js +39 -91
- package/Source/Scene/VoxelProvider.js +2 -2
- package/Source/Scene/WebMapServiceImageryProvider.js +272 -111
- package/Source/Scene/WebMapTileServiceImageryProvider.js +270 -107
- package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
- package/Source/Scene/createOsmBuildings.js +6 -0
- package/Source/Scene/createOsmBuildingsAsync.js +82 -0
- package/Source/Scene/createWorldImagery.js +14 -5
- package/Source/Scene/createWorldImageryAsync.js +39 -0
- package/Source/Widget/CesiumWidget.js +55 -27
- package/index.d.ts +2158 -1395
- package/index.js +58 -51
- package/package.json +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import Cartesian2 from "../Core/Cartesian2.js";
|
|
2
2
|
import Cartographic from "../Core/Cartographic.js";
|
|
3
|
+
import Check from "../Core/Check.js";
|
|
3
4
|
import defaultValue from "../Core/defaultValue.js";
|
|
4
5
|
import defined from "../Core/defined.js";
|
|
5
|
-
import
|
|
6
|
+
import deprecationWarning from "../Core/deprecationWarning.js";
|
|
6
7
|
import GeographicProjection from "../Core/GeographicProjection.js";
|
|
7
8
|
import GeographicTilingScheme from "../Core/GeographicTilingScheme.js";
|
|
8
9
|
import Rectangle from "../Core/Rectangle.js";
|
|
@@ -18,7 +19,7 @@ import UrlTemplateImageryProvider from "./UrlTemplateImageryProvider.js";
|
|
|
18
19
|
*
|
|
19
20
|
* Initialization options for the TileMapServiceImageryProvider constructor
|
|
20
21
|
*
|
|
21
|
-
* @property {Resource|string|Promise<Resource>|Promise<string>} [url
|
|
22
|
+
* @property {Resource|string|Promise<Resource>|Promise<string>} [url] Path to image tiles on server. Deprecated
|
|
22
23
|
* @property {string} [fileExtension='png'] The file extension for images on the server.
|
|
23
24
|
* @property {Credit|string} [credit=''] A credit for the data source, which is displayed on the canvas.
|
|
24
25
|
* @property {number} [minimumLevel=0] The minimum level-of-detail supported by the imagery provider. Take care when specifying
|
|
@@ -35,10 +36,15 @@ import UrlTemplateImageryProvider from "./UrlTemplateImageryProvider.js";
|
|
|
35
36
|
* @property {number} [tileWidth=256] Pixel width of image tiles.
|
|
36
37
|
* @property {number} [tileHeight=256] Pixel height of image tiles.
|
|
37
38
|
* @property {boolean} [flipXY] Older versions of gdal2tiles.py flipped X and Y values in tilemapresource.xml.
|
|
39
|
+
* @property {TileDiscardPolicy} [tileDiscardPolicy] A policy for discarding tile images according to some criteria
|
|
38
40
|
* Specifying this option will do the same, allowing for loading of these incorrect tilesets.
|
|
39
41
|
*/
|
|
40
42
|
|
|
41
43
|
/**
|
|
44
|
+
* <div class="notice">
|
|
45
|
+
* To construct a TileMapServiceImageryProvider, call {@link TileMapServiceImageryProvider.fromUrl}. Do not call the constructor directly.
|
|
46
|
+
* </div>
|
|
47
|
+
*
|
|
42
48
|
* An imagery provider that provides tiled imagery as generated by
|
|
43
49
|
* {@link http://www.maptiler.org/|MapTiler}, {@link http://www.klokan.cz/projects/gdal2tiles/|GDAL2Tiles}, etc.
|
|
44
50
|
*
|
|
@@ -58,11 +64,11 @@ import UrlTemplateImageryProvider from "./UrlTemplateImageryProvider.js";
|
|
|
58
64
|
* @see UrlTemplateImageryProvider
|
|
59
65
|
*
|
|
60
66
|
* @example
|
|
61
|
-
* const tms =
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
67
|
+
* const tms = await Cesium.TileMapServiceImageryProvider.fromUrl(
|
|
68
|
+
* "../images/cesium_maptiler/Cesium_Logo_Color", {
|
|
69
|
+
* fileExtension: 'png',
|
|
70
|
+
* maximumLevel: 4,
|
|
71
|
+
* rectangle: new Cesium.Rectangle(
|
|
66
72
|
* Cesium.Math.toRadians(-120.0),
|
|
67
73
|
* Cesium.Math.toRadians(20.0),
|
|
68
74
|
* Cesium.Math.toRadians(-60.0),
|
|
@@ -72,43 +78,122 @@ import UrlTemplateImageryProvider from "./UrlTemplateImageryProvider.js";
|
|
|
72
78
|
function TileMapServiceImageryProvider(options) {
|
|
73
79
|
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
74
80
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
81
|
+
if (defined(options.url)) {
|
|
82
|
+
deprecationWarning(
|
|
83
|
+
"TileMapServiceImageryProvider options.url",
|
|
84
|
+
"options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use TileMapServiceImageryProvider.fromUrl instead."
|
|
85
|
+
);
|
|
80
86
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
87
|
+
this._metadataError = undefined;
|
|
88
|
+
this._ready = false;
|
|
89
|
+
|
|
90
|
+
let resource;
|
|
91
|
+
const that = this;
|
|
92
|
+
const promise = Promise.resolve(options.url)
|
|
93
|
+
.then(function (url) {
|
|
94
|
+
resource = Resource.createIfNeeded(url);
|
|
95
|
+
resource.appendForwardSlash();
|
|
96
|
+
|
|
97
|
+
that._tmsResource = resource;
|
|
98
|
+
that._xmlResource = resource.getDerivedResource({
|
|
99
|
+
url: "tilemapresource.xml",
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
return TileMapServiceImageryProvider._requestMetadata(
|
|
103
|
+
options,
|
|
104
|
+
that._tmsResource,
|
|
105
|
+
that._xmlResource,
|
|
106
|
+
that
|
|
107
|
+
);
|
|
108
|
+
})
|
|
109
|
+
.catch((e) => {
|
|
110
|
+
return Promise.reject(e);
|
|
100
111
|
});
|
|
101
112
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
return Promise.reject(e);
|
|
106
|
-
});
|
|
113
|
+
UrlTemplateImageryProvider.call(this, promise);
|
|
114
|
+
this._promise = promise;
|
|
115
|
+
}
|
|
107
116
|
|
|
108
|
-
|
|
109
|
-
this
|
|
117
|
+
// After readyPromise deprecation, this should become just
|
|
118
|
+
// UrlTemplateImageryProvider.call(this, options);
|
|
110
119
|
}
|
|
111
120
|
|
|
121
|
+
TileMapServiceImageryProvider._requestMetadata = async function (
|
|
122
|
+
options,
|
|
123
|
+
tmsResource,
|
|
124
|
+
xmlResource,
|
|
125
|
+
provider
|
|
126
|
+
) {
|
|
127
|
+
// Try to load remaining parameters from XML
|
|
128
|
+
try {
|
|
129
|
+
const xml = await xmlResource.fetchXML();
|
|
130
|
+
return TileMapServiceImageryProvider._metadataSuccess(
|
|
131
|
+
xml,
|
|
132
|
+
options,
|
|
133
|
+
tmsResource,
|
|
134
|
+
xmlResource,
|
|
135
|
+
provider
|
|
136
|
+
);
|
|
137
|
+
} catch (e) {
|
|
138
|
+
if (e instanceof RequestErrorEvent) {
|
|
139
|
+
return TileMapServiceImageryProvider._metadataFailure(
|
|
140
|
+
options,
|
|
141
|
+
tmsResource
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
throw e;
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Creates a TileMapServiceImageryProvider from the specified url.
|
|
150
|
+
*
|
|
151
|
+
* @param {Resource|String} url Path to image tiles on server.
|
|
152
|
+
* @param {TileMapServiceImageryProvider.ConstructorOptions} [options] Object describing initialization options.
|
|
153
|
+
* @returns {Promise<TileMapServiceImageryProvider>} A promise that resolves to the created TileMapServiceImageryProvider.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* const tms = await Cesium.TileMapServiceImageryProvider.fromUrl(
|
|
157
|
+
* '../images/cesium_maptiler/Cesium_Logo_Color', {
|
|
158
|
+
* fileExtension: 'png',
|
|
159
|
+
* maximumLevel: 4,
|
|
160
|
+
* rectangle: new Cesium.Rectangle(
|
|
161
|
+
* Cesium.Math.toRadians(-120.0),
|
|
162
|
+
* Cesium.Math.toRadians(20.0),
|
|
163
|
+
* Cesium.Math.toRadians(-60.0),
|
|
164
|
+
* Cesium.Math.toRadians(40.0))
|
|
165
|
+
* });
|
|
166
|
+
*
|
|
167
|
+
* @exception {RuntimeError} Unable to find expected tilesets or bbox attributes in tilemapresource.xml
|
|
168
|
+
* @exception {RuntimeError} tilemapresource.xml specifies an unsupported profile attribute
|
|
169
|
+
*/
|
|
170
|
+
TileMapServiceImageryProvider.fromUrl = async function (url, options) {
|
|
171
|
+
//>>includeStart('debug', pragmas.debug);
|
|
172
|
+
Check.defined("url", url);
|
|
173
|
+
//>>includeEnd('debug');
|
|
174
|
+
|
|
175
|
+
const resource = Resource.createIfNeeded(url);
|
|
176
|
+
resource.appendForwardSlash();
|
|
177
|
+
|
|
178
|
+
const tmsResource = resource;
|
|
179
|
+
const xmlResource = resource.getDerivedResource({
|
|
180
|
+
url: "tilemapresource.xml",
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
184
|
+
const metadata = await TileMapServiceImageryProvider._requestMetadata(
|
|
185
|
+
options,
|
|
186
|
+
tmsResource,
|
|
187
|
+
xmlResource
|
|
188
|
+
);
|
|
189
|
+
|
|
190
|
+
// Once the deprecated behavior is removed, this can become
|
|
191
|
+
// return new TileMapServiceImageryProvider(metadata);
|
|
192
|
+
const provider = new TileMapServiceImageryProvider();
|
|
193
|
+
UrlTemplateImageryProvider.call(provider, metadata);
|
|
194
|
+
return provider;
|
|
195
|
+
};
|
|
196
|
+
|
|
112
197
|
if (defined(Object.create)) {
|
|
113
198
|
TileMapServiceImageryProvider.prototype = Object.create(
|
|
114
199
|
UrlTemplateImageryProvider.prototype
|
|
@@ -116,19 +201,6 @@ if (defined(Object.create)) {
|
|
|
116
201
|
TileMapServiceImageryProvider.prototype.constructor = TileMapServiceImageryProvider;
|
|
117
202
|
}
|
|
118
203
|
|
|
119
|
-
TileMapServiceImageryProvider.prototype._requestMetadata = function () {
|
|
120
|
-
// Try to load remaining parameters from XML
|
|
121
|
-
return this._xmlResource
|
|
122
|
-
.fetchXML()
|
|
123
|
-
.then(this._metadataSuccess)
|
|
124
|
-
.catch((e) => {
|
|
125
|
-
if (e instanceof RequestErrorEvent) {
|
|
126
|
-
return this._metadataFailure();
|
|
127
|
-
}
|
|
128
|
-
return Promise.reject(e);
|
|
129
|
-
});
|
|
130
|
-
};
|
|
131
|
-
|
|
132
204
|
/**
|
|
133
205
|
* Mutates the properties of a given rectangle so it does not extend outside of the given tiling scheme's rectangle
|
|
134
206
|
* @private
|
|
@@ -173,16 +245,29 @@ function calculateSafeMinimumDetailLevel(
|
|
|
173
245
|
return minimumLevel;
|
|
174
246
|
}
|
|
175
247
|
|
|
176
|
-
|
|
248
|
+
/**
|
|
249
|
+
* Parses the results of a successful xml request
|
|
250
|
+
* @private
|
|
251
|
+
*
|
|
252
|
+
* @param {Object} xml
|
|
253
|
+
* @param {TileMapServiceImageryProvider.ConstructorOptions} options
|
|
254
|
+
* @param {Resource} tmsResource
|
|
255
|
+
* @param {Resource} xmlResource
|
|
256
|
+
* @returns {UrlTemplateImageryProvider.ConstructorOptions}
|
|
257
|
+
*/
|
|
258
|
+
TileMapServiceImageryProvider._metadataSuccess = function (
|
|
259
|
+
xml,
|
|
260
|
+
options,
|
|
261
|
+
tmsResource,
|
|
262
|
+
xmlResource,
|
|
263
|
+
provider
|
|
264
|
+
) {
|
|
177
265
|
const tileFormatRegex = /tileformat/i;
|
|
178
266
|
const tileSetRegex = /tileset/i;
|
|
179
267
|
const tileSetsRegex = /tilesets/i;
|
|
180
268
|
const bboxRegex = /boundingbox/i;
|
|
181
269
|
let format, bbox, tilesets;
|
|
182
270
|
const tilesetsList = []; //list of TileSets
|
|
183
|
-
const xmlResource = this._xmlResource;
|
|
184
|
-
let metadataError = this._metadataError;
|
|
185
|
-
const requestMetadata = this._requestMetadata;
|
|
186
271
|
|
|
187
272
|
// Allowing options properties (already copied to that) to override XML values
|
|
188
273
|
|
|
@@ -209,20 +294,18 @@ TileMapServiceImageryProvider.prototype._metadataSuccess = function (xml) {
|
|
|
209
294
|
let message;
|
|
210
295
|
if (!defined(tilesets) || !defined(bbox)) {
|
|
211
296
|
message = `Unable to find expected tilesets or bbox attributes in ${xmlResource.url}.`;
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
this._metadataError = metadataError;
|
|
220
|
-
return requestMetadata();
|
|
297
|
+
if (defined(provider)) {
|
|
298
|
+
TileProviderError.reportError(
|
|
299
|
+
undefined,
|
|
300
|
+
provider,
|
|
301
|
+
provider.errorEvent,
|
|
302
|
+
message
|
|
303
|
+
);
|
|
221
304
|
}
|
|
222
|
-
|
|
305
|
+
|
|
306
|
+
throw new RuntimeError(message);
|
|
223
307
|
}
|
|
224
308
|
|
|
225
|
-
const options = this._options;
|
|
226
309
|
const fileExtension = defaultValue(
|
|
227
310
|
options.fileExtension,
|
|
228
311
|
format.getAttribute("extension")
|
|
@@ -262,18 +345,17 @@ TileMapServiceImageryProvider.prototype._metadataSuccess = function (xml) {
|
|
|
262
345
|
ellipsoid: options.ellipsoid,
|
|
263
346
|
});
|
|
264
347
|
} else {
|
|
265
|
-
message = `${xmlResource.url}specifies an unsupported profile attribute, ${tilingSchemeName}.`;
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
this._metadataError = metadataError;
|
|
274
|
-
return requestMetadata();
|
|
348
|
+
message = `${xmlResource.url} specifies an unsupported profile attribute, ${tilingSchemeName}.`;
|
|
349
|
+
if (defined(provider)) {
|
|
350
|
+
TileProviderError.reportError(
|
|
351
|
+
undefined,
|
|
352
|
+
provider,
|
|
353
|
+
provider.errorEvent,
|
|
354
|
+
message
|
|
355
|
+
);
|
|
275
356
|
}
|
|
276
|
-
|
|
357
|
+
|
|
358
|
+
throw new RuntimeError(message);
|
|
277
359
|
}
|
|
278
360
|
}
|
|
279
361
|
|
|
@@ -344,11 +426,11 @@ TileMapServiceImageryProvider.prototype._metadataSuccess = function (xml) {
|
|
|
344
426
|
minimumLevel
|
|
345
427
|
);
|
|
346
428
|
|
|
347
|
-
const templateResource =
|
|
429
|
+
const templateResource = tmsResource.getDerivedResource({
|
|
348
430
|
url: `{z}/{x}/{reverseY}.${fileExtension}`,
|
|
349
431
|
});
|
|
350
432
|
|
|
351
|
-
return
|
|
433
|
+
return {
|
|
352
434
|
url: templateResource,
|
|
353
435
|
tilingScheme: tilingScheme,
|
|
354
436
|
rectangle: rectangle,
|
|
@@ -358,12 +440,22 @@ TileMapServiceImageryProvider.prototype._metadataSuccess = function (xml) {
|
|
|
358
440
|
maximumLevel: maximumLevel,
|
|
359
441
|
tileDiscardPolicy: options.tileDiscardPolicy,
|
|
360
442
|
credit: options.credit,
|
|
361
|
-
}
|
|
443
|
+
};
|
|
362
444
|
};
|
|
363
445
|
|
|
364
|
-
|
|
446
|
+
/**
|
|
447
|
+
* Handle xml request failure by providing the default values
|
|
448
|
+
* @private
|
|
449
|
+
*
|
|
450
|
+
* @param {TileMapServiceImageryProvider.ConstructorOptions} options
|
|
451
|
+
* @param {Resource} tmsResource
|
|
452
|
+
* @returns {UrlTemplateImageryProvider.ConstructorOptions}
|
|
453
|
+
*/
|
|
454
|
+
TileMapServiceImageryProvider._metadataFailure = function (
|
|
455
|
+
options,
|
|
456
|
+
tmsResource
|
|
457
|
+
) {
|
|
365
458
|
// Can't load XML, still allow options and defaults
|
|
366
|
-
const options = this._options;
|
|
367
459
|
const fileExtension = defaultValue(options.fileExtension, "png");
|
|
368
460
|
const tileWidth = defaultValue(options.tileWidth, 256);
|
|
369
461
|
const tileHeight = defaultValue(options.tileHeight, 256);
|
|
@@ -383,11 +475,11 @@ TileMapServiceImageryProvider.prototype._metadataFailure = function () {
|
|
|
383
475
|
options.minimumLevel
|
|
384
476
|
);
|
|
385
477
|
|
|
386
|
-
const templateResource =
|
|
478
|
+
const templateResource = tmsResource.getDerivedResource({
|
|
387
479
|
url: `{z}/{x}/{reverseY}.${fileExtension}`,
|
|
388
480
|
});
|
|
389
481
|
|
|
390
|
-
return
|
|
482
|
+
return {
|
|
391
483
|
url: templateResource,
|
|
392
484
|
tilingScheme: tilingScheme,
|
|
393
485
|
rectangle: rectangle,
|
|
@@ -397,7 +489,7 @@ TileMapServiceImageryProvider.prototype._metadataFailure = function () {
|
|
|
397
489
|
maximumLevel: maximumLevel,
|
|
398
490
|
tileDiscardPolicy: options.tileDiscardPolicy,
|
|
399
491
|
credit: options.credit,
|
|
400
|
-
}
|
|
492
|
+
};
|
|
401
493
|
};
|
|
402
494
|
|
|
403
495
|
export default TileMapServiceImageryProvider;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import destroyObject from "../Core/destroyObject.js";
|
|
2
|
+
import deprecationWarning from "../Core/deprecationWarning.js";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Represents content for a tile in a
|
|
@@ -13,7 +14,7 @@ import destroyObject from "../Core/destroyObject.js";
|
|
|
13
14
|
*
|
|
14
15
|
* @private
|
|
15
16
|
*/
|
|
16
|
-
function Tileset3DTileContent(tileset, tile, resource
|
|
17
|
+
function Tileset3DTileContent(tileset, tile, resource) {
|
|
17
18
|
this._tileset = tileset;
|
|
18
19
|
this._tile = tile;
|
|
19
20
|
this._resource = resource;
|
|
@@ -23,7 +24,8 @@ function Tileset3DTileContent(tileset, tile, resource, json) {
|
|
|
23
24
|
this._metadata = undefined;
|
|
24
25
|
this._group = undefined;
|
|
25
26
|
|
|
26
|
-
this.
|
|
27
|
+
this._ready = false;
|
|
28
|
+
this._readyPromise = Promise.resolve(this);
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
Object.defineProperties(Tileset3DTileContent.prototype, {
|
|
@@ -69,8 +71,37 @@ Object.defineProperties(Tileset3DTileContent.prototype, {
|
|
|
69
71
|
},
|
|
70
72
|
},
|
|
71
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Returns true when the tile's content is ready to render; otherwise false
|
|
76
|
+
*
|
|
77
|
+
* @memberof Tileset3DTileContent.prototype
|
|
78
|
+
*
|
|
79
|
+
* @type {boolean}
|
|
80
|
+
* @readonly
|
|
81
|
+
* @private
|
|
82
|
+
*/
|
|
83
|
+
ready: {
|
|
84
|
+
get: function () {
|
|
85
|
+
return this._ready;
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Gets the promise that will be resolved when the tile's content is ready to render.
|
|
91
|
+
*
|
|
92
|
+
* @memberof Tileset3DTileContent.prototype
|
|
93
|
+
*
|
|
94
|
+
* @type {Promise<Tileset3DTileContent>}
|
|
95
|
+
* @readonly
|
|
96
|
+
* @deprecated
|
|
97
|
+
* @private
|
|
98
|
+
*/
|
|
72
99
|
readyPromise: {
|
|
73
100
|
get: function () {
|
|
101
|
+
deprecationWarning(
|
|
102
|
+
"Tileset3DTileContent.readyPromise",
|
|
103
|
+
"Tileset3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Tileset3DTileContent.ready to return true instead."
|
|
104
|
+
);
|
|
74
105
|
return this._readyPromise;
|
|
75
106
|
},
|
|
76
107
|
},
|
|
@@ -118,10 +149,21 @@ Object.defineProperties(Tileset3DTileContent.prototype, {
|
|
|
118
149
|
},
|
|
119
150
|
});
|
|
120
151
|
|
|
121
|
-
|
|
152
|
+
/**
|
|
153
|
+
* Creates an instance of Tileset3DTileContent from a parsed JSON object
|
|
154
|
+
* @param {Cesium3DTileset} tileset
|
|
155
|
+
* @param {Cesium3DTile} tile
|
|
156
|
+
* @param {Resource} resource
|
|
157
|
+
* @param {object} json
|
|
158
|
+
* @returns {Tileset3DTileContent}
|
|
159
|
+
*/
|
|
160
|
+
Tileset3DTileContent.fromJson = function (tileset, tile, resource, json) {
|
|
161
|
+
const content = new Tileset3DTileContent(tileset, tile, resource);
|
|
122
162
|
content._tileset.loadTileset(content._resource, json, content._tile);
|
|
123
|
-
|
|
124
|
-
|
|
163
|
+
content._ready = true;
|
|
164
|
+
|
|
165
|
+
return content;
|
|
166
|
+
};
|
|
125
167
|
|
|
126
168
|
/**
|
|
127
169
|
* Part of the {@link Cesium3DTileContent} interface. <code>Tileset3DTileContent</code>
|
|
@@ -3,6 +3,7 @@ import combine from "../Core/combine.js";
|
|
|
3
3
|
import defaultValue from "../Core/defaultValue.js";
|
|
4
4
|
import defined from "../Core/defined.js";
|
|
5
5
|
import destroyObject from "../Core/destroyObject.js";
|
|
6
|
+
import deprecationWarning from "../Core/deprecationWarning.js";
|
|
6
7
|
import Event from "../Core/Event.js";
|
|
7
8
|
import getTimestamp from "../Core/getTimestamp.js";
|
|
8
9
|
import JulianDate from "../Core/JulianDate.js";
|
|
@@ -183,6 +184,7 @@ function TimeDynamicPointCloud(options) {
|
|
|
183
184
|
this._clockMultiplier = 0.0;
|
|
184
185
|
this._resolveReadyPromise = undefined;
|
|
185
186
|
const that = this;
|
|
187
|
+
// This is here for backwards compatibility and can be removed when readyPromise is removed.
|
|
186
188
|
this._readyPromise = new Promise(function (resolve) {
|
|
187
189
|
that._resolveReadyPromise = resolve;
|
|
188
190
|
});
|
|
@@ -252,9 +254,14 @@ Object.defineProperties(TimeDynamicPointCloud.prototype, {
|
|
|
252
254
|
*
|
|
253
255
|
* @type {Promise<TimeDynamicPointCloud>}
|
|
254
256
|
* @readonly
|
|
257
|
+
* @deprecated
|
|
255
258
|
*/
|
|
256
259
|
readyPromise: {
|
|
257
260
|
get: function () {
|
|
261
|
+
deprecationWarning(
|
|
262
|
+
"TimeDynamicPointCloud.readyPromise",
|
|
263
|
+
"TimeDynamicPointCloud.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use TimeDynamicPointCloud.frameFailed instead."
|
|
264
|
+
);
|
|
258
265
|
return this._readyPromise;
|
|
259
266
|
},
|
|
260
267
|
},
|
|
@@ -395,6 +402,7 @@ function requestFrame(that, interval, frameState) {
|
|
|
395
402
|
sequential: true,
|
|
396
403
|
ready: false,
|
|
397
404
|
touchedFrameNumber: frameState.frameNumber,
|
|
405
|
+
uri: uri,
|
|
398
406
|
};
|
|
399
407
|
frames[index] = frame;
|
|
400
408
|
Resource.fetchArrayBuffer({
|
|
@@ -410,7 +418,6 @@ function requestFrame(that, interval, frameState) {
|
|
|
410
418
|
uniformMapLoaded: getUniformMapLoaded(that),
|
|
411
419
|
pickIdLoaded: getPickIdLoaded,
|
|
412
420
|
});
|
|
413
|
-
return frame.pointCloud.readyPromise;
|
|
414
421
|
})
|
|
415
422
|
.catch(handleFrameFailure(that, uri));
|
|
416
423
|
}
|
|
@@ -507,7 +514,12 @@ function renderFrame(that, frame, updateState, frameState) {
|
|
|
507
514
|
pointCloud.geometricErrorScale = shading.geometricErrorScale;
|
|
508
515
|
pointCloud.maximumAttenuation = getMaximumAttenuation(that);
|
|
509
516
|
|
|
510
|
-
|
|
517
|
+
try {
|
|
518
|
+
pointCloud.update(frameState);
|
|
519
|
+
} catch (error) {
|
|
520
|
+
handleFrameFailure(that, frame.uri)(error);
|
|
521
|
+
}
|
|
522
|
+
|
|
511
523
|
frame.touchedFrameNumber = frameState.frameNumber;
|
|
512
524
|
}
|
|
513
525
|
|
|
@@ -738,6 +750,7 @@ TimeDynamicPointCloud.prototype.update = function (frameState) {
|
|
|
738
750
|
const that = this;
|
|
739
751
|
if (defined(frame) && !defined(this._lastRenderedFrame)) {
|
|
740
752
|
frameState.afterRender.push(function () {
|
|
753
|
+
// This is here for backwards compatibility and can be removed when readyPromise is removed.
|
|
741
754
|
that._resolveReadyPromise(that);
|
|
742
755
|
return true;
|
|
743
756
|
});
|