ol 9.2.5-dev.1718652616882 → 9.2.5-dev.1718925536936

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 (143) hide show
  1. package/DataTile.d.ts +14 -0
  2. package/DataTile.d.ts.map +1 -1
  3. package/DataTile.js +24 -1
  4. package/Map.d.ts +1 -1
  5. package/Map.d.ts.map +1 -1
  6. package/Map.js +9 -10
  7. package/Tile.d.ts +2 -22
  8. package/Tile.d.ts.map +1 -1
  9. package/Tile.js +2 -77
  10. package/TileQueue.d.ts.map +1 -1
  11. package/TileQueue.js +6 -4
  12. package/VectorRenderTile.d.ts +8 -13
  13. package/VectorRenderTile.d.ts.map +1 -1
  14. package/VectorRenderTile.js +17 -24
  15. package/VectorTile.d.ts +5 -5
  16. package/VectorTile.d.ts.map +1 -1
  17. package/VectorTile.js +3 -3
  18. package/dist/ol.d.ts +10 -2
  19. package/dist/ol.d.ts.map +1 -1
  20. package/dist/ol.js +2 -2
  21. package/dist/ol.js.map +1 -1
  22. package/featureloader.d.ts +4 -4
  23. package/featureloader.d.ts.map +1 -1
  24. package/featureloader.js +2 -2
  25. package/format/EsriJSON.d.ts +1 -1
  26. package/format/Feature.d.ts +8 -8
  27. package/format/Feature.d.ts.map +1 -1
  28. package/format/Feature.js +7 -5
  29. package/format/GeoJSON.d.ts +9 -9
  30. package/format/GeoJSON.d.ts.map +1 -1
  31. package/format/GeoJSON.js +10 -14
  32. package/format/JSONFeature.d.ts +7 -7
  33. package/format/JSONFeature.d.ts.map +1 -1
  34. package/format/JSONFeature.js +9 -11
  35. package/format/MVT.d.ts +12 -12
  36. package/format/MVT.d.ts.map +1 -1
  37. package/format/MVT.js +12 -14
  38. package/format/TextFeature.d.ts +1 -1
  39. package/format/TopoJSON.d.ts +1 -1
  40. package/format/WKB.d.ts +1 -1
  41. package/format/XMLFeature.d.ts +1 -1
  42. package/interaction/DragAndDrop.d.ts +1 -1
  43. package/layer/BaseTile.d.ts +23 -6
  44. package/layer/BaseTile.d.ts.map +1 -1
  45. package/layer/BaseTile.js +22 -3
  46. package/layer/Tile.d.ts +1 -1
  47. package/layer/Tile.d.ts.map +1 -1
  48. package/layer/Tile.js +3 -1
  49. package/layer/VectorTile.d.ts +19 -6
  50. package/layer/VectorTile.d.ts.map +1 -1
  51. package/layer/VectorTile.js +20 -8
  52. package/layer/WebGLTile.d.ts +5 -10
  53. package/layer/WebGLTile.d.ts.map +1 -1
  54. package/layer/WebGLTile.js +3 -12
  55. package/package.json +1 -1
  56. package/renderer/Layer.d.ts +22 -25
  57. package/renderer/Layer.d.ts.map +1 -1
  58. package/renderer/Layer.js +36 -36
  59. package/renderer/canvas/TileLayer.d.ts +100 -38
  60. package/renderer/canvas/TileLayer.d.ts.map +1 -1
  61. package/renderer/canvas/TileLayer.js +542 -329
  62. package/renderer/canvas/VectorTileLayer.d.ts +11 -11
  63. package/renderer/canvas/VectorTileLayer.d.ts.map +1 -1
  64. package/renderer/canvas/VectorTileLayer.js +33 -46
  65. package/renderer/webgl/TileLayerBase.d.ts +0 -6
  66. package/renderer/webgl/TileLayerBase.d.ts.map +1 -1
  67. package/renderer/webgl/TileLayerBase.js +61 -78
  68. package/reproj/DataTile.d.ts.map +1 -1
  69. package/reproj/DataTile.js +103 -100
  70. package/source/BingMaps.d.ts +2 -2
  71. package/source/BingMaps.d.ts.map +1 -1
  72. package/source/BingMaps.js +1 -2
  73. package/source/CartoDB.d.ts +2 -2
  74. package/source/CartoDB.js +1 -1
  75. package/source/DataTile.d.ts +49 -20
  76. package/source/DataTile.d.ts.map +1 -1
  77. package/source/DataTile.js +56 -9
  78. package/source/GeoTIFF.d.ts +2 -6
  79. package/source/GeoTIFF.d.ts.map +1 -1
  80. package/source/GeoTIFF.js +3 -3
  81. package/source/Google.d.ts.map +1 -1
  82. package/source/Google.js +0 -2
  83. package/source/IIIF.d.ts +1 -1
  84. package/source/IIIF.js +1 -1
  85. package/source/ImageTile.d.ts +102 -0
  86. package/source/ImageTile.d.ts.map +1 -0
  87. package/source/ImageTile.js +208 -0
  88. package/source/OGCMapTile.d.ts +2 -2
  89. package/source/OGCMapTile.js +1 -1
  90. package/source/OGCVectorTile.d.ts +4 -4
  91. package/source/OGCVectorTile.js +2 -2
  92. package/source/OSM.d.ts +2 -7
  93. package/source/OSM.d.ts.map +1 -1
  94. package/source/OSM.js +1 -3
  95. package/source/StadiaMaps.d.ts +2 -2
  96. package/source/StadiaMaps.d.ts.map +1 -1
  97. package/source/StadiaMaps.js +2 -18
  98. package/source/Tile.d.ts +7 -36
  99. package/source/Tile.d.ts.map +1 -1
  100. package/source/Tile.js +5 -69
  101. package/source/TileArcGISRest.d.ts +2 -2
  102. package/source/TileArcGISRest.js +1 -1
  103. package/source/TileDebug.d.ts.map +1 -1
  104. package/source/TileDebug.js +0 -1
  105. package/source/TileImage.d.ts +7 -11
  106. package/source/TileImage.d.ts.map +1 -1
  107. package/source/TileImage.js +11 -43
  108. package/source/TileJSON.d.ts +2 -2
  109. package/source/TileJSON.js +1 -1
  110. package/source/TileWMS.d.ts +2 -2
  111. package/source/TileWMS.d.ts.map +1 -1
  112. package/source/TileWMS.js +1 -4
  113. package/source/UTFGrid.d.ts +1 -1
  114. package/source/UrlTile.d.ts +14 -12
  115. package/source/UrlTile.d.ts.map +1 -1
  116. package/source/UrlTile.js +12 -7
  117. package/source/Vector.d.ts +5 -5
  118. package/source/Vector.d.ts.map +1 -1
  119. package/source/Vector.js +3 -3
  120. package/source/VectorTile.d.ts +4 -17
  121. package/source/VectorTile.d.ts.map +1 -1
  122. package/source/VectorTile.js +10 -85
  123. package/source/WMTS.d.ts +2 -2
  124. package/source/WMTS.js +3 -3
  125. package/source/XYZ.d.ts +14 -17
  126. package/source/XYZ.d.ts.map +1 -1
  127. package/source/XYZ.js +7 -8
  128. package/source/Zoomify.d.ts +2 -2
  129. package/source/Zoomify.d.ts.map +1 -1
  130. package/source/Zoomify.js +3 -2
  131. package/source.d.ts +1 -0
  132. package/source.d.ts.map +1 -1
  133. package/source.js +1 -0
  134. package/tilecoord.d.ts +7 -0
  135. package/tilecoord.d.ts.map +1 -1
  136. package/tilecoord.js +11 -1
  137. package/tileurlfunction.d.ts +3 -7
  138. package/tileurlfunction.d.ts.map +1 -1
  139. package/tileurlfunction.js +14 -47
  140. package/uri.d.ts +23 -3
  141. package/uri.d.ts.map +1 -1
  142. package/uri.js +75 -0
  143. package/util.js +1 -1
@@ -0,0 +1,208 @@
1
+ /**
2
+ * @module ol/source/ImageTile
3
+ */
4
+ import DataTileSource from './DataTile.js';
5
+ import {expandUrl, pickUrl, renderXYZTemplate} from '../uri.js';
6
+
7
+ /**
8
+ * Image tile loading function. The function is called with z, x, and y tile coordinates and
9
+ * returns an {@link import("../DataTile.js").ImageLike image} or a promise for the same.
10
+ *
11
+ * @typedef {function(number, number, number, import("./DataTile.js").LoaderOptions):(import("../DataTile.js").ImageLike|Promise<import("../DataTile.js").ImageLike>)} Loader
12
+ */
13
+
14
+ /**
15
+ * @typedef {function(number, number, number, import("./DataTile.js").LoaderOptions):string} UrlGetter
16
+ */
17
+
18
+ /**
19
+ * @typedef {string | Array<string> | UrlGetter} UrlLike
20
+ */
21
+
22
+ /**
23
+ * @typedef {Object} Options
24
+ * @property {UrlLike} [url] The image URL template. In addition to a single URL template, an array of URL templates or a function
25
+ * can be provided. If a function is provided, it will be called with z, x, y tile coordinates and loader options and should
26
+ * return a URL.
27
+ * @property {Loader} [loader] Data loader. Called with z, x, and y tile coordinates.
28
+ * Returns an {@link import("../DataTile.js").ImageLike image} for a tile or a promise for the same.
29
+ * The promise should not resolve until the image is loaded. If the `url` option is provided, a loader will be created.
30
+ * @property {import("./Source.js").AttributionLike} [attributions] Attributions.
31
+ * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.
32
+ * @property {number} [maxZoom=42] Optional max zoom level. Not used if `tileGrid` is provided.
33
+ * @property {number} [minZoom=0] Optional min zoom level. Not used if `tileGrid` is provided.
34
+ * @property {number|import("../size.js").Size} [tileSize=[256, 256]] The pixel width and height of the source tiles.
35
+ * This may be different than the rendered pixel size if a `tileGrid` is provided.
36
+ * @property {number} [gutter=0] The size in pixels of the gutter around data tiles to ignore.
37
+ * This allows artifacts of rendering at tile edges to be ignored.
38
+ * Supported data should be wider and taller than the tile size by a value of `2 x gutter`.
39
+ * @property {number} [maxResolution] Optional tile grid resolution at level zero. Not used if `tileGrid` is provided.
40
+ * @property {import("../proj.js").ProjectionLike} [projection='EPSG:3857'] Tile projection.
41
+ * @property {import("../tilegrid/TileGrid.js").default} [tileGrid] Tile grid.
42
+ * @property {import("./Source.js").State} [state] The source state.
43
+ * @property {boolean} [wrapX=true] Render tiles beyond the antimeridian.
44
+ * @property {number} [transition] Transition time when fading in new tiles (in miliseconds).
45
+ * @property {boolean} [interpolate=true] Use interpolated values when resampling.
46
+ * @property {import('./DataTile.js').CrossOriginAttribute} [crossOrigin='anonymous'] The crossOrigin property to pass to loaders for image data.
47
+ */
48
+
49
+ const loadError = new Error('Image failed to load');
50
+
51
+ /**
52
+ * @param {string} template The image url template.
53
+ * @param {number} z The tile z coordinate.
54
+ * @param {number} x The tile x coordinate.
55
+ * @param {number} y The tile y coordinate.
56
+ * @param {import('./DataTile.js').LoaderOptions} options The loader options.
57
+ * @return {Promise<HTMLImageElement>} Resolves with a loaded image.
58
+ */
59
+ function loadImage(template, z, x, y, options) {
60
+ return new Promise((resolve, reject) => {
61
+ const image = new Image();
62
+ if (options.crossOrigin !== undefined) {
63
+ image.crossOrigin = options.crossOrigin;
64
+ }
65
+ image.addEventListener('load', () => resolve(image));
66
+ image.addEventListener('error', () => reject(loadError));
67
+ image.src = renderXYZTemplate(template, z, x, y, options.maxY);
68
+ });
69
+ }
70
+
71
+ /**
72
+ * @param {Array<string>} templates The url templates.
73
+ * @return {Loader} The image loader.
74
+ */
75
+ function makeLoaderFromTemplates(templates) {
76
+ return function (z, x, y, options) {
77
+ const template = pickUrl(templates, z, x, y);
78
+ return loadImage(template, z, x, y, options);
79
+ };
80
+ }
81
+
82
+ /**
83
+ * @param {UrlGetter} getter The url getter.
84
+ * @return {Loader} The image loader.
85
+ */
86
+ function makeLoaderFromGetter(getter) {
87
+ return function (z, x, y, options) {
88
+ const url = getter(z, x, y, options);
89
+ return loadImage(url, z, x, y, options);
90
+ };
91
+ }
92
+
93
+ /**
94
+ * @param {UrlLike} url The URL-like option.
95
+ * @return {Loader} The tile loader.
96
+ */
97
+ function makeLoaderFromUrlLike(url) {
98
+ /**
99
+ * @type {Loader}
100
+ */
101
+ let loader;
102
+
103
+ if (Array.isArray(url)) {
104
+ loader = makeLoaderFromTemplates(url);
105
+ } else if (typeof url === 'string') {
106
+ const urls = expandUrl(url);
107
+ loader = makeLoaderFromTemplates(urls);
108
+ } else if (typeof url === 'function') {
109
+ loader = makeLoaderFromGetter(url);
110
+ } else {
111
+ throw new Error(
112
+ 'The url option must be a single template, an array of templates, or a function for getting a URL',
113
+ );
114
+ }
115
+ return loader;
116
+ }
117
+
118
+ let keyCount = 0;
119
+
120
+ /**
121
+ * @param {UrlLike} url The URL-like option.
122
+ * @return {string} A key for the URL.
123
+ */
124
+ function keyFromUrlLike(url) {
125
+ if (Array.isArray(url)) {
126
+ return url.join('\n');
127
+ }
128
+
129
+ if (typeof url === 'string') {
130
+ return url;
131
+ }
132
+
133
+ ++keyCount;
134
+ return 'url-function-key-' + keyCount;
135
+ }
136
+
137
+ /**
138
+ * @classdesc
139
+ * A source for typed array data tiles.
140
+ *
141
+ * @extends DataTileSource<import("../ImageTile.js").default>
142
+ * @fires import("./Tile.js").TileSourceEvent
143
+ * @api
144
+ */
145
+ class ImageTileSource extends DataTileSource {
146
+ /**
147
+ * @param {Options} [options] DataTile source options.
148
+ */
149
+ constructor(options) {
150
+ options = options || {};
151
+
152
+ /**
153
+ * @type {Loader}
154
+ */
155
+ let loader = options.loader;
156
+
157
+ /**
158
+ * @type {string}
159
+ */
160
+ let key;
161
+
162
+ if (options.url) {
163
+ loader = makeLoaderFromUrlLike(options.url);
164
+ key = keyFromUrlLike(options.url);
165
+ }
166
+
167
+ /**
168
+ * @type {import('./Source.js').State}
169
+ */
170
+ const state = !loader ? 'loading' : options.state;
171
+
172
+ const wrapX = options.wrapX === undefined ? true : options.wrapX;
173
+
174
+ super({
175
+ loader: loader,
176
+ key: key,
177
+ attributions: options.attributions,
178
+ attributionsCollapsible: options.attributionsCollapsible,
179
+ maxZoom: options.maxZoom,
180
+ minZoom: options.minZoom,
181
+ tileSize: options.tileSize,
182
+ gutter: options.gutter,
183
+ maxResolution: options.maxResolution,
184
+ projection: options.projection,
185
+ tileGrid: options.tileGrid,
186
+ state: state,
187
+ wrapX: wrapX,
188
+ transition: options.transition,
189
+ interpolate: options.interpolate !== false,
190
+ crossOrigin: options.crossOrigin,
191
+ });
192
+ }
193
+
194
+ /**
195
+ * @param {UrlLike} url The new URL.
196
+ * @api
197
+ */
198
+ setUrl(url) {
199
+ const loader = makeLoaderFromUrlLike(url);
200
+ this.setLoader(loader);
201
+ this.setKey(keyFromUrlLike(url));
202
+ if (this.getState() !== 'ready') {
203
+ this.setState('ready');
204
+ }
205
+ }
206
+ }
207
+
208
+ export default ImageTileSource;
@@ -25,7 +25,7 @@ export type Options = {
25
25
  */
26
26
  attributions?: import("./Source.js").AttributionLike | undefined;
27
27
  /**
28
- * Tile cache size. The default depends on the screen size. Will be ignored if too small.
28
+ * Deprecated. Use the cacheSize option on the layer instead.
29
29
  */
30
30
  cacheSize?: number | undefined;
31
31
  /**
@@ -79,7 +79,7 @@ export type Options = {
79
79
  * will be derived from the `crs` of the `tileMatrixSet`. You can override this by supplying
80
80
  * a projection to the constructor.
81
81
  * @property {import("./Source.js").AttributionLike} [attributions] Attributions.
82
- * @property {number} [cacheSize] Tile cache size. The default depends on the screen size. Will be ignored if too small.
82
+ * @property {number} [cacheSize] Deprecated. Use the cacheSize option on the layer instead.
83
83
  * @property {null|string} [crossOrigin] The `crossOrigin` attribute for loaded images. Note that
84
84
  * you must provide a `crossOrigin` value if you want to access pixel data with the Canvas renderer.
85
85
  * See https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image for more detail.
@@ -16,7 +16,7 @@ import {error as logError} from '../console.js';
16
16
  * will be derived from the `crs` of the `tileMatrixSet`. You can override this by supplying
17
17
  * a projection to the constructor.
18
18
  * @property {import("./Source.js").AttributionLike} [attributions] Attributions.
19
- * @property {number} [cacheSize] Tile cache size. The default depends on the screen size. Will be ignored if too small.
19
+ * @property {number} [cacheSize] Deprecated. Use the cacheSize option on the layer instead.
20
20
  * @property {null|string} [crossOrigin] The `crossOrigin` attribute for loaded images. Note that
21
21
  * you must provide a `crossOrigin` value if you want to access pixel data with the Canvas renderer.
22
22
  * See https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image for more detail.
@@ -12,7 +12,7 @@ export type Options<FeatureType extends import("../Feature.js").FeatureLike = im
12
12
  /**
13
13
  * Feature format for tiles. Used and required by the default.
14
14
  */
15
- format?: import("../format/Feature.js").default<import("../format/Feature.js").FeatureToFeatureClass<FeatureType>> | undefined;
15
+ format?: import("../format/Feature.js").default<FeatureType> | undefined;
16
16
  /**
17
17
  * The content type for the tiles (e.g. "application/vnd.mapbox-vector-tile"). If not provided,
18
18
  * the source will try to find a link with rel="item" that uses a vector type supported by the configured format.
@@ -27,7 +27,7 @@ export type Options<FeatureType extends import("../Feature.js").FeatureLike = im
27
27
  */
28
28
  attributionsCollapsible?: boolean | undefined;
29
29
  /**
30
- * Initial tile cache size. Will auto-grow to hold at least twice the number of tiles in the viewport.
30
+ * Deprecated. Use the cacheSize option on the layer instead.
31
31
  */
32
32
  cacheSize?: number | undefined;
33
33
  /**
@@ -75,12 +75,12 @@ export type Options<FeatureType extends import("../Feature.js").FeatureLike = im
75
75
  * @property {string} url URL to the OGC Vector Tileset endpoint.
76
76
  * @property {Object} [context] A lookup of values to use in the tile URL template. The `{tileMatrix}`
77
77
  * (zoom level), `{tileRow}`, and `{tileCol}` variables in the URL will always be provided by the source.
78
- * @property {import("../format/Feature.js").default<import("../format/Feature.js").FeatureToFeatureClass<FeatureType>>} [format] Feature format for tiles. Used and required by the default.
78
+ * @property {import("../format/Feature.js").default<FeatureType>} [format] Feature format for tiles. Used and required by the default.
79
79
  * @property {string} [mediaType] The content type for the tiles (e.g. "application/vnd.mapbox-vector-tile"). If not provided,
80
80
  * the source will try to find a link with rel="item" that uses a vector type supported by the configured format.
81
81
  * @property {import("./Source.js").AttributionLike} [attributions] Attributions.
82
82
  * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.
83
- * @property {number} [cacheSize] Initial tile cache size. Will auto-grow to hold at least twice the number of tiles in the viewport.
83
+ * @property {number} [cacheSize] Deprecated. Use the cacheSize option on the layer instead.
84
84
  * @property {boolean} [overlaps=true] This source may have overlapping geometries. Setting this
85
85
  * to `false` (e.g. for sources with polygons that represent administrative
86
86
  * boundaries or TopoJSON sources) allows the renderer to optimise fill and
@@ -12,12 +12,12 @@ import {error as logError} from '../console.js';
12
12
  * @property {string} url URL to the OGC Vector Tileset endpoint.
13
13
  * @property {Object} [context] A lookup of values to use in the tile URL template. The `{tileMatrix}`
14
14
  * (zoom level), `{tileRow}`, and `{tileCol}` variables in the URL will always be provided by the source.
15
- * @property {import("../format/Feature.js").default<import("../format/Feature.js").FeatureToFeatureClass<FeatureType>>} [format] Feature format for tiles. Used and required by the default.
15
+ * @property {import("../format/Feature.js").default<FeatureType>} [format] Feature format for tiles. Used and required by the default.
16
16
  * @property {string} [mediaType] The content type for the tiles (e.g. "application/vnd.mapbox-vector-tile"). If not provided,
17
17
  * the source will try to find a link with rel="item" that uses a vector type supported by the configured format.
18
18
  * @property {import("./Source.js").AttributionLike} [attributions] Attributions.
19
19
  * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.
20
- * @property {number} [cacheSize] Initial tile cache size. Will auto-grow to hold at least twice the number of tiles in the viewport.
20
+ * @property {number} [cacheSize] Deprecated. Use the cacheSize option on the layer instead.
21
21
  * @property {boolean} [overlaps=true] This source may have overlapping geometries. Setting this
22
22
  * to `false` (e.g. for sources with polygons that represent administrative
23
23
  * boundaries or TopoJSON sources) allows the renderer to optimise fill and
package/source/OSM.d.ts CHANGED
@@ -13,7 +13,7 @@ export type Options = {
13
13
  */
14
14
  attributions?: import("./Source.js").AttributionLike | undefined;
15
15
  /**
16
- * Initial tile cache size. Will auto-grow to hold at least the number of tiles in the viewport.
16
+ * Deprecated. Use the cacheSize option on the layer instead.
17
17
  */
18
18
  cacheSize?: number | undefined;
19
19
  /**
@@ -31,10 +31,6 @@ export type Options = {
31
31
  * Max zoom.
32
32
  */
33
33
  maxZoom?: number | undefined;
34
- /**
35
- * Whether the layer is opaque.
36
- */
37
- opaque?: boolean | undefined;
38
34
  /**
39
35
  * Maximum allowed reprojection error (in pixels).
40
36
  * Higher values can increase reprojection performance, but decrease precision.
@@ -72,14 +68,13 @@ export type Options = {
72
68
  /**
73
69
  * @typedef {Object} Options
74
70
  * @property {import("./Source.js").AttributionLike} [attributions] Attributions.
75
- * @property {number} [cacheSize] Initial tile cache size. Will auto-grow to hold at least the number of tiles in the viewport.
71
+ * @property {number} [cacheSize] Deprecated. Use the cacheSize option on the layer instead.
76
72
  * @property {null|string} [crossOrigin='anonymous'] The `crossOrigin` attribute for loaded images. Note that
77
73
  * you must provide a `crossOrigin` value if you want to access pixel data with the Canvas renderer.
78
74
  * See https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image for more detail.
79
75
  * @property {boolean} [interpolate=true] Use interpolated values when resampling. By default,
80
76
  * linear interpolation is used when resampling. Set to false to use the nearest neighbor instead.
81
77
  * @property {number} [maxZoom=19] Max zoom.
82
- * @property {boolean} [opaque=true] Whether the layer is opaque.
83
78
  * @property {number} [reprojectionErrorThreshold=0.5] Maximum allowed reprojection error (in pixels).
84
79
  * Higher values can increase reprojection performance, but decrease precision.
85
80
  * @property {import("../Tile.js").LoadFunction} [tileLoadFunction] Optional function to load a tile given a URL. The default is
@@ -1 +1 @@
1
- {"version":3,"file":"OSM.d.ts","sourceRoot":"","sources":["OSM.js"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,0BAHU,MAAM,CAME;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;GAIG;AACH;IACE;;OAEG;IACH,2CAiCC;CACF;gBAtFe,UAAU"}
1
+ {"version":3,"file":"OSM.d.ts","sourceRoot":"","sources":["OSM.js"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,0BAHU,MAAM,CAME;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;;GAIG;AACH;IACE;;OAEG;IACH,2CAgCC;CACF;gBApFe,UAAU"}
package/source/OSM.js CHANGED
@@ -19,14 +19,13 @@ export const ATTRIBUTION =
19
19
  /**
20
20
  * @typedef {Object} Options
21
21
  * @property {import("./Source.js").AttributionLike} [attributions] Attributions.
22
- * @property {number} [cacheSize] Initial tile cache size. Will auto-grow to hold at least the number of tiles in the viewport.
22
+ * @property {number} [cacheSize] Deprecated. Use the cacheSize option on the layer instead.
23
23
  * @property {null|string} [crossOrigin='anonymous'] The `crossOrigin` attribute for loaded images. Note that
24
24
  * you must provide a `crossOrigin` value if you want to access pixel data with the Canvas renderer.
25
25
  * See https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image for more detail.
26
26
  * @property {boolean} [interpolate=true] Use interpolated values when resampling. By default,
27
27
  * linear interpolation is used when resampling. Set to false to use the nearest neighbor instead.
28
28
  * @property {number} [maxZoom=19] Max zoom.
29
- * @property {boolean} [opaque=true] Whether the layer is opaque.
30
29
  * @property {number} [reprojectionErrorThreshold=0.5] Maximum allowed reprojection error (in pixels).
31
30
  * Higher values can increase reprojection performance, but decrease precision.
32
31
  * @property {import("../Tile.js").LoadFunction} [tileLoadFunction] Optional function to load a tile given a URL. The default is
@@ -79,7 +78,6 @@ class OSM extends XYZ {
79
78
  crossOrigin: crossOrigin,
80
79
  interpolate: options.interpolate,
81
80
  maxZoom: options.maxZoom !== undefined ? options.maxZoom : 19,
82
- opaque: options.opaque !== undefined ? options.opaque : true,
83
81
  reprojectionErrorThreshold: options.reprojectionErrorThreshold,
84
82
  tileLoadFunction: options.tileLoadFunction,
85
83
  transition: options.transition,
@@ -1,7 +1,7 @@
1
1
  export default StadiaMaps;
2
2
  export type Options = {
3
3
  /**
4
- * Initial tile cache size. Will auto-grow to hold at least the number of tiles in the viewport.
4
+ * Deprecated. Use the cacheSize option on the layer instead.
5
5
  */
6
6
  cacheSize?: number | undefined;
7
7
  /**
@@ -64,7 +64,7 @@ export type Options = {
64
64
  };
65
65
  /**
66
66
  * @typedef {Object} Options
67
- * @property {number} [cacheSize] Initial tile cache size. Will auto-grow to hold at least the number of tiles in the viewport.
67
+ * @property {number} [cacheSize] Deprecated. Use the cacheSize option on the layer instead.
68
68
  * @property {boolean} [interpolate=true] Use interpolated values when resampling. By default,
69
69
  * linear interpolation is used when resampling. Set to false to use the nearest neighbor instead.
70
70
  * @property {string} layer Layer name. Valid values: `alidade_smooth`, `alidade_smooth_dark`, `outdoors`, `stamen_terrain`, `stamen_terrain_background`, `stamen_terrain_labels`, `stamen_terrain_lines`, `stamen_toner_background`, `stamen_toner`, `stamen_toner_labels`, `stamen_toner_lines`, `stamen_toner_lite`, `stamen_watercolor`, and `osm_bright`.
@@ -1 +1 @@
1
- {"version":3,"file":"StadiaMaps.d.ts","sourceRoot":"","sources":["StadiaMaps.js"],"names":[],"mappings":";;;;;;;;;;;;;;WAwHc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AALpB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;;GAIG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,EAsDjB;CACF;gBAzMe,UAAU"}
1
+ {"version":3,"file":"StadiaMaps.d.ts","sourceRoot":"","sources":["StadiaMaps.js"],"names":[],"mappings":";;;;;;;;;;;;;;WAyGc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AALpB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;;GAIG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,EAqDjB;CACF;gBAzLe,UAAU"}
@@ -27,68 +27,53 @@ const STAMEN_ATTRIBUTION =
27
27
  '&copy; <a href="https://stamen.com/" target="_blank">Stamen Design</a>';
28
28
 
29
29
  /**
30
- * @type {Object<string, {extension: string, opaque: boolean}>}
30
+ * @type {Object<string, {extension: string}>}
31
31
  */
32
32
  const LayerConfig = {
33
33
  'stamen_terrain': {
34
34
  extension: 'png',
35
- opaque: true,
36
35
  },
37
36
  'stamen_terrain_background': {
38
37
  extension: 'png',
39
- opaque: true,
40
38
  },
41
39
  'stamen_terrain_labels': {
42
40
  extension: 'png',
43
- opaque: false,
44
41
  },
45
42
  'stamen_terrain_lines': {
46
43
  extension: 'png',
47
- opaque: false,
48
44
  },
49
45
  'stamen_toner_background': {
50
46
  extension: 'png',
51
- opaque: true,
52
47
  },
53
48
  'stamen_toner': {
54
49
  extension: 'png',
55
- opaque: true,
56
50
  },
57
51
  'stamen_toner_labels': {
58
52
  extension: 'png',
59
- opaque: false,
60
53
  },
61
54
  'stamen_toner_lines': {
62
55
  extension: 'png',
63
- opaque: false,
64
56
  },
65
57
  'stamen_toner_lite': {
66
58
  extension: 'png',
67
- opaque: true,
68
59
  },
69
60
  'stamen_watercolor': {
70
61
  extension: 'jpg',
71
- opaque: true,
72
62
  },
73
63
  'alidade_smooth': {
74
64
  extension: 'png',
75
- opaque: true,
76
65
  },
77
66
  'alidade_smooth_dark': {
78
67
  extension: 'png',
79
- opaque: true,
80
68
  },
81
69
  'alidade_satellite': {
82
70
  extension: 'png',
83
- opaque: true,
84
71
  },
85
72
  'outdoors': {
86
73
  extension: 'png',
87
- opaque: true,
88
74
  },
89
75
  'osm_bright': {
90
76
  extension: 'png',
91
- opaque: true,
92
77
  },
93
78
  };
94
79
 
@@ -115,7 +100,7 @@ const ProviderConfig = {
115
100
 
116
101
  /**
117
102
  * @typedef {Object} Options
118
- * @property {number} [cacheSize] Initial tile cache size. Will auto-grow to hold at least the number of tiles in the viewport.
103
+ * @property {number} [cacheSize] Deprecated. Use the cacheSize option on the layer instead.
119
104
  * @property {boolean} [interpolate=true] Use interpolated values when resampling. By default,
120
105
  * linear interpolation is used when resampling. Set to false to use the nearest neighbor instead.
121
106
  * @property {string} layer Layer name. Valid values: `alidade_smooth`, `alidade_smooth_dark`, `outdoors`, `stamen_terrain`, `stamen_terrain_background`, `stamen_terrain_labels`, `stamen_terrain_lines`, `stamen_toner_background`, `stamen_toner`, `stamen_toner_labels`, `stamen_toner_lines`, `stamen_toner_lite`, `stamen_watercolor`, and `osm_bright`.
@@ -193,7 +178,6 @@ class StadiaMaps extends XYZ {
193
178
  options.minZoom !== undefined
194
179
  ? options.minZoom
195
180
  : providerConfig.minZoom,
196
- opaque: layerConfig.opaque,
197
181
  reprojectionErrorThreshold: options.reprojectionErrorThreshold,
198
182
  tileLoadFunction: options.tileLoadFunction,
199
183
  transition: options.transition,
package/source/Tile.d.ts CHANGED
@@ -31,13 +31,9 @@ export type Options = {
31
31
  */
32
32
  attributionsCollapsible?: boolean | undefined;
33
33
  /**
34
- * CacheSize.
34
+ * Deprecated. Use the cacheSize option on the layer instead.
35
35
  */
36
36
  cacheSize?: number | undefined;
37
- /**
38
- * Whether the layer is opaque.
39
- */
40
- opaque?: boolean | undefined;
41
37
  /**
42
38
  * TilePixelRatio.
43
39
  */
@@ -89,8 +85,7 @@ import Event from '../events/Event.js';
89
85
  * @typedef {Object} Options
90
86
  * @property {import("./Source.js").AttributionLike} [attributions] Attributions.
91
87
  * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.
92
- * @property {number} [cacheSize] CacheSize.
93
- * @property {boolean} [opaque=false] Whether the layer is opaque.
88
+ * @property {number} [cacheSize] Deprecated. Use the cacheSize option on the layer instead.
94
89
  * @property {number} [tilePixelRatio] TilePixelRatio.
95
90
  * @property {import("../proj.js").ProjectionLike} [projection] Projection.
96
91
  * @property {import("./Source.js").State} [state] State.
@@ -107,10 +102,12 @@ import Event from '../events/Event.js';
107
102
  * Abstract base class; normally only used for creating subclasses and not
108
103
  * instantiated in apps.
109
104
  * Base class for sources providing images divided into a tile grid.
105
+ *
106
+ * @template {import("../Tile.js").default} [TileType=import("../Tile.js").default]
110
107
  * @abstract
111
108
  * @api
112
109
  */
113
- declare class TileSource extends Source {
110
+ declare class TileSource<TileType extends import("../Tile.js").default = import("../Tile.js").default> extends Source {
114
111
  /**
115
112
  * @param {Options} options SourceTile source options.
116
113
  */
@@ -127,11 +124,6 @@ declare class TileSource extends Source {
127
124
  * @type {TileSourceOnSignature<void>}
128
125
  */
129
126
  un: TileSourceOnSignature<void>;
130
- /**
131
- * @private
132
- * @type {boolean}
133
- */
134
- private opaque_;
135
127
  /**
136
128
  * @private
137
129
  * @type {number}
@@ -180,16 +172,6 @@ declare class TileSource extends Source {
180
172
  expireCache(projection: import("../proj/Projection.js").default, usedTiles: {
181
173
  [x: string]: boolean;
182
174
  }): void;
183
- /**
184
- * @param {import("../proj/Projection.js").default} projection Projection.
185
- * @param {number} z Zoom level.
186
- * @param {import("../TileRange.js").default} tileRange Tile range.
187
- * @param {function(import("../Tile.js").default):(boolean|void)} callback Called with each
188
- * loaded tile. If the callback returns `false`, the tile will not be
189
- * considered loaded.
190
- * @return {boolean} The tile range is fully covered with loaded tiles.
191
- */
192
- forEachLoadedTile(projection: import("../proj/Projection.js").default, z: number, tileRange: import("../TileRange.js").default, callback: (arg0: import("../Tile.js").default) => (boolean | void)): boolean;
193
175
  /**
194
176
  * @param {import("../proj/Projection.js").default} projection Projection.
195
177
  * @return {number} Gutter.
@@ -206,11 +188,6 @@ declare class TileSource extends Source {
206
188
  * @protected
207
189
  */
208
190
  protected setKey(key: string): void;
209
- /**
210
- * @param {import("../proj/Projection.js").default} projection Projection.
211
- * @return {boolean} Opaque.
212
- */
213
- getOpaque(projection: import("../proj/Projection.js").default): boolean;
214
191
  /**
215
192
  * @abstract
216
193
  * @param {number} z Tile coordinate z.
@@ -218,9 +195,9 @@ declare class TileSource extends Source {
218
195
  * @param {number} y Tile coordinate y.
219
196
  * @param {number} pixelRatio Pixel ratio.
220
197
  * @param {import("../proj/Projection.js").default} projection Projection.
221
- * @return {!import("../Tile.js").default} Tile.
198
+ * @return {TileType|null} Tile.
222
199
  */
223
- getTile(z: number, x: number, y: number, pixelRatio: number, projection: import("../proj/Projection.js").default): import("../Tile.js").default;
200
+ getTile(z: number, x: number, y: number, pixelRatio: number, projection: import("../proj/Projection.js").default): TileType | null;
224
201
  /**
225
202
  * Return the tile grid of the tile source.
226
203
  * @return {import("../tilegrid/TileGrid.js").default|null} Tile grid.
@@ -268,12 +245,6 @@ declare class TileSource extends Source {
268
245
  * @api
269
246
  */
270
247
  clear(): void;
271
- /**
272
- * Increases the cache size if needed
273
- * @param {number} tileCount Minimum number of tiles needed.
274
- * @param {import("../proj/Projection.js").default} projection Projection.
275
- */
276
- updateCacheSize(tileCount: number, projection: import("../proj/Projection.js").default): void;
277
248
  /**
278
249
  * Marks a tile coord as being used, without triggering a load.
279
250
  * @abstract
@@ -1 +1 @@
1
- {"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["Tile.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["Tile.js"],"names":[],"mappings":"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"}