ol 7.0.1-dev.1661279677876 → 7.0.1-dev.1661441168710
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/interaction/Draw.d.ts +1 -1
- package/interaction/Draw.d.ts.map +1 -1
- package/interaction/Draw.js +24 -10
- package/interaction/Modify.d.ts +2 -2
- package/interaction/Modify.js +1 -1
- package/package.json +1 -1
- package/renderer/canvas/TileLayer.d.ts.map +1 -1
- package/renderer/canvas/TileLayer.js +4 -1
- package/renderer/webgl/TileLayer.d.ts +2 -1
- package/renderer/webgl/TileLayer.d.ts.map +1 -1
- package/renderer/webgl/TileLayer.js +44 -6
- package/util.js +1 -1
package/interaction/Draw.d.ts
CHANGED
|
@@ -99,7 +99,7 @@ export type Options = {
|
|
|
99
99
|
/**
|
|
100
100
|
* Style for sketch features.
|
|
101
101
|
*/
|
|
102
|
-
style?: import("../style/Style.js").StyleLike | undefined;
|
|
102
|
+
style?: import("../style/Style.js").StyleLike | import("../style/flat.js").FlatStyleLike | undefined;
|
|
103
103
|
/**
|
|
104
104
|
* Function that is called when a geometry's coordinates are updated.
|
|
105
105
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Draw.d.ts","sourceRoot":"","sources":["Draw.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Draw.d.ts","sourceRoot":"","sources":["Draw.js"],"names":[],"mappings":"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"}
|
package/interaction/Draw.js
CHANGED
|
@@ -70,7 +70,7 @@ import {getStrideForLayout} from '../geom/SimpleGeometry.js';
|
|
|
70
70
|
* that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a
|
|
71
71
|
* boolean to indicate whether the drawing can be finished. Not used when drawing
|
|
72
72
|
* POINT or MULTI_POINT geometries.
|
|
73
|
-
* @property {import("../style/Style.js").StyleLike} [style]
|
|
73
|
+
* @property {import("../style/Style.js").StyleLike|import("../style/flat.js").FlatStyleLike} [style]
|
|
74
74
|
* Style for sketch features.
|
|
75
75
|
* @property {GeometryFunction} [geometryFunction]
|
|
76
76
|
* Function that is called when a geometry's coordinates are updated.
|
|
@@ -355,10 +355,12 @@ const sharedUpdateInfo = {index: -1, endIndex: NaN};
|
|
|
355
355
|
/**
|
|
356
356
|
* @param {import("../coordinate.js").Coordinate} coordinate The coordinate.
|
|
357
357
|
* @param {TraceState} traceState The trace state.
|
|
358
|
+
* @param {import("../Map.js").default} map The map.
|
|
359
|
+
* @param {number} snapTolerance The snap tolerance.
|
|
358
360
|
* @return {TraceTargetUpdateInfo} Information about the new trace target. The returned
|
|
359
361
|
* object is reused between calls and must not be modified by the caller.
|
|
360
362
|
*/
|
|
361
|
-
function getTraceTargetUpdate(coordinate, traceState) {
|
|
363
|
+
function getTraceTargetUpdate(coordinate, traceState, map, snapTolerance) {
|
|
362
364
|
const x = coordinate[0];
|
|
363
365
|
const y = coordinate[1];
|
|
364
366
|
|
|
@@ -412,14 +414,24 @@ function getTraceTargetUpdate(coordinate, traceState) {
|
|
|
412
414
|
}
|
|
413
415
|
}
|
|
414
416
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
const
|
|
420
|
-
|
|
417
|
+
const newTarget = traceState.targets[newTargetIndex];
|
|
418
|
+
let considerBothDirections = newTarget.ring;
|
|
419
|
+
if (traceState.targetIndex === newTargetIndex && considerBothDirections) {
|
|
420
|
+
// only consider switching trace direction if close to the start
|
|
421
|
+
const newCoordinate = interpolateCoordinate(
|
|
422
|
+
newTarget.coordinates,
|
|
423
|
+
newEndIndex
|
|
424
|
+
);
|
|
425
|
+
const pixel = map.getPixelFromCoordinate(newCoordinate);
|
|
426
|
+
if (distance(pixel, traceState.startPx) > snapTolerance) {
|
|
427
|
+
considerBothDirections = false;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
if (considerBothDirections) {
|
|
432
|
+
const coordinates = newTarget.coordinates;
|
|
421
433
|
const count = coordinates.length;
|
|
422
|
-
const startIndex =
|
|
434
|
+
const startIndex = newTarget.startIndex;
|
|
423
435
|
const endIndex = newEndIndex;
|
|
424
436
|
if (startIndex < endIndex) {
|
|
425
437
|
const forwardDistance = getCumulativeSquaredDistance(
|
|
@@ -1239,7 +1251,9 @@ class Draw extends PointerInteraction {
|
|
|
1239
1251
|
|
|
1240
1252
|
const updatedTraceTarget = getTraceTargetUpdate(
|
|
1241
1253
|
event.coordinate,
|
|
1242
|
-
traceState
|
|
1254
|
+
traceState,
|
|
1255
|
+
this.getMap(),
|
|
1256
|
+
this.snapTolerance_
|
|
1243
1257
|
);
|
|
1244
1258
|
|
|
1245
1259
|
if (traceState.targetIndex !== updatedTraceTarget.index) {
|
package/interaction/Modify.d.ts
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* features. Default is {@link module:ol/events/condition.always}.
|
|
26
26
|
* @property {number} [pixelTolerance=10] Pixel tolerance for considering the
|
|
27
27
|
* pointer close enough to a segment or vertex for editing.
|
|
28
|
-
* @property {import("../style/Style.js").StyleLike} [style]
|
|
28
|
+
* @property {import("../style/Style.js").StyleLike|import("../style/flat.js").FlatStyleLike} [style]
|
|
29
29
|
* Style used for the modification point or vertex. For linestrings and polygons, this will
|
|
30
30
|
* be the affected vertex, for circles a point along the circle, and for points the actual
|
|
31
31
|
* point. If not configured, the default edit style is used (see {@link module:ol/style/Style~Style}).
|
|
@@ -142,7 +142,7 @@ export type Options = {
|
|
|
142
142
|
* in the same order. The `geometries` are only useful when modifying geometry collections, where
|
|
143
143
|
* the geometry will be the particular geometry from the collection that is being modified.
|
|
144
144
|
*/
|
|
145
|
-
style?: import("../style/Style.js").StyleLike | undefined;
|
|
145
|
+
style?: import("../style/Style.js").StyleLike | import("../style/flat.js").FlatStyleLike | undefined;
|
|
146
146
|
/**
|
|
147
147
|
* The vector source with
|
|
148
148
|
* features to modify. If a vector source is not provided, a feature collection
|
package/interaction/Modify.js
CHANGED
|
@@ -106,7 +106,7 @@ const ModifyEventType = {
|
|
|
106
106
|
* features. Default is {@link module:ol/events/condition.always}.
|
|
107
107
|
* @property {number} [pixelTolerance=10] Pixel tolerance for considering the
|
|
108
108
|
* pointer close enough to a segment or vertex for editing.
|
|
109
|
-
* @property {import("../style/Style.js").StyleLike} [style]
|
|
109
|
+
* @property {import("../style/Style.js").StyleLike|import("../style/flat.js").FlatStyleLike} [style]
|
|
110
110
|
* Style used for the modification point or vertex. For linestrings and polygons, this will
|
|
111
111
|
* be the affected vertex, for circles a point along the circle, and for points the actual
|
|
112
112
|
* point. If not configured, the default edit style is used (see {@link module:ol/style/Style~Style}).
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":";AA8BA;;;;;;GAMG;AACH;IACE;;OAEG;IACH,uBAFW,SAAS,EA0DnB;IArDC;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,8BAFU,MAAM,CAEO;IAEvB;;;OAGG;IACH,8BAFU,OAAO,0BAA0B,EAAE,OAAO,CAEtB;IAE9B;;;OAGG;IACH,4BAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,yBAFW,MAAM,OAAO,eAAe,EAAE,OAAO,CAAC,CAE1B;IAEvB;;;OAGG;IACH,kBAAsB;IAEtB;;;OAGG;IACH,qBAFU,OAAO,iBAAiB,EAAE,MAAM,CAEZ;IAE9B;;;OAGG;IACH,sBAA8C;IAGhD;;;;OAIG;IACH,+BAHW,OAAO,eAAe,EAAE,OAAO,GAC9B,OAAO,CAWlB;IAED;;;;;;OAMG;IACH,WANW,MAAM,KACN,MAAM,KACN,MAAM,cACN,OAAO,cAAc,EAAE,UAAU,GAC/B,OAAO,eAAe,EAAE,OAAO,CAkB3C;IAED;;;OAGG;IACH,eAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,
|
|
1
|
+
{"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":";AA8BA;;;;;;GAMG;AACH;IACE;;OAEG;IACH,uBAFW,SAAS,EA0DnB;IArDC;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,8BAFU,MAAM,CAEO;IAEvB;;;OAGG;IACH,8BAFU,OAAO,0BAA0B,EAAE,OAAO,CAEtB;IAE9B;;;OAGG;IACH,4BAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,yBAFW,MAAM,OAAO,eAAe,EAAE,OAAO,CAAC,CAE1B;IAEvB;;;OAGG;IACH,kBAAsB;IAEtB;;;OAGG;IACH,qBAFU,OAAO,iBAAiB,EAAE,MAAM,CAEZ;IAE9B;;;OAGG;IACH,sBAA8C;IAGhD;;;;OAIG;IACH,+BAHW,OAAO,eAAe,EAAE,OAAO,GAC9B,OAAO,CAWlB;IAED;;;;;;OAMG;IACH,WANW,MAAM,KACN,MAAM,KACN,MAAM,cACN,OAAO,cAAc,EAAE,UAAU,GAC/B,OAAO,eAAe,EAAE,OAAO,CAkB3C;IAED;;;OAGG;IACH,eAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,CA4E5B;IAoWD;;;;;;;;;OASG;IACH,oBATW,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,cAAc,EAAE,UAAU,KACjC,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,UACN,MAAM,cACN,OAAO,QAqCjB;IAED;;OAEG;IACH,YAFY,iBAAiB,CAK5B;IAED;;;;;OAKG;IACH,6BAJW,OAAO,oBAAoB,EAAE,OAAO,GACnC,iBAAiB,GAAC,gBAAgB,GAAC,gBAAgB,CAK9D;IAED;;;;OAIG;IACH,0CAJW,OAAO,cAAc,EAAE,UAAU,cACjC,OAAO,sBAAsB,EAAE,OAAO,QA0BhD;IAED;;;;;OAKG;IACH;YALmB,MAAM;gBAAU,MAAM,GAAE,OAAO;;mBACvC,OAAO,sBAAsB,EAAE,OAAO,QACtC,OAAO,eAAe,EAAE,OAAO,QAUzC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,wCAXW,OAAO,cAAc,EAAE,UAAU,cACjC,OAAO,sBAAsB,EAAE,OAAO,YACtC,OAAO,4BAA4B,EAAE,OAAO,cAC5C,MAAM,cACN,OAAO,0BAA0B,EAAE,OAAO,UAC1C,OAAO,iBAAiB,EAAE,MAAM,YAChC,MAAM,WACN,MAAM,yBACG,OAAO,eAAe,EAAE,OAAO,KAAE,IAAI,qBAmExD;CACF"}
|
|
@@ -181,7 +181,10 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
|
|
181
181
|
pixelRatio,
|
|
182
182
|
projection
|
|
183
183
|
);
|
|
184
|
-
if (
|
|
184
|
+
if (
|
|
185
|
+
!(tile instanceof ImageTile || tile instanceof ReprojTile) ||
|
|
186
|
+
(tile instanceof ReprojTile && tile.getState() === TileState.EMPTY)
|
|
187
|
+
) {
|
|
185
188
|
return null;
|
|
186
189
|
}
|
|
187
190
|
|
|
@@ -158,10 +158,11 @@ declare class WebGLTileLayerRenderer extends WebGLLayerRenderer<import("../../la
|
|
|
158
158
|
* @param {import("../../extent.js").Extent} extent The extent to be rendered.
|
|
159
159
|
* @param {number} initialZ The zoom level.
|
|
160
160
|
* @param {Object<number, Array<TileTexture>>} tileTexturesByZ The zoom level.
|
|
161
|
+
* @param {number} preload Number of additional levels to load.
|
|
161
162
|
*/
|
|
162
163
|
enqueueTiles(frameState: import("../../Map.js").FrameState, extent: import("../../extent.js").Extent, initialZ: number, tileTexturesByZ: {
|
|
163
164
|
[x: number]: Array<TileTexture>;
|
|
164
|
-
}): void;
|
|
165
|
+
}, preload: number): void;
|
|
165
166
|
/**
|
|
166
167
|
* Render the layer.
|
|
167
168
|
* @param {import("../../Map.js").FrameState} frameState Frame state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;kBAkIc,MAAM;;;;oBACN,MAAM;;;;;;;;;;;;;;;;;wBAQP,OAAO,0BAA0B,EAAE,OAAO;AAXvD;;;;;;;;GAQG;AAEH;;GAEG;AAEH;;;;;GAKG;AACH;IACE;;;OAGG;IACH,uBAHW,SAAS,WACT,OAAO,EAmGjB;IA5FC;;;OAGG;IACH,gBAFU,OAAO,CAEU;IAE3B;;;;OAIG;IACH,uBAAuC;IAEvC;;;OAGG;IACH,kBAA6B;IAE7B;;;OAGG;IACH,uBAA+C;IAE/C;;;OAGG;IACH,uBAA8C;IAE9C;;;OAGG;IACH,kBAAuB;IAEvB;;;OAGG;IACH,iBAAa;IAEb;;OAEG;IACH,sBAAyC;IAEzC;;OAEG;IACH,wBAA6C;IAE7C;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAuE;IAKvE;;;OAGG;IACH,0BAAgD;IAEhD;;;OAGG;IACH,yBAAqD;IAErD;;;OAGG;IACH,oBAAuB;IAGzB;;OAEG;IACH,eAFW,OAAO,QAgBjB;IAWD;;;;OAIG;IACH,wBASC;IAoBD;;;;;;OAMG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,UACjC,OAAO,iBAAiB,EAAE,MAAM,YAChC,MAAM;YACC,MAAM,GAAE,MAAM,WAAW,CAAC;gBACjC,MAAM,QAwGhB;IAED;;;;OAIG;IACH,wBAHW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CAkStB;IAED;;;OAGG;IACH,eAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,GAAC,UAAU,GAAC,YAAY,GAAC,QAAQ,CAyF7D;IAED;;;;;;;;;;OAUG;IACH,sBA+BC;CA+BF"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @module ol/renderer/webgl/TileLayer
|
|
3
3
|
*/
|
|
4
4
|
import LRUCache from '../../structs/LRUCache.js';
|
|
5
|
+
import ReprojTile from '../../reproj/Tile.js';
|
|
5
6
|
import TileRange from '../../TileRange.js';
|
|
6
7
|
import TileState from '../../TileState.js';
|
|
7
8
|
import TileTexture from '../../webgl/TileTexture.js';
|
|
@@ -316,8 +317,9 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
|
|
|
316
317
|
* @param {import("../../extent.js").Extent} extent The extent to be rendered.
|
|
317
318
|
* @param {number} initialZ The zoom level.
|
|
318
319
|
* @param {Object<number, Array<TileTexture>>} tileTexturesByZ The zoom level.
|
|
320
|
+
* @param {number} preload Number of additional levels to load.
|
|
319
321
|
*/
|
|
320
|
-
enqueueTiles(frameState, extent, initialZ, tileTexturesByZ) {
|
|
322
|
+
enqueueTiles(frameState, extent, initialZ, tileTexturesByZ, preload) {
|
|
321
323
|
const viewState = frameState.viewState;
|
|
322
324
|
const tileLayer = this.getLayer();
|
|
323
325
|
const tileSource = tileLayer.getRenderSource();
|
|
@@ -330,12 +332,23 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
|
|
|
330
332
|
}
|
|
331
333
|
|
|
332
334
|
const wantedTiles = frameState.wantedTiles[tileSourceKey];
|
|
333
|
-
|
|
334
335
|
const tileTextureCache = this.tileTextureCache_;
|
|
336
|
+
|
|
337
|
+
const map = tileLayer.getMapInternal();
|
|
335
338
|
const minZ = Math.max(
|
|
336
|
-
initialZ -
|
|
339
|
+
initialZ - preload,
|
|
337
340
|
tileGrid.getMinZoom(),
|
|
338
|
-
|
|
341
|
+
tileGrid.getZForResolution(
|
|
342
|
+
Math.min(
|
|
343
|
+
tileLayer.getMaxResolution(),
|
|
344
|
+
map
|
|
345
|
+
? map
|
|
346
|
+
.getView()
|
|
347
|
+
.getResolutionForZoom(Math.max(tileLayer.getMinZoom(), 0))
|
|
348
|
+
: tileGrid.getResolution(0)
|
|
349
|
+
),
|
|
350
|
+
tileSource.zDirection
|
|
351
|
+
)
|
|
339
352
|
);
|
|
340
353
|
for (let z = initialZ; z >= minZ; --z) {
|
|
341
354
|
const tileRange = tileGrid.getTileRangeForExtentAndZ(
|
|
@@ -437,16 +450,34 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
|
|
|
437
450
|
*/
|
|
438
451
|
const tileTexturesByZ = {};
|
|
439
452
|
|
|
453
|
+
const preload = tileLayer.getPreload();
|
|
440
454
|
if (frameState.nextExtent) {
|
|
441
455
|
const targetZ = tileGrid.getZForResolution(
|
|
442
456
|
viewState.nextResolution,
|
|
443
457
|
tileSource.zDirection
|
|
444
458
|
);
|
|
445
459
|
const nextExtent = getRenderExtent(frameState, frameState.nextExtent);
|
|
446
|
-
this.enqueueTiles(
|
|
460
|
+
this.enqueueTiles(
|
|
461
|
+
frameState,
|
|
462
|
+
nextExtent,
|
|
463
|
+
targetZ,
|
|
464
|
+
tileTexturesByZ,
|
|
465
|
+
preload
|
|
466
|
+
);
|
|
447
467
|
}
|
|
448
468
|
|
|
449
|
-
this.enqueueTiles(frameState, extent, z, tileTexturesByZ);
|
|
469
|
+
this.enqueueTiles(frameState, extent, z, tileTexturesByZ, 0);
|
|
470
|
+
if (preload > 0) {
|
|
471
|
+
setTimeout(() => {
|
|
472
|
+
this.enqueueTiles(
|
|
473
|
+
frameState,
|
|
474
|
+
extent,
|
|
475
|
+
z - 1,
|
|
476
|
+
tileTexturesByZ,
|
|
477
|
+
preload - 1
|
|
478
|
+
);
|
|
479
|
+
}, 0);
|
|
480
|
+
}
|
|
450
481
|
|
|
451
482
|
/**
|
|
452
483
|
* A lookup of alpha values for tiles at the target rendering resolution
|
|
@@ -465,6 +496,9 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
|
|
|
465
496
|
for (let i = 0, ii = tileTextures.length; i < ii; ++i) {
|
|
466
497
|
const tileTexture = tileTextures[i];
|
|
467
498
|
const tile = tileTexture.tile;
|
|
499
|
+
if (tile instanceof ReprojTile && tile.getState() === TileState.EMPTY) {
|
|
500
|
+
continue;
|
|
501
|
+
}
|
|
468
502
|
const tileCoord = tile.tileCoord;
|
|
469
503
|
|
|
470
504
|
if (tileTexture.loaded) {
|
|
@@ -753,6 +787,10 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
|
|
|
753
787
|
continue;
|
|
754
788
|
}
|
|
755
789
|
const tileTexture = tileTextureCache.get(cacheKey);
|
|
790
|
+
const tile = tileTexture.tile;
|
|
791
|
+
if (tile instanceof ReprojTile && tile.getState() === TileState.EMPTY) {
|
|
792
|
+
return null;
|
|
793
|
+
}
|
|
756
794
|
if (!tileTexture.loaded) {
|
|
757
795
|
continue;
|
|
758
796
|
}
|
package/util.js
CHANGED