ol 7.1.1-pr.14101.2 → 7.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 (190) hide show
  1. package/AssertionError.d.ts.map +1 -1
  2. package/AssertionError.js +1 -0
  3. package/DataTile.d.ts +34 -11
  4. package/DataTile.d.ts.map +1 -1
  5. package/DataTile.js +84 -7
  6. package/Feature.d.ts +3 -3
  7. package/Feature.js +3 -3
  8. package/Geolocation.d.ts +34 -27
  9. package/Geolocation.d.ts.map +1 -1
  10. package/Geolocation.js +30 -12
  11. package/Map.d.ts +19 -6
  12. package/Map.d.ts.map +1 -1
  13. package/Map.js +70 -43
  14. package/MapBrowserEventHandler.d.ts.map +1 -1
  15. package/MapBrowserEventHandler.js +9 -13
  16. package/Overlay.d.ts +1 -1
  17. package/Overlay.js +1 -1
  18. package/README.md +9 -1
  19. package/Tile.d.ts +2 -2
  20. package/Tile.js +1 -1
  21. package/TileCache.d.ts.map +1 -1
  22. package/TileCache.js +6 -8
  23. package/array.d.ts +2 -2
  24. package/array.d.ts.map +1 -1
  25. package/array.js +4 -4
  26. package/console.d.ts +13 -0
  27. package/console.d.ts.map +1 -0
  28. package/console.js +54 -0
  29. package/control/MousePosition.d.ts +12 -0
  30. package/control/MousePosition.d.ts.map +1 -1
  31. package/control/MousePosition.js +14 -0
  32. package/coordinate.d.ts +11 -11
  33. package/coordinate.js +11 -11
  34. package/dist/ol.js +1 -3
  35. package/dist/ol.js.map +1 -1
  36. package/featureloader.d.ts.map +1 -1
  37. package/featureloader.js +0 -1
  38. package/format/KML.js +3 -1
  39. package/geom/flat/interiorpoint.js +2 -2
  40. package/interaction/DragPan.d.ts.map +1 -1
  41. package/interaction/DragPan.js +3 -2
  42. package/interaction/Draw.d.ts.map +1 -1
  43. package/interaction/Draw.js +11 -14
  44. package/interaction/KeyboardPan.d.ts.map +1 -1
  45. package/interaction/KeyboardPan.js +0 -1
  46. package/interaction/KeyboardZoom.d.ts.map +1 -1
  47. package/interaction/KeyboardZoom.js +0 -1
  48. package/interaction/Link.d.ts +14 -0
  49. package/interaction/Link.d.ts.map +1 -1
  50. package/interaction/Link.js +37 -6
  51. package/interaction/Modify.d.ts +10 -10
  52. package/interaction/Modify.d.ts.map +1 -1
  53. package/interaction/Modify.js +15 -15
  54. package/interaction/PinchRotate.d.ts.map +1 -1
  55. package/interaction/PinchRotate.js +3 -5
  56. package/interaction/PinchZoom.d.ts.map +1 -1
  57. package/interaction/PinchZoom.js +3 -5
  58. package/interaction/Pointer.d.ts +5 -2
  59. package/interaction/Pointer.d.ts.map +1 -1
  60. package/interaction/Pointer.js +2 -2
  61. package/interaction/Select.d.ts.map +1 -1
  62. package/interaction/Select.js +4 -5
  63. package/interaction/Snap.d.ts +1 -1
  64. package/interaction/Snap.d.ts.map +1 -1
  65. package/interaction/Snap.js +17 -23
  66. package/interaction/Translate.d.ts +12 -11
  67. package/interaction/Translate.d.ts.map +1 -1
  68. package/interaction/Translate.js +16 -13
  69. package/layer/BaseVector.js +1 -1
  70. package/layer/Graticule.d.ts.map +1 -1
  71. package/layer/Graticule.js +4 -4
  72. package/layer/Heatmap.js +10 -10
  73. package/layer/Layer.d.ts +2 -2
  74. package/layer/Layer.d.ts.map +1 -1
  75. package/layer/Layer.js +2 -2
  76. package/layer/VectorTile.js +1 -1
  77. package/package.json +2 -2
  78. package/proj.d.ts +2 -4
  79. package/proj.d.ts.map +1 -1
  80. package/proj.js +4 -6
  81. package/render/canvas/ExecutorGroup.d.ts.map +1 -1
  82. package/render/canvas/ExecutorGroup.js +6 -4
  83. package/render/canvas/Immediate.d.ts +5 -0
  84. package/render/canvas/Immediate.d.ts.map +1 -1
  85. package/render/canvas/Immediate.js +15 -0
  86. package/render/canvas/hitdetect.d.ts +4 -3
  87. package/render/canvas/hitdetect.d.ts.map +1 -1
  88. package/render/canvas/hitdetect.js +23 -11
  89. package/render/webgl/BatchRenderer.d.ts.map +1 -1
  90. package/render/webgl/BatchRenderer.js +2 -3
  91. package/render/webgl/LineStringBatchRenderer.d.ts.map +1 -1
  92. package/render/webgl/LineStringBatchRenderer.js +2 -4
  93. package/render/webgl/PointBatchRenderer.d.ts.map +1 -1
  94. package/render/webgl/PointBatchRenderer.js +2 -4
  95. package/render/webgl/PolygonBatchRenderer.d.ts.map +1 -1
  96. package/render/webgl/PolygonBatchRenderer.js +2 -4
  97. package/render.d.ts +3 -3
  98. package/render.d.ts.map +1 -1
  99. package/render.js +6 -4
  100. package/renderer/Layer.d.ts +2 -2
  101. package/renderer/Layer.d.ts.map +1 -1
  102. package/renderer/Layer.js +3 -4
  103. package/renderer/canvas/Layer.d.ts.map +1 -1
  104. package/renderer/canvas/Layer.js +3 -4
  105. package/renderer/canvas/TileLayer.js +2 -2
  106. package/renderer/canvas/VectorImageLayer.d.ts +6 -0
  107. package/renderer/canvas/VectorImageLayer.d.ts.map +1 -1
  108. package/renderer/canvas/VectorImageLayer.js +22 -25
  109. package/renderer/canvas/VectorLayer.d.ts +9 -2
  110. package/renderer/canvas/VectorLayer.d.ts.map +1 -1
  111. package/renderer/canvas/VectorLayer.js +87 -93
  112. package/renderer/canvas/VectorTileLayer.js +84 -84
  113. package/renderer/webgl/PointsLayer.d.ts.map +1 -1
  114. package/renderer/webgl/PointsLayer.js +10 -13
  115. package/renderer/webgl/TileLayer.d.ts.map +1 -1
  116. package/renderer/webgl/TileLayer.js +2 -4
  117. package/reproj/DataTile.d.ts +75 -17
  118. package/reproj/DataTile.d.ts.map +1 -1
  119. package/reproj/DataTile.js +121 -120
  120. package/reproj/Tile.d.ts +3 -3
  121. package/reproj/Tile.d.ts.map +1 -1
  122. package/reproj/Tile.js +37 -41
  123. package/reproj/Triangulation.d.ts.map +1 -1
  124. package/reproj/Triangulation.js +42 -44
  125. package/source/BingMaps.d.ts.map +1 -1
  126. package/source/BingMaps.js +33 -38
  127. package/source/DataTile.d.ts +5 -3
  128. package/source/DataTile.d.ts.map +1 -1
  129. package/source/DataTile.js +24 -20
  130. package/source/GeoTIFF.d.ts +10 -7
  131. package/source/GeoTIFF.d.ts.map +1 -1
  132. package/source/GeoTIFF.js +49 -20
  133. package/source/Image.d.ts +8 -0
  134. package/source/Image.d.ts.map +1 -1
  135. package/source/Image.js +13 -11
  136. package/source/OGCMapTile.d.ts +1 -0
  137. package/source/OGCMapTile.d.ts.map +1 -1
  138. package/source/OGCMapTile.js +3 -1
  139. package/source/OGCVectorTile.d.ts +1 -0
  140. package/source/OGCVectorTile.d.ts.map +1 -1
  141. package/source/OGCVectorTile.js +3 -1
  142. package/source/Raster.d.ts +16 -0
  143. package/source/Raster.d.ts.map +1 -1
  144. package/source/Raster.js +47 -7
  145. package/source/Source.d.ts +2 -2
  146. package/source/Source.d.ts.map +1 -1
  147. package/source/Source.js +3 -4
  148. package/source/Stamen.js +2 -2
  149. package/source/Tile.d.ts.map +1 -1
  150. package/source/Tile.js +7 -3
  151. package/source/TileImage.d.ts +2 -2
  152. package/source/TileImage.d.ts.map +1 -1
  153. package/source/TileImage.js +3 -4
  154. package/source/UTFGrid.d.ts.map +1 -1
  155. package/source/UTFGrid.js +3 -6
  156. package/source/Vector.d.ts +6 -6
  157. package/source/Vector.js +13 -13
  158. package/source/VectorTile.d.ts.map +1 -1
  159. package/source/VectorTile.js +5 -9
  160. package/source/Zoomify.d.ts.map +1 -1
  161. package/source/Zoomify.js +4 -7
  162. package/style/Icon.d.ts +51 -0
  163. package/style/Icon.d.ts.map +1 -1
  164. package/style/Icon.js +119 -0
  165. package/style/IconImage.d.ts.map +1 -1
  166. package/style/IconImage.js +3 -1
  167. package/style/Image.d.ts.map +1 -1
  168. package/style/Image.js +1 -0
  169. package/style/Style.d.ts +2 -2
  170. package/style/Style.js +2 -2
  171. package/style/expressions.js +5 -10
  172. package/tilegrid/TileGrid.d.ts.map +1 -1
  173. package/tilegrid/TileGrid.js +7 -12
  174. package/util.d.ts.map +1 -1
  175. package/util.js +1 -1
  176. package/webgl/Helper.d.ts +4 -0
  177. package/webgl/Helper.d.ts.map +1 -1
  178. package/webgl/Helper.js +78 -79
  179. package/webgl/PostProcessingPass.d.ts +2 -2
  180. package/webgl/PostProcessingPass.d.ts.map +1 -1
  181. package/webgl/PostProcessingPass.js +7 -9
  182. package/webgl/ShaderBuilder.d.ts +1 -1
  183. package/webgl/ShaderBuilder.js +1 -1
  184. package/webgl/TileTexture.d.ts +19 -2
  185. package/webgl/TileTexture.d.ts.map +1 -1
  186. package/webgl/TileTexture.js +93 -46
  187. package/worker/webgl.js +1 -1
  188. package/layer/STAC.d.ts +0 -257
  189. package/layer/STAC.d.ts.map +0 -1
  190. package/layer/STAC.js +0 -312
package/layer/STAC.js DELETED
@@ -1,312 +0,0 @@
1
- /**
2
- * @module ol/layer/STAC
3
- */
4
- import GeoTIFF from '../source/GeoTIFF.js';
5
- import WebGLTileLayer from './WebGLTile.js';
6
- import {
7
- fromEPSGCode,
8
- isRegistered as isProj4Registered,
9
- } from '../proj/proj4.js';
10
-
11
- /**
12
- * @typedef {Object} Item
13
- * @property {string} type The item type ("Feature").
14
- * @property {string} stac_version The STAC version.
15
- * @property {string} id The item identifier.
16
- * @property {import("geojson").GeoJSON|null} geometry The item footprint.
17
- * @property {Array<number>} [bbox] The bounding box (only required if geometry is null).
18
- * @property {Object} properties The item properties.
19
- * @property {Array<Link>} links Links to other resources.
20
- * @property {Object<string, Asset>} assets Asset lookup.
21
- * @property {string} collection The collection id (if the item is part of a collection).
22
- */
23
-
24
- /**
25
- * @typedef {Object} Link
26
- * @property {string} href The URL.
27
- * @property {string} rel The link relationship.
28
- * @property {string} [type] The media type.
29
- * @property {string} [title] The link title.
30
- */
31
-
32
- /**
33
- * @typedef {Object} Asset
34
- * @property {string} href The asset URL.
35
- * @property {string} [title] The asset title.
36
- * @property {string} [description] The asset description.
37
- * @property {string} [type] The media type.
38
- * @property {Array<string>} [roles] The asset roles.
39
- */
40
-
41
- /**
42
- * @typedef {import("../source/GeoTIFF.js").Options} SourceOptions
43
- */
44
-
45
- /**
46
- * @param {Asset} asset The asset.
47
- * @return {number} A relative ranking (lower is better).
48
- */
49
- function getAssetTypeRank(asset) {
50
- if (!asset.type) {
51
- return Infinity;
52
- }
53
- const type = asset.type.toLowerCase();
54
- if (type === 'image/tiff; application=geotiff; profile=cloud-optimized') {
55
- return 0;
56
- }
57
- if (type === 'image/vnd.stac.geotiff; cloud-optimized=true') {
58
- return 0;
59
- }
60
- if (type.includes('geotiff')) {
61
- if (type.includes('cloud-optimized')) {
62
- return 0;
63
- }
64
- return 1;
65
- }
66
- if (type.includes('image/tiff')) {
67
- return 2;
68
- }
69
- return Infinity;
70
- }
71
-
72
- /**
73
- * @param {Asset} asset The asset.
74
- * @return {number} The relative ranking (lower is better).
75
- */
76
- function getAssetRolesRank(asset) {
77
- const roles = asset.roles;
78
- if (!roles) {
79
- return Infinity;
80
- }
81
- for (let i = 0; i < roles.length; ++i) {
82
- const role = roles[i];
83
- if (role === 'overview') {
84
- return 0;
85
- }
86
- if (role === 'data') {
87
- return 1;
88
- }
89
- }
90
- return Infinity;
91
- }
92
-
93
- /**
94
- * @param {Object<string, Asset>} assets A lookup of assets.
95
- * @return {Array<Asset>} The assets to be rendered.
96
- */
97
- function assetSelectorByRank(assets) {
98
- /** @type {Array<Asset>} */
99
- const array = [];
100
-
101
- for (const k in assets) {
102
- array.push(assets[k]);
103
- }
104
-
105
- array.sort((a, b) => {
106
- const aTypeRank = getAssetTypeRank(a);
107
- const bTypeRank = getAssetTypeRank(b);
108
- if (aTypeRank < bTypeRank) {
109
- return -1;
110
- }
111
- if (aTypeRank > bTypeRank) {
112
- return 1;
113
- }
114
- return getAssetRolesRank(a) - getAssetRolesRank(b);
115
- });
116
-
117
- return [array[0]];
118
- }
119
-
120
- /**
121
- * @param {Array<string>} keys The asset keys.
122
- * @return {AssetSelector} An asset selector.
123
- */
124
- function getAssetSelectorByKeys(keys) {
125
- return function (assets) {
126
- return keys.map((key) => {
127
- const asset = assets[key];
128
- if (!asset) {
129
- throw new Error(`No asset with key "${key}" found`);
130
- }
131
- return asset;
132
- });
133
- };
134
- }
135
-
136
- /**
137
- * @typedef {function(Object<string, Asset>):Array<Asset>} AssetSelector
138
- */
139
-
140
- /**
141
- * @typedef {Object} Options
142
- * @property {Array<string>|AssetSelector} [assets] The selector for the assets to be rendered. This can be an
143
- * array of strings corresponding to asset keys or a function that returns an array of assets
144
- * given item's asset lookup object.
145
- * @property {string} [url] The STAC item URL. One of `url` or `item` must be provided.
146
- * @property {Object} [item] The STAC item metadata. One of `url` or `item` must be provided.
147
- * @property {function(Item, SourceOptions):(SourceOptions|Promise<SourceOptions>)} [getSourceOptions] Optional function that can be used to
148
- * configure the underlying source. The function will be called with the STAC Item metadata and the current source options.
149
- * The function can do any additional work and return the completed options or a promise for the same.
150
- * @property {import("./WebGLTile.js").Style} [style] Style to apply to the layer.
151
- * @property {number} [opacity=1] Opacity (0, 1).
152
- * @property {boolean} [visible=true] Visibility.
153
- * @property {import("../extent.js").Extent} [extent] The bounding extent for layer rendering. The layer will not be
154
- * rendered outside of this extent.
155
- * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers
156
- * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed
157
- * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`
158
- * method was used.
159
- * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be
160
- * visible.
161
- * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will
162
- * be visible.
163
- * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be
164
- * visible.
165
- * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will
166
- * be visible.
167
- * @property {number} [preload=0] Preload. Load low-resolution tiles up to `preload` levels. `0`
168
- * means no preloading.
169
- * @property {number} [cacheSize=512] The internal texture cache size. This needs to be large enough to render
170
- * two zoom levels worth of tiles.
171
- * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.
172
- */
173
-
174
- /**
175
- * @classdesc
176
- * Renders assets from a STAC Item.
177
- *
178
- * @extends WebGLTileLayer
179
- * @api
180
- */
181
- class STACLayer extends WebGLTileLayer {
182
- /**
183
- * @param {Options} options Layer options.
184
- */
185
- constructor(options) {
186
- const superOptions = Object.assign({}, options);
187
-
188
- delete superOptions.assets;
189
- delete superOptions.url;
190
- delete superOptions.item;
191
- delete superOptions.getSourceOptions;
192
-
193
- super(superOptions);
194
-
195
- /**
196
- * @type {AssetSelector}
197
- * @private
198
- */
199
- this.assetSelector_;
200
- if (!options.assets) {
201
- this.assetSelector_ = assetSelectorByRank;
202
- } else if (Array.isArray(options.assets)) {
203
- this.assetSelector_ = getAssetSelectorByKeys(options.assets);
204
- } else {
205
- this.assetSelector_ = options.assets;
206
- }
207
-
208
- /**
209
- * @type {function(Item, SourceOptions):(SourceOptions|Promise<SourceOptions>)}
210
- * @private
211
- */
212
- this.getSourceOptions_ = options.getSourceOptions;
213
-
214
- /**
215
- * @type {Item}
216
- * @private
217
- */
218
- this.item_;
219
-
220
- if (options.item) {
221
- this.configure_(options.item).catch((error) => this.handleError_(error));
222
- return;
223
- }
224
-
225
- const url = options.url;
226
- if (!url) {
227
- throw new Error('Either url or item must be provided');
228
- }
229
-
230
- fetch(url)
231
- .then((response) => response.json())
232
- .then((item) => this.configure_(item))
233
- .catch((error) => this.handleError_(error));
234
- }
235
-
236
- /**
237
- * @param {Error} error The error.
238
- * @private
239
- */
240
- handleError_(error) {
241
- // TODO: error state, event, or callback?
242
- console.error(error); // eslint-disable-line no-console
243
- }
244
-
245
- /**
246
- * @param {Item} item The item data.
247
- * @return {Promise} Resolves when complete.
248
- * @private
249
- */
250
- configure_(item) {
251
- this.item_ = item;
252
- const assets = this.assetSelector_(item.assets);
253
- return this.updateSource_(assets);
254
- }
255
-
256
- /**
257
- * @param {Array<Asset>} assets The assets to render.
258
- * @private
259
- */
260
- async updateSource_(assets) {
261
- /**
262
- * @type {SourceOptions}
263
- */
264
- let options = {
265
- sources: assets.map((asset) => ({
266
- url: asset.href,
267
- })),
268
- };
269
-
270
- const item = this.item_;
271
- let projection;
272
- if (isProj4Registered()) {
273
- const epsgCode = item.properties['proj:epsg'];
274
- if (epsgCode) {
275
- try {
276
- projection = await fromEPSGCode(epsgCode);
277
- } catch (_) {
278
- // pass
279
- }
280
- if (projection) {
281
- options.projection = projection;
282
- }
283
- }
284
- }
285
-
286
- if (this.getSourceOptions_) {
287
- options = await this.getSourceOptions_(item, options);
288
- }
289
-
290
- const source = new GeoTIFF(options);
291
- this.setSource(source);
292
- }
293
-
294
- /**
295
- * Update the assets to be rendered.
296
- * @param {Array<string>} keys Asset keys.
297
- */
298
- setAssets(keys) {
299
- const assets = getAssetSelectorByKeys(keys)(this.item_.assets);
300
- this.updateSource_(assets);
301
- }
302
-
303
- /**
304
- * Get the item metadata.
305
- * @return {Item} The item.
306
- */
307
- getItem() {
308
- return this.item_;
309
- }
310
- }
311
-
312
- export default STACLayer;