@cesium/engine 2.1.0 → 2.3.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/{AttributeCompression-8a5a065e.js → AttributeCompression-f9f6c717.js} +1 -1
- package/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-31fadcf0.js} +1 -1
- package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-995f0079.js} +1 -1
- package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-7eb1af60.js} +1 -1
- package/Build/Workers/{Color-f85df1be.js → Color-2dc49658.js} +1 -1
- package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-d7d972d6.js} +1 -1
- package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-1f5ef7b3.js} +1 -1
- package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-23c67a6c.js} +1 -1
- package/Build/Workers/{CylinderGeometryLibrary-135b0858.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
- package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-37014da4.js} +1 -1
- package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-92ab6b1e.js} +1 -1
- package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-12b6fef5.js} +1 -1
- package/Build/Workers/{EllipsoidGeodesic-dcff5cbd.js → EllipsoidGeodesic-5b3623dc.js} +1 -1
- package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-508da15c.js} +1 -1
- package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-40d97455.js} +1 -1
- package/Build/Workers/{EllipsoidRhumbLine-b672d507.js → EllipsoidRhumbLine-ef872433.js} +1 -1
- package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-46d4d9c2.js} +1 -1
- package/Build/Workers/{EncodedCartesian3-e8bbca36.js → EncodedCartesian3-57415c8a.js} +1 -1
- package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-38605e69.js} +32 -4
- package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-a466e9c7.js} +1 -1
- package/Build/Workers/{GeometryInstance-3fb607b7.js → GeometryInstance-34d9e21e.js} +1 -1
- package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-dcf79306.js} +1 -1
- package/Build/Workers/{IndexDatatype-b8f3e09d.js → IndexDatatype-2643aa47.js} +1 -1
- package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-88c49b2e.js} +1 -1
- package/Build/Workers/{Math-dad82b4d.js → Math-0a2ac845.js} +12 -2
- package/Build/Workers/{Matrix2-1e403d0e.js → Matrix2-e1298525.js} +1 -1
- package/Build/Workers/{Matrix3-fa806b97.js → Matrix3-41c58dde.js} +1 -1
- package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-2dd47921.js} +5 -3
- package/Build/Workers/{Plane-c27e1ac6.js → Plane-4c3d403b.js} +1 -1
- package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-59126025.js} +1 -1
- package/Build/Workers/PolygonPipeline-1fe328c0.js +1344 -0
- package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-896735cc.js} +1 -1
- package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-9c0639f7.js} +1 -1
- package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-fc1a47ff.js} +1 -1
- package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-a23c9ebe.js} +1 -1
- package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-51b8b33b.js} +1 -1
- package/Build/Workers/Transforms-bc45e707.js +14699 -0
- package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-007e9883.js} +1 -1
- package/Build/Workers/{WebMercatorProjection-76a3fcc0.js → WebMercatorProjection-13ed1a6e.js} +1 -1
- package/Build/Workers/{arrayRemoveDuplicates-fac118a8.js → arrayRemoveDuplicates-d2061e85.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/createVectorTileClampedPolylines.js +1 -1
- package/Build/Workers/createVectorTileGeometries.js +1 -1
- package/Build/Workers/createVectorTilePoints.js +1 -1
- package/Build/Workers/createVectorTilePolygons.js +1 -1
- package/Build/Workers/createVectorTilePolylines.js +1 -1
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
- package/Build/Workers/createVerticesFromHeightmap.js +5 -8
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
- package/Build/Workers/createWallGeometry.js +1 -1
- package/Build/Workers/createWallOutlineGeometry.js +1 -1
- package/Build/Workers/decodeDraco.js +1 -1
- package/Build/Workers/decodeI3S.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/BingMapsGeocoderService.js +19 -1
- package/Source/Core/CartographicGeocoderService.js +15 -0
- package/Source/Core/CesiumTerrainProvider.js +571 -434
- package/Source/Core/Credit.js +1 -1
- package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
- package/Source/Core/EllipsoidTerrainProvider.js +17 -10
- package/Source/Core/FrustumGeometry.js +4 -3
- package/Source/Core/GeocoderService.js +32 -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/IonGeocoderService.js +17 -2
- package/Source/Core/IonResource.js +14 -3
- package/Source/Core/OpenCageGeocoderService.js +18 -1
- package/Source/Core/OrientedBoundingBox.js +4 -2
- package/Source/Core/OrthographicFrustum.js +13 -0
- package/Source/Core/PeliasGeocoderService.js +14 -1
- package/Source/Core/PerspectiveFrustum.js +14 -0
- package/Source/Core/Request.js +3 -2
- package/Source/Core/RequestScheduler.js +10 -5
- package/Source/Core/Resource.js +230 -236
- 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/DataSourceDisplay.js +2 -2
- package/Source/DataSources/Entity.js +6 -1
- package/Source/DataSources/EntityCluster.js +126 -128
- package/Source/DataSources/ModelVisualizer.js +104 -34
- package/Source/DataSources/PolygonGraphics.js +1 -1
- package/Source/Renderer/UniformState.js +3 -2
- package/Source/Renderer/demodernizeShader.js +5 -5
- package/Source/Scene/ArcGisBaseMapType.js +12 -0
- package/Source/Scene/ArcGisMapServerImageryProvider.js +694 -376
- package/Source/Scene/ArcGisMapService.js +83 -0
- package/Source/Scene/BingMapsImageryProvider.js +511 -305
- package/Source/Scene/BufferLoader.js +29 -34
- package/Source/Scene/Camera.js +8 -7
- package/Source/Scene/Cesium3DTile.js +392 -254
- 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 +756 -482
- 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 +132 -20
- 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 +53 -30
- 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 +87 -74
- package/Source/Scene/GltfLoader.js +381 -300
- 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 +482 -275
- 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/MaterialPipelineStage.js +12 -12
- package/Source/Scene/Model/Model.js +514 -135
- 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/Model/UniformType.js +1 -1
- package/Source/Scene/Multiple3DTileContent.js +134 -115
- package/Source/Scene/Picking.js +3 -2
- package/Source/Scene/PointCloud.js +11 -19
- package/Source/Scene/Primitive.js +20 -0
- package/Source/Scene/QuadtreePrimitive.js +5 -2
- 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/SceneTransforms.js +3 -2
- package/Source/Scene/ScreenSpaceCameraController.js +2 -2
- 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 +97 -81
- 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/Shaders/AtmosphereCommon.glsl +51 -8
- package/Source/Shaders/AtmosphereCommon.js +51 -8
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +1 -1
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +1 -1
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +3 -3
- package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +3 -3
- package/Source/Widget/CesiumWidget.js +67 -27
- package/index.d.ts +2429 -1475
- package/index.js +324 -315
- package/package.json +4 -4
- package/Build/Workers/PolygonPipeline-d31ff61c.js +0 -1345
- package/Build/Workers/Transforms-9e9df299.js +0 -14714
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import Check from "./Check.js";
|
|
1
2
|
import Credit from "./Credit.js";
|
|
2
3
|
import defaultValue from "./defaultValue.js";
|
|
3
4
|
import defined from "./defined.js";
|
|
4
|
-
import
|
|
5
|
+
import deprecationWarning from "./deprecationWarning.js";
|
|
5
6
|
import Ellipsoid from "./Ellipsoid.js";
|
|
6
7
|
import Event from "./Event.js";
|
|
7
8
|
import GeographicTilingScheme from "./GeographicTilingScheme.js";
|
|
@@ -20,38 +21,143 @@ function DataRectangle(rectangle, maxLevel) {
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
/**
|
|
24
|
+
* @typedef {Object} VRTheWorldTerrainProvider.ConstructorOptions
|
|
25
|
+
*
|
|
26
|
+
* Initialization options for the VRTheWorldTerrainProvider constructor
|
|
27
|
+
*
|
|
28
|
+
* @property {Ellipsoid} [ellipsoid] The ellipsoid. If not specified, the WGS84 ellipsoid is used.
|
|
29
|
+
* @property {Credit|string} [credit] A credit for the data source, which is displayed on the canvas.
|
|
30
|
+
* @property {Resource|string} [url] The URL of the VR-TheWorld TileMap. Deprecated.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Used to track creation details while fetching initial metadata
|
|
35
|
+
*
|
|
36
|
+
* @constructor
|
|
37
|
+
* @private
|
|
38
|
+
*
|
|
39
|
+
* @param {VRTheWorldTerrainProvider.ConstructorOptions} options An object describing initialization options
|
|
40
|
+
*/
|
|
41
|
+
function TerrainProviderBuilder(options) {
|
|
42
|
+
this.ellipsoid = defaultValue(options.ellipsoid, Ellipsoid.WGS84);
|
|
43
|
+
this.tilingScheme = undefined;
|
|
44
|
+
this.heightmapWidth = undefined;
|
|
45
|
+
this.heightmapHeight = undefined;
|
|
46
|
+
this.levelZeroMaximumGeometricError = undefined;
|
|
47
|
+
this.rectangles = [];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
TerrainProviderBuilder.prototype.build = function (provider) {
|
|
51
|
+
provider._tilingScheme = this.tilingScheme;
|
|
52
|
+
provider._heightmapWidth = this.heightmapWidth;
|
|
53
|
+
provider._heightmapHeight = this.heightmapHeight;
|
|
54
|
+
provider._levelZeroMaximumGeometricError = this.levelZeroMaximumGeometricError;
|
|
55
|
+
provider._rectangles = this.rectangles;
|
|
56
|
+
provider._ready = true;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
function metadataSuccess(terrainProviderBuilder, xml) {
|
|
60
|
+
const srs = xml.getElementsByTagName("SRS")[0].textContent;
|
|
61
|
+
if (srs === "EPSG:4326") {
|
|
62
|
+
terrainProviderBuilder.tilingScheme = new GeographicTilingScheme({
|
|
63
|
+
ellipsoid: terrainProviderBuilder.ellipsoid,
|
|
64
|
+
});
|
|
65
|
+
} else {
|
|
66
|
+
throw new RuntimeError(`SRS ${srs} is not supported`);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const tileFormat = xml.getElementsByTagName("TileFormat")[0];
|
|
70
|
+
terrainProviderBuilder.heightmapWidth = parseInt(
|
|
71
|
+
tileFormat.getAttribute("width"),
|
|
72
|
+
10
|
|
73
|
+
);
|
|
74
|
+
terrainProviderBuilder.heightmapHeight = parseInt(
|
|
75
|
+
tileFormat.getAttribute("height"),
|
|
76
|
+
10
|
|
77
|
+
);
|
|
78
|
+
terrainProviderBuilder.levelZeroMaximumGeometricError = TerrainProvider.getEstimatedLevelZeroGeometricErrorForAHeightmap(
|
|
79
|
+
terrainProviderBuilder.ellipsoid,
|
|
80
|
+
Math.min(
|
|
81
|
+
terrainProviderBuilder.heightmapWidth,
|
|
82
|
+
terrainProviderBuilder.heightmapHeight
|
|
83
|
+
),
|
|
84
|
+
terrainProviderBuilder.tilingScheme.getNumberOfXTilesAtLevel(0)
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
const dataRectangles = xml.getElementsByTagName("DataExtent");
|
|
88
|
+
|
|
89
|
+
for (let i = 0; i < dataRectangles.length; ++i) {
|
|
90
|
+
const dataRectangle = dataRectangles[i];
|
|
91
|
+
|
|
92
|
+
const west = CesiumMath.toRadians(
|
|
93
|
+
parseFloat(dataRectangle.getAttribute("minx"))
|
|
94
|
+
);
|
|
95
|
+
const south = CesiumMath.toRadians(
|
|
96
|
+
parseFloat(dataRectangle.getAttribute("miny"))
|
|
97
|
+
);
|
|
98
|
+
const east = CesiumMath.toRadians(
|
|
99
|
+
parseFloat(dataRectangle.getAttribute("maxx"))
|
|
100
|
+
);
|
|
101
|
+
const north = CesiumMath.toRadians(
|
|
102
|
+
parseFloat(dataRectangle.getAttribute("maxy"))
|
|
103
|
+
);
|
|
104
|
+
const maxLevel = parseInt(dataRectangle.getAttribute("maxlevel"), 10);
|
|
105
|
+
|
|
106
|
+
terrainProviderBuilder.rectangles.push(
|
|
107
|
+
new DataRectangle(new Rectangle(west, south, east, north), maxLevel)
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function metadataFailure(resource, error, provider) {
|
|
113
|
+
let message = `An error occurred while accessing ${resource.url}`;
|
|
114
|
+
|
|
115
|
+
if (defined(error) && defined(error.message)) {
|
|
116
|
+
message = `${message}: ${error.message}`;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
TileProviderError.reportError(
|
|
120
|
+
undefined,
|
|
121
|
+
provider,
|
|
122
|
+
defined(provider) ? provider._errorEvent : undefined,
|
|
123
|
+
message
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
throw new RuntimeError(message);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
async function requestMetadata(terrainProviderBuilder, resource, provider) {
|
|
130
|
+
try {
|
|
131
|
+
const xml = await resource.fetchXML();
|
|
132
|
+
metadataSuccess(terrainProviderBuilder, xml);
|
|
133
|
+
} catch (error) {
|
|
134
|
+
metadataFailure(resource, error, provider);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* <div class="notice">
|
|
140
|
+
* To construct a VRTheWorldTerrainProvider, call {@link VRTheWorldTerrainProvider.fromUrl}. Do not call the constructor directly.
|
|
141
|
+
* </div>
|
|
142
|
+
*
|
|
23
143
|
* A {@link TerrainProvider} that produces terrain geometry by tessellating height maps
|
|
24
144
|
* retrieved from a {@link http://vr-theworld.com/|VT MÄK VR-TheWorld server}.
|
|
25
145
|
*
|
|
26
146
|
* @alias VRTheWorldTerrainProvider
|
|
27
147
|
* @constructor
|
|
28
148
|
*
|
|
29
|
-
* @param {
|
|
30
|
-
* @param {Resource|string} options.url The URL of the VR-TheWorld TileMap.
|
|
31
|
-
* @param {Ellipsoid} [options.ellipsoid=Ellipsoid.WGS84] The ellipsoid. If this parameter is not
|
|
32
|
-
* specified, the WGS84 ellipsoid is used.
|
|
33
|
-
* @param {Credit|string} [options.credit] A credit for the data source, which is displayed on the canvas.
|
|
34
|
-
*
|
|
149
|
+
* @param {VRTheWorldTerrainProvider.ConstructorOptions} [options] An object describing initialization options.
|
|
35
150
|
*
|
|
36
151
|
* @example
|
|
37
|
-
* const terrainProvider =
|
|
38
|
-
*
|
|
39
|
-
*
|
|
152
|
+
* const terrainProvider = await Cesium.VRTheWorldTerrainProvider.fromUrl(
|
|
153
|
+
* "https://www.vr-theworld.com/vr-theworld/tiles1.0.0/73/"
|
|
154
|
+
* );
|
|
40
155
|
* viewer.terrainProvider = terrainProvider;
|
|
41
156
|
*
|
|
42
157
|
* @see TerrainProvider
|
|
43
158
|
*/
|
|
44
159
|
function VRTheWorldTerrainProvider(options) {
|
|
45
160
|
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
46
|
-
//>>includeStart('debug', pragmas.debug);
|
|
47
|
-
if (!defined(options.url)) {
|
|
48
|
-
throw new DeveloperError("options.url is required.");
|
|
49
|
-
}
|
|
50
|
-
//>>includeEnd('debug');
|
|
51
|
-
|
|
52
|
-
const resource = Resource.createIfNeeded(options.url);
|
|
53
|
-
|
|
54
|
-
this._resource = resource;
|
|
55
161
|
|
|
56
162
|
this._errorEvent = new Event();
|
|
57
163
|
this._ready = false;
|
|
@@ -76,80 +182,26 @@ function VRTheWorldTerrainProvider(options) {
|
|
|
76
182
|
this._tilingScheme = undefined;
|
|
77
183
|
this._rectangles = [];
|
|
78
184
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
function metadataSuccess(xml) {
|
|
84
|
-
const srs = xml.getElementsByTagName("SRS")[0].textContent;
|
|
85
|
-
if (srs === "EPSG:4326") {
|
|
86
|
-
that._tilingScheme = new GeographicTilingScheme({ ellipsoid: ellipsoid });
|
|
87
|
-
} else {
|
|
88
|
-
return Promise.reject(new RuntimeError(`SRS ${srs} is not supported.`));
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
const tileFormat = xml.getElementsByTagName("TileFormat")[0];
|
|
92
|
-
that._heightmapWidth = parseInt(tileFormat.getAttribute("width"), 10);
|
|
93
|
-
that._heightmapHeight = parseInt(tileFormat.getAttribute("height"), 10);
|
|
94
|
-
that._levelZeroMaximumGeometricError = TerrainProvider.getEstimatedLevelZeroGeometricErrorForAHeightmap(
|
|
95
|
-
ellipsoid,
|
|
96
|
-
Math.min(that._heightmapWidth, that._heightmapHeight),
|
|
97
|
-
that._tilingScheme.getNumberOfXTilesAtLevel(0)
|
|
185
|
+
if (defined(options.url)) {
|
|
186
|
+
deprecationWarning(
|
|
187
|
+
"VRTheWorldTerrainProvider options.url",
|
|
188
|
+
"options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. VRTheWorldTerrainProvider.fromUrl instead."
|
|
98
189
|
);
|
|
99
|
-
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
);
|
|
114
|
-
const north = CesiumMath.toRadians(
|
|
115
|
-
parseFloat(dataRectangle.getAttribute("maxy"))
|
|
116
|
-
);
|
|
117
|
-
const maxLevel = parseInt(dataRectangle.getAttribute("maxlevel"), 10);
|
|
118
|
-
|
|
119
|
-
that._rectangles.push(
|
|
120
|
-
new DataRectangle(new Rectangle(west, south, east, north), maxLevel)
|
|
121
|
-
);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
that._ready = true;
|
|
125
|
-
return Promise.resolve(true);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
function metadataFailure(e) {
|
|
129
|
-
const message = defaultValue(
|
|
130
|
-
defined(e) ? e.message : undefined,
|
|
131
|
-
`An error occurred while accessing ${that._resource.url}.`
|
|
132
|
-
);
|
|
133
|
-
metadataError = TileProviderError.reportError(
|
|
134
|
-
metadataError,
|
|
135
|
-
that,
|
|
136
|
-
that._errorEvent,
|
|
137
|
-
message
|
|
138
|
-
);
|
|
139
|
-
if (metadataError.retry) {
|
|
140
|
-
return requestMetadata();
|
|
141
|
-
}
|
|
142
|
-
return Promise.reject(new RuntimeError(message));
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function requestMetadata() {
|
|
146
|
-
return that._resource
|
|
147
|
-
.fetchXML()
|
|
148
|
-
.then(metadataSuccess)
|
|
149
|
-
.catch(metadataFailure);
|
|
190
|
+
const that = this;
|
|
191
|
+
const terrainProviderBuilder = new TerrainProviderBuilder(options);
|
|
192
|
+
const resource = Resource.createIfNeeded(options.url);
|
|
193
|
+
|
|
194
|
+
this._resource = resource;
|
|
195
|
+
|
|
196
|
+
this._readyPromise = requestMetadata(
|
|
197
|
+
terrainProviderBuilder,
|
|
198
|
+
resource,
|
|
199
|
+
that
|
|
200
|
+
).then(() => {
|
|
201
|
+
terrainProviderBuilder.build(that);
|
|
202
|
+
return true;
|
|
203
|
+
});
|
|
150
204
|
}
|
|
151
|
-
|
|
152
|
-
this._readyPromise = requestMetadata();
|
|
153
205
|
}
|
|
154
206
|
|
|
155
207
|
Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
|
|
@@ -169,7 +221,7 @@ Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
|
|
|
169
221
|
|
|
170
222
|
/**
|
|
171
223
|
* Gets the credit to display when this terrain provider is active. Typically this is used to credit
|
|
172
|
-
* the source of the terrain.
|
|
224
|
+
* the source of the terrain.
|
|
173
225
|
* @memberof VRTheWorldTerrainProvider.prototype
|
|
174
226
|
* @type {Credit}
|
|
175
227
|
* @readonly
|
|
@@ -181,22 +233,13 @@ Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
|
|
|
181
233
|
},
|
|
182
234
|
|
|
183
235
|
/**
|
|
184
|
-
* Gets the tiling scheme used by this provider.
|
|
185
|
-
* not be called before {@link VRTheWorldTerrainProvider#ready} returns true.
|
|
236
|
+
* Gets the tiling scheme used by this provider.
|
|
186
237
|
* @memberof VRTheWorldTerrainProvider.prototype
|
|
187
238
|
* @type {GeographicTilingScheme}
|
|
188
239
|
* @readonly
|
|
189
240
|
*/
|
|
190
241
|
tilingScheme: {
|
|
191
242
|
get: function () {
|
|
192
|
-
//>>includeStart('debug', pragmas.debug);
|
|
193
|
-
if (!this.ready) {
|
|
194
|
-
throw new DeveloperError(
|
|
195
|
-
"requestTileGeometry must not be called before ready returns true."
|
|
196
|
-
);
|
|
197
|
-
}
|
|
198
|
-
//>>includeEnd('debug');
|
|
199
|
-
|
|
200
243
|
return this._tilingScheme;
|
|
201
244
|
},
|
|
202
245
|
},
|
|
@@ -206,9 +249,14 @@ Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
|
|
|
206
249
|
* @memberof VRTheWorldTerrainProvider.prototype
|
|
207
250
|
* @type {boolean}
|
|
208
251
|
* @readonly
|
|
252
|
+
* @deprecated
|
|
209
253
|
*/
|
|
210
254
|
ready: {
|
|
211
255
|
get: function () {
|
|
256
|
+
deprecationWarning(
|
|
257
|
+
"VRTheWorldTerrainProvider.ready",
|
|
258
|
+
"VRTheWorldTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."
|
|
259
|
+
);
|
|
212
260
|
return this._ready;
|
|
213
261
|
},
|
|
214
262
|
},
|
|
@@ -218,9 +266,14 @@ Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
|
|
|
218
266
|
* @memberof VRTheWorldTerrainProvider.prototype
|
|
219
267
|
* @type {Promise<boolean>}
|
|
220
268
|
* @readonly
|
|
269
|
+
* @deprecated
|
|
221
270
|
*/
|
|
222
271
|
readyPromise: {
|
|
223
272
|
get: function () {
|
|
273
|
+
deprecationWarning(
|
|
274
|
+
"VRTheWorldTerrainProvider.readyPromise",
|
|
275
|
+
"VRTheWorldTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."
|
|
276
|
+
);
|
|
224
277
|
return this._readyPromise;
|
|
225
278
|
},
|
|
226
279
|
},
|
|
@@ -228,8 +281,7 @@ Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
|
|
|
228
281
|
/**
|
|
229
282
|
* Gets a value indicating whether or not the provider includes a water mask. The water mask
|
|
230
283
|
* indicates which areas of the globe are water rather than land, so they can be rendered
|
|
231
|
-
* as a reflective surface with animated waves.
|
|
232
|
-
* called before {@link VRTheWorldTerrainProvider#ready} returns true.
|
|
284
|
+
* as a reflective surface with animated waves.
|
|
233
285
|
* @memberof VRTheWorldTerrainProvider.prototype
|
|
234
286
|
* @type {boolean}
|
|
235
287
|
* @readonly
|
|
@@ -242,7 +294,6 @@ Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
|
|
|
242
294
|
|
|
243
295
|
/**
|
|
244
296
|
* Gets a value indicating whether or not the requested tiles include vertex normals.
|
|
245
|
-
* This function should not be called before {@link VRTheWorldTerrainProvider#ready} returns true.
|
|
246
297
|
* @memberof VRTheWorldTerrainProvider.prototype
|
|
247
298
|
* @type {boolean}
|
|
248
299
|
* @readonly
|
|
@@ -254,8 +305,7 @@ Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
|
|
|
254
305
|
},
|
|
255
306
|
/**
|
|
256
307
|
* Gets an object that can be used to determine availability of terrain from this provider, such as
|
|
257
|
-
* at points and in rectangles.
|
|
258
|
-
* {@link TerrainProvider#ready} returns true. This property may be undefined if availability
|
|
308
|
+
* at points and in rectangles. This property may be undefined if availability
|
|
259
309
|
* information is not available.
|
|
260
310
|
* @memberof VRTheWorldTerrainProvider.prototype
|
|
261
311
|
* @type {TileAvailability}
|
|
@@ -269,8 +319,42 @@ Object.defineProperties(VRTheWorldTerrainProvider.prototype, {
|
|
|
269
319
|
});
|
|
270
320
|
|
|
271
321
|
/**
|
|
272
|
-
*
|
|
273
|
-
* {@link
|
|
322
|
+
* Creates a {@link TerrainProvider} that produces terrain geometry by tessellating height maps
|
|
323
|
+
* retrieved from a {@link http://vr-theworld.com/|VT MÄK VR-TheWorld server}.
|
|
324
|
+
*
|
|
325
|
+
* @param {Resource|String} url The URL of the VR-TheWorld TileMap.
|
|
326
|
+
* @param {VRTheWorldTerrainProvider.ConstructorOptions} [options] An object describing initialization options.
|
|
327
|
+
* @returns {Promise<VRTheWorldTerrainProvider>}
|
|
328
|
+
*
|
|
329
|
+
* @example
|
|
330
|
+
* const terrainProvider = await Cesium.VRTheWorldTerrainProvider.fromUrl(
|
|
331
|
+
* "https://www.vr-theworld.com/vr-theworld/tiles1.0.0/73/"
|
|
332
|
+
* );
|
|
333
|
+
* viewer.terrainProvider = terrainProvider;
|
|
334
|
+
*
|
|
335
|
+
* @exception {RuntimeError} metadata specifies and unknown SRS
|
|
336
|
+
*/
|
|
337
|
+
VRTheWorldTerrainProvider.fromUrl = async function (url, options) {
|
|
338
|
+
//>>includeStart('debug', pragmas.debug);
|
|
339
|
+
Check.defined("url", url);
|
|
340
|
+
//>>includeEnd('debug');
|
|
341
|
+
|
|
342
|
+
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
343
|
+
|
|
344
|
+
const terrainProviderBuilder = new TerrainProviderBuilder(options);
|
|
345
|
+
const resource = Resource.createIfNeeded(url);
|
|
346
|
+
|
|
347
|
+
await requestMetadata(terrainProviderBuilder, resource);
|
|
348
|
+
|
|
349
|
+
const provider = new VRTheWorldTerrainProvider(options);
|
|
350
|
+
terrainProviderBuilder.build(provider);
|
|
351
|
+
provider._resource = resource;
|
|
352
|
+
|
|
353
|
+
return provider;
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Requests the geometry for a given tile. The result includes terrain
|
|
274
358
|
* data and indicates that all child tiles are available.
|
|
275
359
|
*
|
|
276
360
|
* @param {number} x The X coordinate of the tile for which to request geometry.
|
|
@@ -287,14 +371,6 @@ VRTheWorldTerrainProvider.prototype.requestTileGeometry = function (
|
|
|
287
371
|
level,
|
|
288
372
|
request
|
|
289
373
|
) {
|
|
290
|
-
//>>includeStart('debug', pragmas.debug);
|
|
291
|
-
if (!this.ready) {
|
|
292
|
-
throw new DeveloperError(
|
|
293
|
-
"requestTileGeometry must not be called before ready returns true."
|
|
294
|
-
);
|
|
295
|
-
}
|
|
296
|
-
//>>includeEnd('debug');
|
|
297
|
-
|
|
298
374
|
const yTiles = this._tilingScheme.getNumberOfYTilesAtLevel(level);
|
|
299
375
|
const resource = this._resource.getDerivedResource({
|
|
300
376
|
url: `${level}/${x}/${yTiles - y - 1}.tif`,
|
|
@@ -331,13 +407,6 @@ VRTheWorldTerrainProvider.prototype.requestTileGeometry = function (
|
|
|
331
407
|
VRTheWorldTerrainProvider.prototype.getLevelMaximumGeometricError = function (
|
|
332
408
|
level
|
|
333
409
|
) {
|
|
334
|
-
//>>includeStart('debug', pragmas.debug);
|
|
335
|
-
if (!this.ready) {
|
|
336
|
-
throw new DeveloperError(
|
|
337
|
-
"requestTileGeometry must not be called before ready returns true."
|
|
338
|
-
);
|
|
339
|
-
}
|
|
340
|
-
//>>includeEnd('debug');
|
|
341
410
|
return this._levelZeroMaximumGeometricError / (1 << level);
|
|
342
411
|
};
|
|
343
412
|
|
|
@@ -98,9 +98,10 @@ let implementation;
|
|
|
98
98
|
*
|
|
99
99
|
* @example
|
|
100
100
|
* const viewer = new Cesium.Viewer("cesiumContainer", {
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
101
|
+
* baseLayer: Cesium.ImageryLayer.fromProviderAsync(
|
|
102
|
+
* Cesium.TileMapServiceImageryProvider.fromUrl(
|
|
103
|
+
* Cesium.buildModuleUrl("Assets/Textures/NaturalEarthII"),
|
|
104
|
+
* )),
|
|
104
105
|
* baseLayerPicker: false,
|
|
105
106
|
* });
|
|
106
107
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import CesiumTerrainProvider from "./CesiumTerrainProvider.js";
|
|
2
2
|
import defaultValue from "./defaultValue.js";
|
|
3
|
+
import deprecationWarning from "./deprecationWarning.js";
|
|
3
4
|
import IonResource from "./IonResource.js";
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -31,12 +32,29 @@ import IonResource from "./IonResource.js";
|
|
|
31
32
|
*
|
|
32
33
|
*/
|
|
33
34
|
function createWorldTerrain(options) {
|
|
35
|
+
deprecationWarning(
|
|
36
|
+
"createWorldTerrain",
|
|
37
|
+
"createWorldTerrain was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createWorldTerrainAsync instead."
|
|
38
|
+
);
|
|
39
|
+
|
|
34
40
|
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
35
41
|
|
|
36
|
-
|
|
37
|
-
url: IonResource.fromAssetId(1),
|
|
42
|
+
const provider = new CesiumTerrainProvider({
|
|
38
43
|
requestVertexNormals: defaultValue(options.requestVertexNormals, false),
|
|
39
44
|
requestWaterMask: defaultValue(options.requestWaterMask, false),
|
|
40
45
|
});
|
|
46
|
+
|
|
47
|
+
// This is here in order to avoid throwing a second deprecation error
|
|
48
|
+
// by using the deprecated url parameter in the constructor above
|
|
49
|
+
provider._readyPromise = CesiumTerrainProvider._initializeReadyPromise(
|
|
50
|
+
{
|
|
51
|
+
url: IonResource.fromAssetId(1),
|
|
52
|
+
requestVertexNormals: defaultValue(options.requestVertexNormals, false),
|
|
53
|
+
requestWaterMask: defaultValue(options.requestWaterMask, false),
|
|
54
|
+
},
|
|
55
|
+
provider
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
return provider;
|
|
41
59
|
}
|
|
42
60
|
export default createWorldTerrain;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import CesiumTerrainProvider from "./CesiumTerrainProvider.js";
|
|
2
|
+
import defaultValue from "./defaultValue.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a {@link CesiumTerrainProvider} instance for the {@link https://cesium.com/content/#cesium-world-terrain|Cesium World Terrain}.
|
|
6
|
+
*
|
|
7
|
+
* @function
|
|
8
|
+
*
|
|
9
|
+
* @param {Object} [options] Object with the following properties:
|
|
10
|
+
* @param {Boolean} [options.requestVertexNormals=false] Flag that indicates if the client should request additional lighting information from the server if available.
|
|
11
|
+
* @param {Boolean} [options.requestWaterMask=false] Flag that indicates if the client should request per tile water masks from the server if available.
|
|
12
|
+
* @returns {Promise<CesiumTerrainProvider>} A promise that resolves to the created CesiumTerrainProvider
|
|
13
|
+
*
|
|
14
|
+
* @see Ion
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* // Create Cesium World Terrain with default settings
|
|
18
|
+
* try {
|
|
19
|
+
* const viewer = new Cesium.Viewer("cesiumContainer", {
|
|
20
|
+
* terrainProvider: await Cesium.createWorldTerrainAsync();
|
|
21
|
+
* });
|
|
22
|
+
* } catch (error) {
|
|
23
|
+
* console.log(error);
|
|
24
|
+
* }
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* // Create Cesium World Terrain with water and normals.
|
|
28
|
+
* try {
|
|
29
|
+
* const viewer1 = new Cesium.Viewer("cesiumContainer", {
|
|
30
|
+
* terrainProvider: await Cesium.createWorldTerrainAsync({
|
|
31
|
+
* requestWaterMask: true,
|
|
32
|
+
* requestVertexNormals: true
|
|
33
|
+
* });
|
|
34
|
+
* });
|
|
35
|
+
* } catch (error) {
|
|
36
|
+
* console.log(error);
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
function createWorldTerrainAsync(options) {
|
|
41
|
+
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
|
|
42
|
+
|
|
43
|
+
return CesiumTerrainProvider.fromIonAssetId(1, {
|
|
44
|
+
requestVertexNormals: defaultValue(options.requestVertexNormals, false),
|
|
45
|
+
requestWaterMask: defaultValue(options.requestWaterMask, false),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export default createWorldTerrainAsync;
|
|
@@ -26,27 +26,26 @@ import defined from "./defined.js";
|
|
|
26
26
|
*
|
|
27
27
|
* @example
|
|
28
28
|
* // Query the terrain height of two Cartographic positions
|
|
29
|
-
* const terrainProvider = Cesium.
|
|
29
|
+
* const terrainProvider = await Cesium.createWorldTerrainAsync();
|
|
30
30
|
* const positions = [
|
|
31
31
|
* Cesium.Cartographic.fromDegrees(86.925145, 27.988257),
|
|
32
32
|
* Cesium.Cartographic.fromDegrees(87.0, 28.0)
|
|
33
33
|
* ];
|
|
34
|
-
* const
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* // updatedPositions is just a reference to positions.
|
|
38
|
-
* });
|
|
34
|
+
* const updatedPositions = await Cesium.sampleTerrain(terrainProvider, 11, positions);
|
|
35
|
+
* // positions[0].height and positions[1].height have been updated.
|
|
36
|
+
* // updatedPositions is just a reference to positions.
|
|
39
37
|
*/
|
|
40
|
-
function sampleTerrain(terrainProvider, level, positions) {
|
|
38
|
+
async function sampleTerrain(terrainProvider, level, positions) {
|
|
41
39
|
//>>includeStart('debug', pragmas.debug);
|
|
42
40
|
Check.typeOf.object("terrainProvider", terrainProvider);
|
|
43
41
|
Check.typeOf.number("level", level);
|
|
44
42
|
Check.defined("positions", positions);
|
|
45
43
|
//>>includeEnd('debug');
|
|
46
44
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
// readyPromise has been deprecated; This is here for backwards compatibility
|
|
46
|
+
await terrainProvider._readyPromise;
|
|
47
|
+
|
|
48
|
+
return doSampling(terrainProvider, level, positions);
|
|
50
49
|
}
|
|
51
50
|
|
|
52
51
|
/**
|