@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.
Files changed (240) hide show
  1. package/Build/Workers/{AttributeCompression-8a5a065e.js → AttributeCompression-f9f6c717.js} +1 -1
  2. package/Build/Workers/{AxisAlignedBoundingBox-a6f9f0e5.js → AxisAlignedBoundingBox-31fadcf0.js} +1 -1
  3. package/Build/Workers/{BoundingRectangle-b0a68595.js → BoundingRectangle-995f0079.js} +1 -1
  4. package/Build/Workers/{BoxGeometry-baedd794.js → BoxGeometry-7eb1af60.js} +1 -1
  5. package/Build/Workers/{Color-f85df1be.js → Color-2dc49658.js} +1 -1
  6. package/Build/Workers/{CoplanarPolygonGeometryLibrary-30516950.js → CoplanarPolygonGeometryLibrary-d7d972d6.js} +1 -1
  7. package/Build/Workers/{CorridorGeometryLibrary-5d5d3b3a.js → CorridorGeometryLibrary-1f5ef7b3.js} +1 -1
  8. package/Build/Workers/{CylinderGeometry-d899ae26.js → CylinderGeometry-23c67a6c.js} +1 -1
  9. package/Build/Workers/{CylinderGeometryLibrary-135b0858.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
  10. package/Build/Workers/{EllipseGeometry-a49f8449.js → EllipseGeometry-37014da4.js} +1 -1
  11. package/Build/Workers/{EllipseGeometryLibrary-cba7edde.js → EllipseGeometryLibrary-92ab6b1e.js} +1 -1
  12. package/Build/Workers/{EllipseOutlineGeometry-8095c8cb.js → EllipseOutlineGeometry-12b6fef5.js} +1 -1
  13. package/Build/Workers/{EllipsoidGeodesic-dcff5cbd.js → EllipsoidGeodesic-5b3623dc.js} +1 -1
  14. package/Build/Workers/{EllipsoidGeometry-ed93f571.js → EllipsoidGeometry-508da15c.js} +1 -1
  15. package/Build/Workers/{EllipsoidOutlineGeometry-e4854854.js → EllipsoidOutlineGeometry-40d97455.js} +1 -1
  16. package/Build/Workers/{EllipsoidRhumbLine-b672d507.js → EllipsoidRhumbLine-ef872433.js} +1 -1
  17. package/Build/Workers/{EllipsoidTangentPlane-7ae1aa9a.js → EllipsoidTangentPlane-46d4d9c2.js} +1 -1
  18. package/Build/Workers/{EncodedCartesian3-e8bbca36.js → EncodedCartesian3-57415c8a.js} +1 -1
  19. package/Build/Workers/{FrustumGeometry-b62db3e3.js → FrustumGeometry-38605e69.js} +32 -4
  20. package/Build/Workers/{GeometryAttribute-780af4fa.js → GeometryAttribute-a466e9c7.js} +1 -1
  21. package/Build/Workers/{GeometryInstance-3fb607b7.js → GeometryInstance-34d9e21e.js} +1 -1
  22. package/Build/Workers/{GeometryPipeline-36b61c99.js → GeometryPipeline-dcf79306.js} +1 -1
  23. package/Build/Workers/{IndexDatatype-b8f3e09d.js → IndexDatatype-2643aa47.js} +1 -1
  24. package/Build/Workers/{IntersectionTests-e889fcf0.js → IntersectionTests-88c49b2e.js} +1 -1
  25. package/Build/Workers/{Math-dad82b4d.js → Math-0a2ac845.js} +12 -2
  26. package/Build/Workers/{Matrix2-1e403d0e.js → Matrix2-e1298525.js} +1 -1
  27. package/Build/Workers/{Matrix3-fa806b97.js → Matrix3-41c58dde.js} +1 -1
  28. package/Build/Workers/{OrientedBoundingBox-43478ac8.js → OrientedBoundingBox-2dd47921.js} +5 -3
  29. package/Build/Workers/{Plane-c27e1ac6.js → Plane-4c3d403b.js} +1 -1
  30. package/Build/Workers/{PolygonGeometryLibrary-38a98276.js → PolygonGeometryLibrary-59126025.js} +1 -1
  31. package/Build/Workers/PolygonPipeline-1fe328c0.js +1344 -0
  32. package/Build/Workers/{PolylinePipeline-30e4cec9.js → PolylinePipeline-896735cc.js} +1 -1
  33. package/Build/Workers/{PolylineVolumeGeometryLibrary-90551d26.js → PolylineVolumeGeometryLibrary-9c0639f7.js} +1 -1
  34. package/Build/Workers/{PrimitivePipeline-558d9cb0.js → PrimitivePipeline-fc1a47ff.js} +1 -1
  35. package/Build/Workers/{RectangleGeometryLibrary-815c68df.js → RectangleGeometryLibrary-a23c9ebe.js} +1 -1
  36. package/Build/Workers/{TerrainEncoding-341ead52.js → TerrainEncoding-51b8b33b.js} +1 -1
  37. package/Build/Workers/Transforms-bc45e707.js +14699 -0
  38. package/Build/Workers/{WallGeometryLibrary-ccf90976.js → WallGeometryLibrary-007e9883.js} +1 -1
  39. package/Build/Workers/{WebMercatorProjection-76a3fcc0.js → WebMercatorProjection-13ed1a6e.js} +1 -1
  40. package/Build/Workers/{arrayRemoveDuplicates-fac118a8.js → arrayRemoveDuplicates-d2061e85.js} +1 -1
  41. package/Build/Workers/cesiumWorkerBootstrapper.js +1 -1
  42. package/Build/Workers/combineGeometry.js +1 -1
  43. package/Build/Workers/createBoxGeometry.js +1 -1
  44. package/Build/Workers/createBoxOutlineGeometry.js +1 -1
  45. package/Build/Workers/createCircleGeometry.js +1 -1
  46. package/Build/Workers/createCircleOutlineGeometry.js +1 -1
  47. package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
  48. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  49. package/Build/Workers/createCorridorGeometry.js +1 -1
  50. package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
  51. package/Build/Workers/createCylinderGeometry.js +1 -1
  52. package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
  53. package/Build/Workers/createEllipseGeometry.js +1 -1
  54. package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
  55. package/Build/Workers/createEllipsoidGeometry.js +1 -1
  56. package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
  57. package/Build/Workers/createFrustumGeometry.js +1 -1
  58. package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
  59. package/Build/Workers/createGeometry.js +1 -1
  60. package/Build/Workers/createGroundPolylineGeometry.js +1 -1
  61. package/Build/Workers/createPlaneGeometry.js +1 -1
  62. package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
  63. package/Build/Workers/createPolygonGeometry.js +1 -1
  64. package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
  65. package/Build/Workers/createPolylineGeometry.js +1 -1
  66. package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
  67. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
  68. package/Build/Workers/createRectangleGeometry.js +1 -1
  69. package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
  70. package/Build/Workers/createSimplePolylineGeometry.js +1 -1
  71. package/Build/Workers/createSphereGeometry.js +1 -1
  72. package/Build/Workers/createSphereOutlineGeometry.js +1 -1
  73. package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
  74. package/Build/Workers/createVectorTileGeometries.js +1 -1
  75. package/Build/Workers/createVectorTilePoints.js +1 -1
  76. package/Build/Workers/createVectorTilePolygons.js +1 -1
  77. package/Build/Workers/createVectorTilePolylines.js +1 -1
  78. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  79. package/Build/Workers/createVerticesFromHeightmap.js +5 -8
  80. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +10 -15
  81. package/Build/Workers/createWallGeometry.js +1 -1
  82. package/Build/Workers/createWallOutlineGeometry.js +1 -1
  83. package/Build/Workers/decodeDraco.js +1 -1
  84. package/Build/Workers/decodeI3S.js +1 -1
  85. package/Build/Workers/package.js +1 -1
  86. package/Build/Workers/transferTypedArrayTest.js +1 -1
  87. package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
  88. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +291 -191
  89. package/Source/Core/BingMapsGeocoderService.js +19 -1
  90. package/Source/Core/CartographicGeocoderService.js +15 -0
  91. package/Source/Core/CesiumTerrainProvider.js +571 -434
  92. package/Source/Core/Credit.js +1 -1
  93. package/Source/Core/CustomHeightmapTerrainProvider.js +12 -0
  94. package/Source/Core/EllipsoidTerrainProvider.js +17 -10
  95. package/Source/Core/FrustumGeometry.js +4 -3
  96. package/Source/Core/GeocoderService.js +32 -1
  97. package/Source/Core/GoogleEarthEnterpriseMetadata.js +86 -34
  98. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +119 -82
  99. package/Source/Core/Ion.js +1 -1
  100. package/Source/Core/IonGeocoderService.js +17 -2
  101. package/Source/Core/IonResource.js +14 -3
  102. package/Source/Core/OpenCageGeocoderService.js +18 -1
  103. package/Source/Core/OrientedBoundingBox.js +4 -2
  104. package/Source/Core/OrthographicFrustum.js +13 -0
  105. package/Source/Core/PeliasGeocoderService.js +14 -1
  106. package/Source/Core/PerspectiveFrustum.js +14 -0
  107. package/Source/Core/Request.js +3 -2
  108. package/Source/Core/RequestScheduler.js +10 -5
  109. package/Source/Core/Resource.js +230 -236
  110. package/Source/Core/TerrainProvider.js +9 -14
  111. package/Source/Core/TileProviderError.js +8 -8
  112. package/Source/Core/VRTheWorldTerrainProvider.js +193 -124
  113. package/Source/Core/buildModuleUrl.js +4 -3
  114. package/Source/Core/createWorldTerrain.js +20 -2
  115. package/Source/Core/createWorldTerrainAsync.js +48 -0
  116. package/Source/Core/sampleTerrain.js +9 -10
  117. package/Source/Core/sampleTerrainMostDetailed.js +66 -72
  118. package/Source/DataSources/Cesium3DTilesetVisualizer.js +37 -26
  119. package/Source/DataSources/DataSourceDisplay.js +2 -2
  120. package/Source/DataSources/Entity.js +6 -1
  121. package/Source/DataSources/EntityCluster.js +126 -128
  122. package/Source/DataSources/ModelVisualizer.js +104 -34
  123. package/Source/DataSources/PolygonGraphics.js +1 -1
  124. package/Source/Renderer/UniformState.js +3 -2
  125. package/Source/Renderer/demodernizeShader.js +5 -5
  126. package/Source/Scene/ArcGisBaseMapType.js +12 -0
  127. package/Source/Scene/ArcGisMapServerImageryProvider.js +694 -376
  128. package/Source/Scene/ArcGisMapService.js +83 -0
  129. package/Source/Scene/BingMapsImageryProvider.js +511 -305
  130. package/Source/Scene/BufferLoader.js +29 -34
  131. package/Source/Scene/Camera.js +8 -7
  132. package/Source/Scene/Cesium3DTile.js +392 -254
  133. package/Source/Scene/Cesium3DTileBatchTable.js +2 -2
  134. package/Source/Scene/Cesium3DTileContent.js +16 -0
  135. package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
  136. package/Source/Scene/Cesium3DTilePass.js +8 -11
  137. package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
  138. package/Source/Scene/Cesium3DTilesVoxelProvider.js +225 -117
  139. package/Source/Scene/Cesium3DTileset.js +756 -482
  140. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
  141. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
  142. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
  143. package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
  144. package/Source/Scene/ClassificationPrimitive.js +7 -0
  145. package/Source/Scene/Composite3DTileContent.js +69 -26
  146. package/Source/Scene/CreditDisplay.js +132 -20
  147. package/Source/Scene/DepthPlane.js +1 -1
  148. package/Source/Scene/Empty3DTileContent.js +31 -1
  149. package/Source/Scene/Geometry3DTileContent.js +47 -7
  150. package/Source/Scene/Globe.js +5 -1
  151. package/Source/Scene/GlobeSurfaceTile.js +2 -1
  152. package/Source/Scene/GlobeSurfaceTileProvider.js +53 -30
  153. package/Source/Scene/GltfBufferViewLoader.js +47 -91
  154. package/Source/Scene/GltfDracoLoader.js +110 -112
  155. package/Source/Scene/GltfImageLoader.js +71 -78
  156. package/Source/Scene/GltfIndexBufferLoader.js +108 -121
  157. package/Source/Scene/GltfJsonLoader.js +87 -74
  158. package/Source/Scene/GltfLoader.js +381 -300
  159. package/Source/Scene/GltfStructuralMetadataLoader.js +109 -110
  160. package/Source/Scene/GltfTextureLoader.js +97 -96
  161. package/Source/Scene/GltfVertexBufferLoader.js +128 -133
  162. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +353 -225
  163. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +491 -331
  164. package/Source/Scene/GridImageryProvider.js +267 -104
  165. package/Source/Scene/GroundPolylinePrimitive.js +12 -1
  166. package/Source/Scene/GroundPrimitive.js +8 -1
  167. package/Source/Scene/I3SDataProvider.js +214 -113
  168. package/Source/Scene/I3SFeature.js +7 -6
  169. package/Source/Scene/I3SLayer.js +26 -37
  170. package/Source/Scene/I3SNode.js +59 -66
  171. package/Source/Scene/Imagery.js +6 -1
  172. package/Source/Scene/ImageryLayer.js +299 -48
  173. package/Source/Scene/ImageryLayerCollection.js +26 -0
  174. package/Source/Scene/ImageryProvider.js +129 -111
  175. package/Source/Scene/Implicit3DTileContent.js +72 -23
  176. package/Source/Scene/ImplicitSubtree.js +66 -45
  177. package/Source/Scene/IonImageryProvider.js +482 -275
  178. package/Source/Scene/MapboxImageryProvider.js +272 -112
  179. package/Source/Scene/MapboxStyleImageryProvider.js +270 -111
  180. package/Source/Scene/MetadataSchemaLoader.js +26 -36
  181. package/Source/Scene/Model/B3dmLoader.js +42 -46
  182. package/Source/Scene/Model/GeoJsonLoader.js +8 -32
  183. package/Source/Scene/Model/I3dmLoader.js +48 -74
  184. package/Source/Scene/Model/MaterialPipelineStage.js +12 -12
  185. package/Source/Scene/Model/Model.js +514 -135
  186. package/Source/Scene/Model/Model3DTileContent.js +83 -31
  187. package/Source/Scene/Model/ModelAnimationCollection.js +3 -3
  188. package/Source/Scene/Model/ModelDrawCommand.js +15 -26
  189. package/Source/Scene/Model/ModelUtility.js +16 -16
  190. package/Source/Scene/Model/PntsLoader.js +27 -32
  191. package/Source/Scene/Model/UniformType.js +1 -1
  192. package/Source/Scene/Multiple3DTileContent.js +134 -115
  193. package/Source/Scene/Picking.js +3 -2
  194. package/Source/Scene/PointCloud.js +11 -19
  195. package/Source/Scene/Primitive.js +20 -0
  196. package/Source/Scene/QuadtreePrimitive.js +5 -2
  197. package/Source/Scene/QuadtreeTileProvider.js +4 -8
  198. package/Source/Scene/ResourceCache.js +47 -105
  199. package/Source/Scene/ResourceCacheStatistics.js +24 -58
  200. package/Source/Scene/ResourceLoader.js +5 -17
  201. package/Source/Scene/ResourceLoaderState.js +12 -4
  202. package/Source/Scene/Scene.js +65 -0
  203. package/Source/Scene/SceneTransforms.js +3 -2
  204. package/Source/Scene/ScreenSpaceCameraController.js +2 -2
  205. package/Source/Scene/SingleTileImageryProvider.js +382 -209
  206. package/Source/Scene/Terrain.js +196 -0
  207. package/Source/Scene/TileCoordinatesImageryProvider.js +267 -104
  208. package/Source/Scene/TileMapServiceImageryProvider.js +177 -85
  209. package/Source/Scene/Tileset3DTileContent.js +47 -5
  210. package/Source/Scene/TimeDynamicPointCloud.js +15 -2
  211. package/Source/Scene/UrlTemplateImageryProvider.js +343 -215
  212. package/Source/Scene/Vector3DTileClampedPolylines.js +96 -84
  213. package/Source/Scene/Vector3DTileContent.js +47 -22
  214. package/Source/Scene/Vector3DTileGeometry.js +57 -52
  215. package/Source/Scene/Vector3DTilePoints.js +97 -81
  216. package/Source/Scene/Vector3DTilePolygons.js +118 -117
  217. package/Source/Scene/Vector3DTilePolylines.js +86 -82
  218. package/Source/Scene/Vector3DTilePrimitive.js +0 -1
  219. package/Source/Scene/VoxelContent.js +61 -63
  220. package/Source/Scene/VoxelPrimitive.js +39 -91
  221. package/Source/Scene/VoxelProvider.js +2 -2
  222. package/Source/Scene/WebMapServiceImageryProvider.js +272 -111
  223. package/Source/Scene/WebMapTileServiceImageryProvider.js +270 -107
  224. package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
  225. package/Source/Scene/createOsmBuildings.js +6 -0
  226. package/Source/Scene/createOsmBuildingsAsync.js +82 -0
  227. package/Source/Scene/createWorldImagery.js +14 -5
  228. package/Source/Scene/createWorldImageryAsync.js +39 -0
  229. package/Source/Shaders/AtmosphereCommon.glsl +51 -8
  230. package/Source/Shaders/AtmosphereCommon.js +51 -8
  231. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +1 -1
  232. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +1 -1
  233. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +3 -3
  234. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +3 -3
  235. package/Source/Widget/CesiumWidget.js +67 -27
  236. package/index.d.ts +2429 -1475
  237. package/index.js +324 -315
  238. package/package.json +4 -4
  239. package/Build/Workers/PolygonPipeline-d31ff61c.js +0 -1345
  240. package/Build/Workers/Transforms-9e9df299.js +0 -14714
@@ -1,10 +1,12 @@
1
1
  import Cartesian2 from "../Core/Cartesian2.js";
2
2
  import Cartesian3 from "../Core/Cartesian3.js";
3
3
  import Cartographic from "../Core/Cartographic.js";
4
+ import Check from "../Core/Check.js";
4
5
  import combine from "../Core/combine.js";
5
6
  import Credit from "../Core/Credit.js";
6
7
  import defaultValue from "../Core/defaultValue.js";
7
8
  import defined from "../Core/defined.js";
9
+ import deprecationWarning from "../Core/deprecationWarning.js";
8
10
  import DeveloperError from "../Core/DeveloperError.js";
9
11
  import Event from "../Core/Event.js";
10
12
  import GeographicProjection from "../Core/GeographicProjection.js";
@@ -134,7 +136,8 @@ const pickFeaturesTags = combine(tags, {
134
136
  * source does not support picking features or if you don't want this provider's features to be pickable. Note
135
137
  * that this can be dynamically overridden by modifying the {@link UriTemplateImageryProvider#enablePickFeatures}
136
138
  * property.
137
- * @property {object} [customTags] Allow to replace custom keywords in the URL template. The object must have strings as keys and functions as values.
139
+ * @property {TileDiscardPolicy} [tileDiscardPolicy] A policy for discarding tile images according to some criteria
140
+ * @property {Object} [customTags] Allow to replace custom keywords in the URL template. The object must have strings as keys and functions as values.
138
141
  */
139
142
 
140
143
  /**
@@ -149,7 +152,6 @@ const pickFeaturesTags = combine(tags, {
149
152
  * // Access Natural Earth II imagery, which uses a TMS tiling scheme and Geographic (EPSG:4326) project
150
153
  * const tms = new Cesium.UrlTemplateImageryProvider({
151
154
  * url : Cesium.buildModuleUrl('Assets/Textures/NaturalEarthII') + '/{z}/{x}/{reverseY}.jpg',
152
- * credit : '© Analytical Graphics, Inc.',
153
155
  * tilingScheme : new Cesium.GeographicTilingScheme(),
154
156
  * maximumLevel : 5
155
157
  * });
@@ -188,118 +190,83 @@ const pickFeaturesTags = combine(tags, {
188
190
  * @see WebMapTileServiceImageryProvider
189
191
  */
190
192
  function UrlTemplateImageryProvider(options) {
191
- //>>includeStart('debug', pragmas.debug);
192
- if (!defined(options)) {
193
- throw new DeveloperError("options is required.");
194
- }
195
- if (!defined(options.then) && !defined(options.url)) {
196
- throw new DeveloperError("options is required.");
197
- }
198
- //>>includeEnd('debug');
193
+ options = defaultValue(options, defaultValue.EMPTY_OBJECT);
199
194
 
200
195
  this._errorEvent = new Event();
201
196
 
202
- this._resource = undefined;
203
- this._urlSchemeZeroPadding = undefined;
204
- this._pickFeaturesResource = undefined;
205
- this._tileWidth = undefined;
206
- this._tileHeight = undefined;
207
- this._maximumLevel = undefined;
208
- this._minimumLevel = undefined;
209
- this._tilingScheme = undefined;
210
- this._rectangle = undefined;
211
- this._tileDiscardPolicy = undefined;
212
- this._credit = undefined;
213
- this._hasAlphaChannel = undefined;
214
- this._readyPromise = undefined;
215
- this._tags = undefined;
216
- this._pickFeaturesTags = undefined;
217
-
218
- /**
219
- * The default alpha blending value of this provider, with 0.0 representing fully transparent and
220
- * 1.0 representing fully opaque.
221
- *
222
- * @type {number|undefined}
223
- * @default undefined
224
- */
225
- this.defaultAlpha = undefined;
226
-
227
- /**
228
- * The default alpha blending value on the night side of the globe of this provider, with 0.0 representing fully transparent and
229
- * 1.0 representing fully opaque.
230
- *
231
- * @type {number|undefined}
232
- * @default undefined
233
- */
234
- this.defaultNightAlpha = undefined;
235
-
236
- /**
237
- * The default alpha blending value on the day side of the globe of this provider, with 0.0 representing fully transparent and
238
- * 1.0 representing fully opaque.
239
- *
240
- * @type {number|undefined}
241
- * @default undefined
242
- */
243
- this.defaultDayAlpha = undefined;
197
+ if (defined(options.then)) {
198
+ this._reinitialize(options);
199
+ return;
200
+ }
244
201
 
245
- /**
246
- * The default brightness of this provider. 1.0 uses the unmodified imagery color. Less than 1.0
247
- * makes the imagery darker while greater than 1.0 makes it brighter.
248
- *
249
- * @type {number|undefined}
250
- * @default undefined
251
- */
252
- this.defaultBrightness = undefined;
202
+ //>>includeStart('debug', pragmas.debug);
203
+ Check.defined("options.url", options.url);
204
+ //>>includeEnd('debug');
253
205
 
254
- /**
255
- * The default contrast of this provider. 1.0 uses the unmodified imagery color. Less than 1.0 reduces
256
- * the contrast while greater than 1.0 increases it.
257
- *
258
- * @type {number|undefined}
259
- * @default undefined
260
- */
261
- this.defaultContrast = undefined;
206
+ const resource = Resource.createIfNeeded(options.url);
207
+ const pickFeaturesResource = Resource.createIfNeeded(options.pickFeaturesUrl);
262
208
 
263
- /**
264
- * The default hue of this provider in radians. 0.0 uses the unmodified imagery color.
265
- *
266
- * @type {number|undefined}
267
- * @default undefined
268
- */
269
- this.defaultHue = undefined;
209
+ this._resource = resource;
210
+ this._urlSchemeZeroPadding = options.urlSchemeZeroPadding;
211
+ this._getFeatureInfoFormats = options.getFeatureInfoFormats;
212
+ this._pickFeaturesResource = pickFeaturesResource;
270
213
 
271
- /**
272
- * The default saturation of this provider. 1.0 uses the unmodified imagery color. Less than 1.0 reduces the
273
- * saturation while greater than 1.0 increases it.
274
- *
275
- * @type {number|undefined}
276
- * @default undefined
277
- */
278
- this.defaultSaturation = undefined;
214
+ let subdomains = options.subdomains;
215
+ if (Array.isArray(subdomains)) {
216
+ subdomains = subdomains.slice();
217
+ } else if (defined(subdomains) && subdomains.length > 0) {
218
+ subdomains = subdomains.split("");
219
+ } else {
220
+ subdomains = ["a", "b", "c"];
221
+ }
222
+ this._subdomains = subdomains;
223
+
224
+ this._tileWidth = defaultValue(options.tileWidth, 256);
225
+ this._tileHeight = defaultValue(options.tileHeight, 256);
226
+ this._minimumLevel = defaultValue(options.minimumLevel, 0);
227
+ this._maximumLevel = options.maximumLevel;
228
+ this._tilingScheme = defaultValue(
229
+ options.tilingScheme,
230
+ new WebMercatorTilingScheme({ ellipsoid: options.ellipsoid })
231
+ );
279
232
 
280
- /**
281
- * The default gamma correction to apply to this provider. 1.0 uses the unmodified imagery color.
282
- *
283
- * @type {number|undefined}
284
- * @default undefined
285
- */
286
- this.defaultGamma = undefined;
233
+ this._rectangle = defaultValue(
234
+ options.rectangle,
235
+ this._tilingScheme.rectangle
236
+ );
237
+ this._rectangle = Rectangle.intersection(
238
+ this._rectangle,
239
+ this._tilingScheme.rectangle
240
+ );
287
241
 
288
- /**
289
- * The default texture minification filter to apply to this provider.
290
- *
291
- * @type {TextureMinificationFilter}
292
- * @default undefined
293
- */
294
- this.defaultMinificationFilter = undefined;
242
+ this._tileDiscardPolicy = options.tileDiscardPolicy;
295
243
 
296
- /**
297
- * The default texture magnification filter to apply to this provider.
298
- *
299
- * @type {TextureMagnificationFilter}
300
- * @default undefined
301
- */
302
- this.defaultMagnificationFilter = undefined;
244
+ let credit = options.credit;
245
+ if (typeof credit === "string") {
246
+ credit = new Credit(credit);
247
+ }
248
+ this._credit = credit;
249
+ this._hasAlphaChannel = defaultValue(options.hasAlphaChannel, true);
250
+
251
+ const customTags = options.customTags;
252
+ const allTags = combine(tags, customTags);
253
+ const allPickFeaturesTags = combine(pickFeaturesTags, customTags);
254
+ this._tags = allTags;
255
+ this._pickFeaturesTags = allPickFeaturesTags;
256
+
257
+ this._readyPromise = Promise.resolve(true);
258
+ this._ready = true;
259
+
260
+ this._defaultAlpha = undefined;
261
+ this._defaultNightAlpha = undefined;
262
+ this._defaultDayAlpha = undefined;
263
+ this._defaultBrightness = undefined;
264
+ this._defaultContrast = undefined;
265
+ this._defaultHue = undefined;
266
+ this._defaultSaturation = undefined;
267
+ this._defaultGamma = undefined;
268
+ this._defaultMinificationFilter = undefined;
269
+ this._defaultMagnificationFilter = undefined;
303
270
 
304
271
  /**
305
272
  * Gets or sets a value indicating whether feature picking is enabled. If true, {@link UrlTemplateImageryProvider#pickFeatures} will
@@ -310,9 +277,7 @@ function UrlTemplateImageryProvider(options) {
310
277
  * @type {boolean}
311
278
  * @default true
312
279
  */
313
- this.enablePickFeatures = true;
314
-
315
- this.reinitialize(options);
280
+ this.enablePickFeatures = defaultValue(options.enablePickFeatures, true);
316
281
  }
317
282
 
318
283
  Object.defineProperties(UrlTemplateImageryProvider.prototype, {
@@ -411,8 +376,7 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
411
376
  },
412
377
 
413
378
  /**
414
- * Gets the width of each tile, in pixels. This function should
415
- * not be called before {@link UrlTemplateImageryProvider#ready} returns true.
379
+ * Gets the width of each tile, in pixels.
416
380
  * @memberof UrlTemplateImageryProvider.prototype
417
381
  * @type {number}
418
382
  * @readonly
@@ -420,20 +384,12 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
420
384
  */
421
385
  tileWidth: {
422
386
  get: function () {
423
- //>>includeStart('debug', pragmas.debug);
424
- if (!this.ready) {
425
- throw new DeveloperError(
426
- "tileWidth must not be called before the imagery provider is ready."
427
- );
428
- }
429
- //>>includeEnd('debug');
430
387
  return this._tileWidth;
431
388
  },
432
389
  },
433
390
 
434
391
  /**
435
- * Gets the height of each tile, in pixels. This function should
436
- * not be called before {@link UrlTemplateImageryProvider#ready} returns true.
392
+ * Gets the height of each tile, in pixels.
437
393
  * @memberof UrlTemplateImageryProvider.prototype
438
394
  * @type {number}
439
395
  * @readonly
@@ -441,20 +397,12 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
441
397
  */
442
398
  tileHeight: {
443
399
  get: function () {
444
- //>>includeStart('debug', pragmas.debug);
445
- if (!this.ready) {
446
- throw new DeveloperError(
447
- "tileHeight must not be called before the imagery provider is ready."
448
- );
449
- }
450
- //>>includeEnd('debug');
451
400
  return this._tileHeight;
452
401
  },
453
402
  },
454
403
 
455
404
  /**
456
405
  * Gets the maximum level-of-detail that can be requested, or undefined if there is no limit.
457
- * This function should not be called before {@link UrlTemplateImageryProvider#ready} returns true.
458
406
  * @memberof UrlTemplateImageryProvider.prototype
459
407
  * @type {number|undefined}
460
408
  * @readonly
@@ -462,20 +410,12 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
462
410
  */
463
411
  maximumLevel: {
464
412
  get: function () {
465
- //>>includeStart('debug', pragmas.debug);
466
- if (!this.ready) {
467
- throw new DeveloperError(
468
- "maximumLevel must not be called before the imagery provider is ready."
469
- );
470
- }
471
- //>>includeEnd('debug');
472
413
  return this._maximumLevel;
473
414
  },
474
415
  },
475
416
 
476
417
  /**
477
- * Gets the minimum level-of-detail that can be requested. This function should
478
- * not be called before {@link UrlTemplateImageryProvider#ready} returns true.
418
+ * Gets the minimum level-of-detail that can be requested.
479
419
  * @memberof UrlTemplateImageryProvider.prototype
480
420
  * @type {number}
481
421
  * @readonly
@@ -483,20 +423,12 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
483
423
  */
484
424
  minimumLevel: {
485
425
  get: function () {
486
- //>>includeStart('debug', pragmas.debug);
487
- if (!this.ready) {
488
- throw new DeveloperError(
489
- "minimumLevel must not be called before the imagery provider is ready."
490
- );
491
- }
492
- //>>includeEnd('debug');
493
426
  return this._minimumLevel;
494
427
  },
495
428
  },
496
429
 
497
430
  /**
498
- * Gets the tiling scheme used by this provider. This function should
499
- * not be called before {@link UrlTemplateImageryProvider#ready} returns true.
431
+ * Gets the tiling scheme used by this provider.
500
432
  * @memberof UrlTemplateImageryProvider.prototype
501
433
  * @type {TilingScheme}
502
434
  * @readonly
@@ -504,20 +436,12 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
504
436
  */
505
437
  tilingScheme: {
506
438
  get: function () {
507
- //>>includeStart('debug', pragmas.debug);
508
- if (!this.ready) {
509
- throw new DeveloperError(
510
- "tilingScheme must not be called before the imagery provider is ready."
511
- );
512
- }
513
- //>>includeEnd('debug');
514
439
  return this._tilingScheme;
515
440
  },
516
441
  },
517
442
 
518
443
  /**
519
- * Gets the rectangle, in radians, of the imagery provided by this instance. This function should
520
- * not be called before {@link UrlTemplateImageryProvider#ready} returns true.
444
+ * Gets the rectangle, in radians, of the imagery provided by this instance.
521
445
  * @memberof UrlTemplateImageryProvider.prototype
522
446
  * @type {Rectangle}
523
447
  * @readonly
@@ -525,13 +449,6 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
525
449
  */
526
450
  rectangle: {
527
451
  get: function () {
528
- //>>includeStart('debug', pragmas.debug);
529
- if (!this.ready) {
530
- throw new DeveloperError(
531
- "rectangle must not be called before the imagery provider is ready."
532
- );
533
- }
534
- //>>includeEnd('debug');
535
452
  return this._rectangle;
536
453
  },
537
454
  },
@@ -539,8 +456,7 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
539
456
  /**
540
457
  * Gets the tile discard policy. If not undefined, the discard policy is responsible
541
458
  * for filtering out "missing" tiles via its shouldDiscardImage function. If this function
542
- * returns undefined, no tiles are filtered. This function should
543
- * not be called before {@link UrlTemplateImageryProvider#ready} returns true.
459
+ * returns undefined, no tiles are filtered.
544
460
  * @memberof UrlTemplateImageryProvider.prototype
545
461
  * @type {TileDiscardPolicy}
546
462
  * @readonly
@@ -548,13 +464,6 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
548
464
  */
549
465
  tileDiscardPolicy: {
550
466
  get: function () {
551
- //>>includeStart('debug', pragmas.debug);
552
- if (!this.ready) {
553
- throw new DeveloperError(
554
- "tileDiscardPolicy must not be called before the imagery provider is ready."
555
- );
556
- }
557
- //>>includeEnd('debug');
558
467
  return this._tileDiscardPolicy;
559
468
  },
560
469
  },
@@ -578,10 +487,15 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
578
487
  * @memberof UrlTemplateImageryProvider.prototype
579
488
  * @type {boolean}
580
489
  * @readonly
490
+ * @deprecated
581
491
  */
582
492
  ready: {
583
493
  get: function () {
584
- return defined(this._resource);
494
+ deprecationWarning(
495
+ "UrlTemplateImageryProvider.ready",
496
+ "UrlTemplateImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
497
+ );
498
+ return this._ready && defined(this._resource);
585
499
  },
586
500
  },
587
501
 
@@ -590,16 +504,21 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
590
504
  * @memberof UrlTemplateImageryProvider.prototype
591
505
  * @type {Promise<boolean>}
592
506
  * @readonly
507
+ * @deprecated
593
508
  */
594
509
  readyPromise: {
595
510
  get: function () {
511
+ deprecationWarning(
512
+ "UrlTemplateImageryProvider.readyPromise",
513
+ "UrlTemplateImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
514
+ );
596
515
  return this._readyPromise;
597
516
  },
598
517
  },
599
518
 
600
519
  /**
601
520
  * Gets the credit to display when this imagery provider is active. Typically this is used to credit
602
- * the source of the imagery. This function should not be called before {@link UrlTemplateImageryProvider#ready} returns true.
521
+ * the source of the imagery.
603
522
  * @memberof UrlTemplateImageryProvider.prototype
604
523
  * @type {Credit}
605
524
  * @readonly
@@ -607,13 +526,6 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
607
526
  */
608
527
  credit: {
609
528
  get: function () {
610
- //>>includeStart('debug', pragmas.debug);
611
- if (!this.ready) {
612
- throw new DeveloperError(
613
- "credit must not be called before the imagery provider is ready."
614
- );
615
- }
616
- //>>includeEnd('debug');
617
529
  return this._credit;
618
530
  },
619
531
  },
@@ -623,8 +535,7 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
623
535
  * include an alpha channel. If this property is false, an alpha channel, if present, will
624
536
  * be ignored. If this property is true, any images without an alpha channel will be treated
625
537
  * as if their alpha is 1.0 everywhere. When this property is false, memory usage
626
- * and texture upload time are reduced. This function should
627
- * not be called before {@link ImageryProvider#ready} returns true.
538
+ * and texture upload time are reduced.
628
539
  * @memberof UrlTemplateImageryProvider.prototype
629
540
  * @type {boolean}
630
541
  * @readonly
@@ -632,26 +543,269 @@ Object.defineProperties(UrlTemplateImageryProvider.prototype, {
632
543
  */
633
544
  hasAlphaChannel: {
634
545
  get: function () {
635
- //>>includeStart('debug', pragmas.debug);
636
- if (!this.ready) {
637
- throw new DeveloperError(
638
- "hasAlphaChannel must not be called before the imagery provider is ready."
639
- );
640
- }
641
- //>>includeEnd('debug');
642
546
  return this._hasAlphaChannel;
643
547
  },
644
548
  },
549
+
550
+ /**
551
+ * The default alpha blending value of this provider, with 0.0 representing fully transparent and
552
+ * 1.0 representing fully opaque.
553
+ * @memberof UrlTemplateImageryProvider.prototype
554
+ * @type {Number|undefined}
555
+ * @deprecated
556
+ */
557
+ defaultAlpha: {
558
+ get: function () {
559
+ deprecationWarning(
560
+ "UrlTemplateImageryProvider.defaultAlpha",
561
+ "UrlTemplateImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."
562
+ );
563
+ return this._defaultAlpha;
564
+ },
565
+ set: function (value) {
566
+ deprecationWarning(
567
+ "UrlTemplateImageryProvider.defaultAlpha",
568
+ "UrlTemplateImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."
569
+ );
570
+ this._defaultAlpha = value;
571
+ },
572
+ },
573
+
574
+ /**
575
+ * The default alpha blending value on the night side of the globe of this provider, with 0.0 representing fully transparent and
576
+ * 1.0 representing fully opaque.
577
+ * @memberof UrlTemplateImageryProvider.prototype
578
+ * @type {Number|undefined}
579
+ * @deprecated
580
+ */
581
+ defaultNightAlpha: {
582
+ get: function () {
583
+ deprecationWarning(
584
+ "UrlTemplateImageryProvider.defaultNightAlpha",
585
+ "UrlTemplateImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."
586
+ );
587
+ return this._defaultNightAlpha;
588
+ },
589
+ set: function (value) {
590
+ deprecationWarning(
591
+ "UrlTemplateImageryProvider.defaultNightAlpha",
592
+ "UrlTemplateImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."
593
+ );
594
+ this._defaultNightAlpha = value;
595
+ },
596
+ },
597
+
598
+ /**
599
+ * The default alpha blending value on the day side of the globe of this provider, with 0.0 representing fully transparent and
600
+ * 1.0 representing fully opaque.
601
+ * @memberof UrlTemplateImageryProvider.prototype
602
+ * @type {Number|undefined}
603
+ * @deprecated
604
+ */
605
+ defaultDayAlpha: {
606
+ get: function () {
607
+ deprecationWarning(
608
+ "UrlTemplateImageryProvider.defaultDayAlpha",
609
+ "UrlTemplateImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."
610
+ );
611
+ return this._defaultDayAlpha;
612
+ },
613
+ set: function (value) {
614
+ deprecationWarning(
615
+ "UrlTemplateImageryProvider.defaultDayAlpha",
616
+ "UrlTemplateImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."
617
+ );
618
+ this._defaultDayAlpha = value;
619
+ },
620
+ },
621
+
622
+ /**
623
+ * The default brightness of this provider. 1.0 uses the unmodified imagery color. Less than 1.0
624
+ * makes the imagery darker while greater than 1.0 makes it brighter.
625
+ * @memberof UrlTemplateImageryProvider.prototype
626
+ * @type {Number|undefined}
627
+ * @deprecated
628
+ */
629
+ defaultBrightness: {
630
+ get: function () {
631
+ deprecationWarning(
632
+ "UrlTemplateImageryProvider.defaultBrightness",
633
+ "UrlTemplateImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."
634
+ );
635
+ return this._defaultBrightness;
636
+ },
637
+ set: function (value) {
638
+ deprecationWarning(
639
+ "UrlTemplateImageryProvider.defaultBrightness",
640
+ "UrlTemplateImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."
641
+ );
642
+ this._defaultBrightness = value;
643
+ },
644
+ },
645
+
646
+ /**
647
+ * The default contrast of this provider. 1.0 uses the unmodified imagery color. Less than 1.0 reduces
648
+ * the contrast while greater than 1.0 increases it.
649
+ * @memberof UrlTemplateImageryProvider.prototype
650
+ * @type {Number|undefined}
651
+ * @deprecated
652
+ */
653
+ defaultContrast: {
654
+ get: function () {
655
+ deprecationWarning(
656
+ "UrlTemplateImageryProvider.defaultContrast",
657
+ "UrlTemplateImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."
658
+ );
659
+ return this._defaultContrast;
660
+ },
661
+ set: function (value) {
662
+ deprecationWarning(
663
+ "UrlTemplateImageryProvider.defaultContrast",
664
+ "UrlTemplateImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."
665
+ );
666
+ this._defaultContrast = value;
667
+ },
668
+ },
669
+
670
+ /**
671
+ * The default hue of this provider in radians. 0.0 uses the unmodified imagery color.
672
+ * @memberof UrlTemplateImageryProvider.prototype
673
+ * @type {Number|undefined}
674
+ * @deprecated
675
+ */
676
+ defaultHue: {
677
+ get: function () {
678
+ deprecationWarning(
679
+ "UrlTemplateImageryProvider.defaultHue",
680
+ "UrlTemplateImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."
681
+ );
682
+ return this._defaultHue;
683
+ },
684
+ set: function (value) {
685
+ deprecationWarning(
686
+ "UrlTemplateImageryProvider.defaultHue",
687
+ "UrlTemplateImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."
688
+ );
689
+ this._defaultHue = value;
690
+ },
691
+ },
692
+
693
+ /**
694
+ * The default saturation of this provider. 1.0 uses the unmodified imagery color. Less than 1.0 reduces the
695
+ * saturation while greater than 1.0 increases it.
696
+ * @memberof UrlTemplateImageryProvider.prototype
697
+ * @type {Number|undefined}
698
+ * @deprecated
699
+ */
700
+ defaultSaturation: {
701
+ get: function () {
702
+ deprecationWarning(
703
+ "UrlTemplateImageryProvider.defaultSaturation",
704
+ "UrlTemplateImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."
705
+ );
706
+ return this._defaultSaturation;
707
+ },
708
+ set: function (value) {
709
+ deprecationWarning(
710
+ "UrlTemplateImageryProvider.defaultSaturation",
711
+ "UrlTemplateImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."
712
+ );
713
+ this._defaultSaturation = value;
714
+ },
715
+ },
716
+
717
+ /**
718
+ * The default gamma correction to apply to this provider. 1.0 uses the unmodified imagery color.
719
+ * @memberof UrlTemplateImageryProvider.prototype
720
+ * @type {Number|undefined}
721
+ * @deprecated
722
+ */
723
+ defaultGamma: {
724
+ get: function () {
725
+ deprecationWarning(
726
+ "UrlTemplateImageryProvider.defaultGamma",
727
+ "UrlTemplateImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."
728
+ );
729
+ return this._defaultGamma;
730
+ },
731
+ set: function (value) {
732
+ deprecationWarning(
733
+ "UrlTemplateImageryProvider.defaultGamma",
734
+ "UrlTemplateImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."
735
+ );
736
+ this._defaultGamma = value;
737
+ },
738
+ },
739
+
740
+ /**
741
+ * The default texture minification filter to apply to this provider.
742
+ * @memberof UrlTemplateImageryProvider.prototype
743
+ * @type {TextureMinificationFilter}
744
+ * @deprecated
745
+ */
746
+ defaultMinificationFilter: {
747
+ get: function () {
748
+ deprecationWarning(
749
+ "UrlTemplateImageryProvider.defaultMinificationFilter",
750
+ "UrlTemplateImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."
751
+ );
752
+ return this._defaultMinificationFilter;
753
+ },
754
+ set: function (value) {
755
+ deprecationWarning(
756
+ "UrlTemplateImageryProvider.defaultMinificationFilter",
757
+ "UrlTemplateImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."
758
+ );
759
+ this._defaultMinificationFilter = value;
760
+ },
761
+ },
762
+
763
+ /**
764
+ * The default texture magnification filter to apply to this provider.
765
+ * @memberof UrlTemplateImageryProvider.prototype
766
+ * @type {TextureMagnificationFilter}
767
+ * @deprecated
768
+ */
769
+ defaultMagnificationFilter: {
770
+ get: function () {
771
+ deprecationWarning(
772
+ "UrlTemplateImageryProvider.defaultMagnificationFilter",
773
+ "UrlTemplateImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."
774
+ );
775
+ return this._defaultMagnificationFilter;
776
+ },
777
+ set: function (value) {
778
+ deprecationWarning(
779
+ "UrlTemplateImageryProvider.defaultMagnificationFilter",
780
+ "UrlTemplateImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."
781
+ );
782
+ this._defaultMagnificationFilter = value;
783
+ },
784
+ },
645
785
  });
646
786
 
647
787
  /**
648
788
  * Reinitializes this instance. Reinitializing an instance already in use is supported, but it is not
649
789
  * recommended because existing tiles provided by the imagery provider will not be updated.
790
+ * @deprecated
650
791
  *
651
792
  * @param {Promise<object>|object} options Any of the options that may be passed to the {@link UrlTemplateImageryProvider} constructor.
652
793
  */
653
794
  UrlTemplateImageryProvider.prototype.reinitialize = function (options) {
795
+ deprecationWarning(
796
+ "UrlTemplateImageryProvider.reinitialize",
797
+ "UrlTemplateImageryProvider.reinitialize was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."
798
+ );
799
+
800
+ return this._reinitialize(options);
801
+ };
802
+
803
+ /**
804
+ * @private
805
+ */
806
+ UrlTemplateImageryProvider.prototype._reinitialize = function (options) {
654
807
  const that = this;
808
+
655
809
  that._readyPromise = Promise.resolve(options).then(function (properties) {
656
810
  //>>includeStart('debug', pragmas.debug);
657
811
  if (!defined(properties)) {
@@ -718,6 +872,7 @@ UrlTemplateImageryProvider.prototype.reinitialize = function (options) {
718
872
  that._tags = allTags;
719
873
  that._pickFeaturesResource = pickFeaturesResource;
720
874
  that._pickFeaturesTags = allPickFeaturesTags;
875
+ that._ready = true;
721
876
 
722
877
  return true;
723
878
  });
@@ -730,24 +885,12 @@ UrlTemplateImageryProvider.prototype.reinitialize = function (options) {
730
885
  * @param {number} y The tile Y coordinate.
731
886
  * @param {number} level The tile level;
732
887
  * @returns {Credit[]} The credits to be displayed when the tile is displayed.
733
- *
734
- * @exception {DeveloperError} <code>getTileCredits</code> must not be called before the imagery provider is ready.
735
888
  */
736
889
  UrlTemplateImageryProvider.prototype.getTileCredits = function (x, y, level) {
737
- //>>includeStart('debug', pragmas.debug);
738
- if (!this.ready) {
739
- throw new DeveloperError(
740
- "getTileCredits must not be called before the imagery provider is ready."
741
- );
742
- }
743
- //>>includeEnd('debug');
744
890
  return undefined;
745
891
  };
746
892
 
747
893
  /**
748
- * Requests the image for a given tile. This function should
749
- * not be called before {@link UrlTemplateImageryProvider#ready} returns true.
750
- *
751
894
  * @param {number} x The tile X coordinate.
752
895
  * @param {number} y The tile Y coordinate.
753
896
  * @param {number} level The tile level.
@@ -761,13 +904,6 @@ UrlTemplateImageryProvider.prototype.requestImage = function (
761
904
  level,
762
905
  request
763
906
  ) {
764
- //>>includeStart('debug', pragmas.debug);
765
- if (!this.ready) {
766
- throw new DeveloperError(
767
- "requestImage must not be called before the imagery provider is ready."
768
- );
769
- }
770
- //>>includeEnd('debug');
771
907
  return ImageryProvider.loadImage(
772
908
  this,
773
909
  buildImageResource(this, x, y, level, request)
@@ -776,7 +912,7 @@ UrlTemplateImageryProvider.prototype.requestImage = function (
776
912
 
777
913
  /**
778
914
  * Asynchronously determines what features, if any, are located at a given longitude and latitude within
779
- * a tile. This function should not be called before {@link ImageryProvider#ready} returns true.
915
+ * a tile.
780
916
  *
781
917
  * @param {number} x The tile X coordinate.
782
918
  * @param {number} y The tile Y coordinate.
@@ -795,14 +931,6 @@ UrlTemplateImageryProvider.prototype.pickFeatures = function (
795
931
  longitude,
796
932
  latitude
797
933
  ) {
798
- //>>includeStart('debug', pragmas.debug);
799
- if (!this.ready) {
800
- throw new DeveloperError(
801
- "pickFeatures must not be called before the imagery provider is ready."
802
- );
803
- }
804
- //>>includeEnd('debug');
805
-
806
934
  if (
807
935
  !this.enablePickFeatures ||
808
936
  !defined(this._pickFeaturesResource) ||