@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.
Files changed (193) hide show
  1. package/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-379015ef.js} +1 -1
  2. package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-57f2b24f.js} +1 -1
  3. package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-ecabfc78.js} +1 -1
  4. package/Build/Workers/{Color-f85df1be.js → Color-14d1a36d.js} +1 -1
  5. package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-048c3c14.js} +1 -1
  6. package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-520c8619.js} +1 -1
  7. package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-119068b8.js} +1 -1
  8. package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-2dfc3523.js} +1 -1
  9. package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-0a1e0170.js} +1 -1
  10. package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-c5251669.js} +1 -1
  11. package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-d10a5221.js} +1 -1
  12. package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-7039a0ae.js} +1 -1
  13. package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-857186be.js} +1 -1
  14. package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-400fa1b7.js} +2 -2
  15. package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-7a2de5c6.js} +1 -1
  16. package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-916636fa.js} +1 -1
  17. package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-b4d02d4d.js} +1 -1
  18. package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-96fe1752.js} +5 -3
  19. package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-931f1ec6.js} +1 -1
  20. package/Build/Workers/{PolygonPipeline-d31ff61c.js → PolygonPipeline-32fc92cc.js} +1 -1
  21. package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-6d5c63e5.js} +1 -1
  22. package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-f068c1fb.js} +1 -1
  23. package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-879f996a.js} +1 -1
  24. package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-2d6f36f3.js} +1 -1
  25. package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-82882059.js} +1 -1
  26. package/Build/Workers/{Transforms-9e9df299.js → Transforms-9052372a.js} +6 -5
  27. package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-db7a64fb.js} +1 -1
  28. package/Build/Workers/cesiumWorkerBootstrapper.js +1 -1
  29. package/Build/Workers/combineGeometry.js +1 -1
  30. package/Build/Workers/createBoxGeometry.js +1 -1
  31. package/Build/Workers/createBoxOutlineGeometry.js +1 -1
  32. package/Build/Workers/createCircleGeometry.js +1 -1
  33. package/Build/Workers/createCircleOutlineGeometry.js +1 -1
  34. package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
  35. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  36. package/Build/Workers/createCorridorGeometry.js +1 -1
  37. package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
  38. package/Build/Workers/createCylinderGeometry.js +1 -1
  39. package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
  40. package/Build/Workers/createEllipseGeometry.js +1 -1
  41. package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
  42. package/Build/Workers/createEllipsoidGeometry.js +1 -1
  43. package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
  44. package/Build/Workers/createFrustumGeometry.js +1 -1
  45. package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
  46. package/Build/Workers/createGeometry.js +1 -1
  47. package/Build/Workers/createGroundPolylineGeometry.js +1 -1
  48. package/Build/Workers/createPlaneGeometry.js +1 -1
  49. package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
  50. package/Build/Workers/createPolygonGeometry.js +1 -1
  51. package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
  52. package/Build/Workers/createPolylineGeometry.js +1 -1
  53. package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
  54. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
  55. package/Build/Workers/createRectangleGeometry.js +1 -1
  56. package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
  57. package/Build/Workers/createSimplePolylineGeometry.js +1 -1
  58. package/Build/Workers/createSphereGeometry.js +1 -1
  59. package/Build/Workers/createSphereOutlineGeometry.js +1 -1
  60. package/Build/Workers/createVectorTileGeometries.js +1 -1
  61. package/Build/Workers/createVectorTilePolygons.js +1 -1
  62. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  63. package/Build/Workers/createVerticesFromHeightmap.js +1 -1
  64. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
  65. package/Build/Workers/createWallGeometry.js +1 -1
  66. package/Build/Workers/createWallOutlineGeometry.js +1 -1
  67. package/Build/Workers/package.js +1 -1
  68. package/Build/Workers/transferTypedArrayTest.js +1 -1
  69. package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
  70. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +291 -191
  71. package/Source/Core/CesiumTerrainProvider.js +571 -434
  72. package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
  73. package/Source/Core/EllipsoidTerrainProvider.js +17 -10
  74. package/Source/Core/FrustumGeometry.js +1 -1
  75. package/Source/Core/GoogleEarthEnterpriseMetadata.js +86 -34
  76. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +119 -82
  77. package/Source/Core/Ion.js +1 -1
  78. package/Source/Core/IonResource.js +14 -3
  79. package/Source/Core/OrientedBoundingBox.js +4 -2
  80. package/Source/Core/RequestScheduler.js +1 -1
  81. package/Source/Core/Resource.js +2 -2
  82. package/Source/Core/TerrainProvider.js +9 -14
  83. package/Source/Core/TileProviderError.js +8 -8
  84. package/Source/Core/VRTheWorldTerrainProvider.js +193 -124
  85. package/Source/Core/buildModuleUrl.js +4 -3
  86. package/Source/Core/createWorldTerrain.js +20 -2
  87. package/Source/Core/createWorldTerrainAsync.js +48 -0
  88. package/Source/Core/sampleTerrain.js +9 -10
  89. package/Source/Core/sampleTerrainMostDetailed.js +66 -72
  90. package/Source/DataSources/Cesium3DTilesetVisualizer.js +37 -26
  91. package/Source/DataSources/Entity.js +6 -1
  92. package/Source/DataSources/ModelVisualizer.js +99 -31
  93. package/Source/DataSources/PolygonGraphics.js +1 -1
  94. package/Source/Scene/ArcGisMapServerImageryProvider.js +552 -376
  95. package/Source/Scene/BingMapsImageryProvider.js +511 -305
  96. package/Source/Scene/BufferLoader.js +29 -34
  97. package/Source/Scene/Cesium3DTile.js +388 -251
  98. package/Source/Scene/Cesium3DTileBatchTable.js +2 -2
  99. package/Source/Scene/Cesium3DTileContent.js +16 -0
  100. package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
  101. package/Source/Scene/Cesium3DTilePass.js +8 -11
  102. package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
  103. package/Source/Scene/Cesium3DTilesVoxelProvider.js +225 -117
  104. package/Source/Scene/Cesium3DTileset.js +755 -481
  105. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
  106. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
  107. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
  108. package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
  109. package/Source/Scene/ClassificationPrimitive.js +7 -0
  110. package/Source/Scene/Composite3DTileContent.js +69 -26
  111. package/Source/Scene/CreditDisplay.js +20 -4
  112. package/Source/Scene/DepthPlane.js +1 -1
  113. package/Source/Scene/Empty3DTileContent.js +31 -1
  114. package/Source/Scene/Geometry3DTileContent.js +47 -7
  115. package/Source/Scene/Globe.js +5 -1
  116. package/Source/Scene/GlobeSurfaceTile.js +2 -1
  117. package/Source/Scene/GlobeSurfaceTileProvider.js +50 -27
  118. package/Source/Scene/GltfBufferViewLoader.js +47 -91
  119. package/Source/Scene/GltfDracoLoader.js +110 -112
  120. package/Source/Scene/GltfImageLoader.js +71 -78
  121. package/Source/Scene/GltfIndexBufferLoader.js +108 -121
  122. package/Source/Scene/GltfJsonLoader.js +75 -74
  123. package/Source/Scene/GltfLoader.js +392 -280
  124. package/Source/Scene/GltfStructuralMetadataLoader.js +109 -110
  125. package/Source/Scene/GltfTextureLoader.js +97 -96
  126. package/Source/Scene/GltfVertexBufferLoader.js +128 -133
  127. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +353 -225
  128. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +491 -331
  129. package/Source/Scene/GridImageryProvider.js +267 -104
  130. package/Source/Scene/GroundPolylinePrimitive.js +12 -1
  131. package/Source/Scene/GroundPrimitive.js +8 -1
  132. package/Source/Scene/I3SDataProvider.js +214 -113
  133. package/Source/Scene/I3SFeature.js +7 -6
  134. package/Source/Scene/I3SLayer.js +26 -37
  135. package/Source/Scene/I3SNode.js +59 -66
  136. package/Source/Scene/Imagery.js +6 -1
  137. package/Source/Scene/ImageryLayer.js +299 -48
  138. package/Source/Scene/ImageryLayerCollection.js +26 -0
  139. package/Source/Scene/ImageryProvider.js +129 -111
  140. package/Source/Scene/Implicit3DTileContent.js +72 -23
  141. package/Source/Scene/ImplicitSubtree.js +66 -45
  142. package/Source/Scene/IonImageryProvider.js +471 -264
  143. package/Source/Scene/MapboxImageryProvider.js +272 -112
  144. package/Source/Scene/MapboxStyleImageryProvider.js +270 -111
  145. package/Source/Scene/MetadataSchemaLoader.js +26 -36
  146. package/Source/Scene/Model/B3dmLoader.js +42 -46
  147. package/Source/Scene/Model/GeoJsonLoader.js +8 -32
  148. package/Source/Scene/Model/I3dmLoader.js +48 -74
  149. package/Source/Scene/Model/Model.js +470 -132
  150. package/Source/Scene/Model/Model3DTileContent.js +83 -31
  151. package/Source/Scene/Model/ModelAnimationCollection.js +3 -3
  152. package/Source/Scene/Model/ModelDrawCommand.js +15 -26
  153. package/Source/Scene/Model/ModelUtility.js +16 -16
  154. package/Source/Scene/Model/PntsLoader.js +27 -32
  155. package/Source/Scene/Multiple3DTileContent.js +134 -115
  156. package/Source/Scene/PointCloud.js +11 -19
  157. package/Source/Scene/Primitive.js +20 -0
  158. package/Source/Scene/QuadtreePrimitive.js +2 -0
  159. package/Source/Scene/QuadtreeTileProvider.js +4 -8
  160. package/Source/Scene/ResourceCache.js +47 -105
  161. package/Source/Scene/ResourceCacheStatistics.js +24 -58
  162. package/Source/Scene/ResourceLoader.js +5 -17
  163. package/Source/Scene/ResourceLoaderState.js +12 -4
  164. package/Source/Scene/Scene.js +65 -0
  165. package/Source/Scene/ScreenSpaceCameraController.js +1 -1
  166. package/Source/Scene/SingleTileImageryProvider.js +382 -209
  167. package/Source/Scene/Terrain.js +196 -0
  168. package/Source/Scene/TileCoordinatesImageryProvider.js +267 -104
  169. package/Source/Scene/TileMapServiceImageryProvider.js +177 -85
  170. package/Source/Scene/Tileset3DTileContent.js +47 -5
  171. package/Source/Scene/TimeDynamicPointCloud.js +15 -2
  172. package/Source/Scene/UrlTemplateImageryProvider.js +343 -215
  173. package/Source/Scene/Vector3DTileClampedPolylines.js +96 -84
  174. package/Source/Scene/Vector3DTileContent.js +47 -22
  175. package/Source/Scene/Vector3DTileGeometry.js +57 -52
  176. package/Source/Scene/Vector3DTilePoints.js +72 -68
  177. package/Source/Scene/Vector3DTilePolygons.js +118 -117
  178. package/Source/Scene/Vector3DTilePolylines.js +86 -82
  179. package/Source/Scene/Vector3DTilePrimitive.js +0 -1
  180. package/Source/Scene/VoxelContent.js +61 -63
  181. package/Source/Scene/VoxelPrimitive.js +39 -91
  182. package/Source/Scene/VoxelProvider.js +2 -2
  183. package/Source/Scene/WebMapServiceImageryProvider.js +272 -111
  184. package/Source/Scene/WebMapTileServiceImageryProvider.js +270 -107
  185. package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
  186. package/Source/Scene/createOsmBuildings.js +6 -0
  187. package/Source/Scene/createOsmBuildingsAsync.js +82 -0
  188. package/Source/Scene/createWorldImagery.js +14 -5
  189. package/Source/Scene/createWorldImageryAsync.js +39 -0
  190. package/Source/Widget/CesiumWidget.js +55 -27
  191. package/index.d.ts +2158 -1395
  192. package/index.js +58 -51
  193. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import defaultValue from "../Core/defaultValue.js";
2
+ import deprecationWarning from "../Core/deprecationWarning.js";
2
3
  import IonImageryProvider from "./IonImageryProvider.js";
3
4
  import IonWorldImageryStyle from "./IonWorldImageryStyle.js";
4
5
 
@@ -10,17 +11,18 @@ import IonWorldImageryStyle from "./IonWorldImageryStyle.js";
10
11
  * @param {object} [options] Object with the following properties:
11
12
  * @param {IonWorldImageryStyle} [options.style=IonWorldImageryStyle] The style of base imagery, only AERIAL, AERIAL_WITH_LABELS, and ROAD are currently supported.
12
13
  * @returns {IonImageryProvider}
14
+ * @deprecated
13
15
  *
14
16
  * @see Ion
15
17
  *
16
18
  * @example
17
- * // Create Cesium World Terrain with default settings
19
+ * // Create Cesium World Imagery with default settings
18
20
  * const viewer = new Cesium.Viewer('cesiumContainer', {
19
21
  * imageryProvider : Cesium.createWorldImagery();
20
22
  * });
21
23
  *
22
24
  * @example
23
- * // Create Cesium World Terrain with water and normals.
25
+ * // Create Cesium World Imagery with a different style
24
26
  * const viewer = new Cesium.Viewer('cesiumContainer', {
25
27
  * imageryProvider : Cesium.createWorldImagery({
26
28
  * style: Cesium.IonWorldImageryStyle.AERIAL_WITH_LABELS
@@ -29,10 +31,17 @@ import IonWorldImageryStyle from "./IonWorldImageryStyle.js";
29
31
  *
30
32
  */
31
33
  function createWorldImagery(options) {
34
+ deprecationWarning(
35
+ "createWorldImagery",
36
+ "createWorldImagery was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createWorldImageryAsync instead."
37
+ );
38
+
32
39
  options = defaultValue(options, defaultValue.EMPTY_OBJECT);
33
40
  const style = defaultValue(options.style, IonWorldImageryStyle.AERIAL);
34
- return new IonImageryProvider({
35
- assetId: style,
36
- });
41
+ const provider = new IonImageryProvider();
42
+
43
+ // This is here for backwards compatibility
44
+ IonImageryProvider._initialize(provider, style, options);
45
+ return provider;
37
46
  }
38
47
  export default createWorldImagery;
@@ -0,0 +1,39 @@
1
+ import defaultValue from "../Core/defaultValue.js";
2
+ import IonImageryProvider from "./IonImageryProvider.js";
3
+ import IonWorldImageryStyle from "./IonWorldImageryStyle.js";
4
+
5
+ /**
6
+ * Creates an {@link IonImageryProvider} instance for ion's default global base imagery layer, currently Bing Maps.
7
+ *
8
+ * @function
9
+ *
10
+ * @param {Object} [options] Object with the following properties:
11
+ * @param {IonWorldImageryStyle} [options.style=IonWorldImageryStyle] The style of base imagery, only AERIAL, AERIAL_WITH_LABELS, and ROAD are currently supported.
12
+ * @returns {Promise<IonImageryProvider>}
13
+ *
14
+ * @see Ion
15
+ *
16
+ * @example
17
+ * // Create a Cesium World Imagery base layer with default settings
18
+ * try {
19
+ * const imageryProvider = await Cesium.createWorldImageryAsync();
20
+ * } catch (error) {
21
+ * console.log(`There was an error creating world imagery: ${error}`);
22
+ * }
23
+ *
24
+ * @example
25
+ * // Create Cesium World Imagery with different style
26
+ * try {
27
+ * const imageryProvider = await Cesium.createWorldImageryAsync({
28
+ * style: Cesium.IonWorldImageryStyle.AERIAL_WITH_LABELS
29
+ * });
30
+ * } catch (error) {
31
+ * console.log(`There was an error creating world imagery: ${error}`);
32
+ * }
33
+ */
34
+ function createWorldImageryAsync(options) {
35
+ options = defaultValue(options, defaultValue.EMPTY_OBJECT);
36
+ const style = defaultValue(options.style, IonWorldImageryStyle.AERIAL);
37
+ return IonImageryProvider.fromAssetId(style);
38
+ }
39
+ export default createWorldImageryAsync;
@@ -1,9 +1,9 @@
1
1
  import buildModuleUrl from "../Core/buildModuleUrl.js";
2
- import createWorldImagery from "../Scene/createWorldImagery.js";
3
2
  import Cartesian3 from "../Core/Cartesian3.js";
4
3
  import Clock from "../Core/Clock.js";
5
4
  import defaultValue from "../Core/defaultValue.js";
6
5
  import defined from "../Core/defined.js";
6
+ import deprecationWarning from "../Core/deprecationWarning.js";
7
7
  import destroyObject from "../Core/destroyObject.js";
8
8
  import DeveloperError from "../Core/DeveloperError.js";
9
9
  import Ellipsoid from "../Core/Ellipsoid.js";
@@ -11,6 +11,7 @@ import FeatureDetection from "../Core/FeatureDetection.js";
11
11
  import formatError from "../Core/formatError.js";
12
12
  import getElement from "../DataSources/getElement.js";
13
13
  import Globe from "../Scene/Globe.js";
14
+ import ImageryLayer from "../Scene/ImageryLayer.js";
14
15
  import Moon from "../Scene/Moon.js";
15
16
  import Scene from "../Scene/Scene.js";
16
17
  import SceneMode from "../Scene/SceneMode.js";
@@ -123,8 +124,10 @@ function configureCameraFrustum(widget) {
123
124
  * @param {Element|string} container The DOM element or ID that will contain the widget.
124
125
  * @param {object} [options] Object with the following properties:
125
126
  * @param {Clock} [options.clock=new Clock()] The clock to use to control current time.
126
- * @param {ImageryProvider | false} [options.imageryProvider=createWorldImagery()] The imagery provider to serve as the base layer. If set to <code>false</code>, no imagery provider will be added.
127
+ * @param {ImageryProvider | false} [options.imageryProvider=createWorldImagery()] The imagery provider to serve as the base layer. If set to <code>false</code>, no imagery provider will be added. Deprecated.
128
+ * @param {ImageryLayer|false} [baseLayer=ImageryLayer.fromWorldImagery()] The bottommost imagery layer applied to the globe. If set to <code>false</code>, no imagery provider will be added.
127
129
  * @param {TerrainProvider} [options.terrainProvider=new EllipsoidTerrainProvider] The terrain provider.
130
+ * @param {Terrain} [options.terrain] A terrain object which handles asynchronous terrain provider. Can only specify if options.terrainProvider is undefined.
128
131
  * @param {SkyBox| false} [options.skyBox] The skybox used to render the stars. When <code>undefined</code>, the default stars are used. If set to <code>false</code>, no skyBox, Sun, or Moon will be added.
129
132
  * @param {SkyAtmosphere | false} [options.skyAtmosphere] Blue sky, and the glow around the Earth's limb. Set to <code>false</code> to turn it off.
130
133
  * @param {SceneMode} [options.sceneMode=SceneMode.SCENE3D] The initial scene mode.
@@ -156,26 +159,26 @@ function configureCameraFrustum(widget) {
156
159
  * // For each example, include a link to CesiumWidget.css stylesheet in HTML head,
157
160
  * // and in the body, include: <div id="cesiumContainer"></div>
158
161
  *
159
- * //Widget with no terrain and default Bing Maps imagery provider.
160
- * const widget = new Cesium.CesiumWidget('cesiumContainer');
162
+ * // Widget with no terrain and default Bing Maps imagery provider.
163
+ * const widget = new Cesium.CesiumWidget("cesiumContainer");
161
164
  *
162
- * //Widget with ion imagery and Cesium World Terrain.
163
- * const widget2 = new Cesium.CesiumWidget('cesiumContainer', {
164
- * imageryProvider : Cesium.createWorldImagery(),
165
- * terrainProvider : Cesium.createWorldTerrain(),
166
- * skyBox : new Cesium.SkyBox({
167
- * sources : {
168
- * positiveX : 'stars/TychoSkymapII.t3_08192x04096_80_px.jpg',
169
- * negativeX : 'stars/TychoSkymapII.t3_08192x04096_80_mx.jpg',
170
- * positiveY : 'stars/TychoSkymapII.t3_08192x04096_80_py.jpg',
171
- * negativeY : 'stars/TychoSkymapII.t3_08192x04096_80_my.jpg',
172
- * positiveZ : 'stars/TychoSkymapII.t3_08192x04096_80_pz.jpg',
173
- * negativeZ : 'stars/TychoSkymapII.t3_08192x04096_80_mz.jpg'
174
- * }
165
+ * // Widget with ion imagery and Cesium World Terrain.
166
+ * const widget2 = new Cesium.CesiumWidget("cesiumContainer", {
167
+ * baseLayer: Cesium.ImageryLayer.fromWorldTerrain(),
168
+ * terrain: Cesium.Terrain.fromWorldTerrain()
169
+ * skyBox: new Cesium.SkyBox({
170
+ * sources: {
171
+ * positiveX: "stars/TychoSkymapII.t3_08192x04096_80_px.jpg",
172
+ * negativeX: "stars/TychoSkymapII.t3_08192x04096_80_mx.jpg",
173
+ * positiveY: "stars/TychoSkymapII.t3_08192x04096_80_py.jpg",
174
+ * negativeY: "stars/TychoSkymapII.t3_08192x04096_80_my.jpg",
175
+ * positiveZ: "stars/TychoSkymapII.t3_08192x04096_80_pz.jpg",
176
+ * negativeZ: "stars/TychoSkymapII.t3_08192x04096_80_mz.jpg"
177
+ * }
175
178
  * }),
176
179
  * // Show Columbus View map with Web Mercator projection
177
- * sceneMode : Cesium.SceneMode.COLUMBUS_VIEW,
178
- * mapProjection : new Cesium.WebMercatorProjection()
180
+ * sceneMode: Cesium.SceneMode.COLUMBUS_VIEW,
181
+ * mapProjection: new Cesium.WebMercatorProjection()
179
182
  * });
180
183
  */
181
184
  function CesiumWidget(container, options) {
@@ -340,22 +343,47 @@ function CesiumWidget(container, options) {
340
343
  scene.skyAtmosphere = skyAtmosphere;
341
344
  }
342
345
 
343
- //Set the base imagery layer
344
- let imageryProvider =
345
- options.globe === false ? false : options.imageryProvider;
346
- if (!defined(imageryProvider)) {
347
- imageryProvider = createWorldImagery();
346
+ if (defined(options.imageryProvider)) {
347
+ deprecationWarning(
348
+ "CesiumWidget options.imageryProvider",
349
+ "options.imageryProvider was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use options.baseLayer instead."
350
+ );
348
351
  }
349
352
 
350
- if (imageryProvider !== false) {
351
- scene.imageryLayers.addImageryProvider(imageryProvider);
353
+ // Set the base imagery layer
354
+ let baseLayer = options.baseLayer;
355
+ if (
356
+ options.globe !== false &&
357
+ baseLayer !== false &&
358
+ options.imageryProvider !== false
359
+ ) {
360
+ if (defined(options.imageryProvider) && !defined(baseLayer)) {
361
+ baseLayer = new ImageryLayer(options.imageryProvider);
362
+ }
363
+
364
+ if (!defined(baseLayer)) {
365
+ baseLayer = ImageryLayer.fromWorldImagery();
366
+ }
367
+ scene.imageryLayers.add(baseLayer);
352
368
  }
353
369
 
354
- //Set the terrain provider if one is provided.
370
+ // Set the terrain provider if one is provided.
355
371
  if (defined(options.terrainProvider) && options.globe !== false) {
356
372
  scene.terrainProvider = options.terrainProvider;
357
373
  }
358
374
 
375
+ if (defined(options.terrain) && options.globe !== false) {
376
+ //>>includeStart('debug', pragmas.debug);
377
+ if (defined(options.terrainProvider)) {
378
+ throw new DeveloperError(
379
+ "Specify either options.terrainProvider or options.terrain."
380
+ );
381
+ }
382
+ //>>includeEnd('debug')
383
+
384
+ scene.setTerrain(options.terrain);
385
+ }
386
+
359
387
  this._screenSpaceEventHandler = new ScreenSpaceEventHandler(canvas);
360
388
 
361
389
  if (defined(options.sceneMode)) {