ol 10.4.1-dev.1738253405574 → 10.4.1-dev.1738263573255
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/dist/ol.js +1 -1
- package/dist/ol.js.map +1 -1
- package/events/SnapEvent.d.ts +1 -0
- package/events/SnapEvent.d.ts.map +1 -1
- package/events/SnapEvent.js +1 -0
- package/interaction/Snap.d.ts +37 -0
- package/interaction/Snap.d.ts.map +1 -1
- package/interaction/Snap.js +48 -8
- package/package.json +1 -1
- package/util.js +1 -1
package/events/SnapEvent.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnapEvent.d.ts","sourceRoot":"","sources":["SnapEvent.js"],"names":[],"mappings":"4BAMU,MAAM
|
|
1
|
+
{"version":3,"file":"SnapEvent.d.ts","sourceRoot":"","sources":["SnapEvent.js"],"names":[],"mappings":"4BAMU,MAAM;;;;;AAYhB;;;GAGG;AACH;IACE;;;;;;;OAOG;IACH,kBAPW,aAAa,WAErB;QAAuD,MAAM,EAArD,OAAO,kBAAkB,EAAE,UAAU;QACU,WAAW,EAA1D,OAAO,kBAAkB,EAAE,UAAU;QACI,OAAO,EAAhD,OAAO,eAAe,EAAE,OAAO;QAC4B,OAAO,EAAlE,KAAK,CAAC,OAAO,kBAAkB,EAAE,UAAU,CAAC,GAAC,IAAI;KAC3D,EA2BA;IAxBC;;;;OAIG;IACH,QAHU,OAAO,kBAAkB,EAAE,UAAU,CAGnB;IAC5B;;;;OAIG;IACH,aAHU,KAAK,CAAC,MAAM,CAAC,GAAC,KAAK,CAAC,MAAM,CAAC,CAGC;IACtC;;;;OAIG;IACH,SAHU,OAAO,eAAe,EAAE,OAAO,CAAC,OAAO,qBAAqB,EAAE,OAAO,CAAC,CAGlD;IAC9B;;;;OAIG;IACH,SAHU,KAAK,CAAC,OAAO,kBAAkB,EAAE,UAAU,CAAC,GAAC,IAAI,CAG7B;CAEjC;kBAvDiB,YAAY"}
|
package/events/SnapEvent.js
CHANGED
package/interaction/Snap.d.ts
CHANGED
|
@@ -50,6 +50,27 @@ export type Options = {
|
|
|
50
50
|
*/
|
|
51
51
|
source?: import("../source/Vector.js").default<import("../Feature.js").default<import("../geom/Geometry.js").default>> | undefined;
|
|
52
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Information about the last snapped state.
|
|
55
|
+
*/
|
|
56
|
+
export type SnappedInfo = {
|
|
57
|
+
/**
|
|
58
|
+
* - The snapped vertex.
|
|
59
|
+
*/
|
|
60
|
+
vertex: import("../coordinate.js").Coordinate | null;
|
|
61
|
+
/**
|
|
62
|
+
* - The pixel of the snapped vertex.
|
|
63
|
+
*/
|
|
64
|
+
vertexPixel: import("../coordinate.js").Coordinate | null;
|
|
65
|
+
/**
|
|
66
|
+
* - The feature being snapped.
|
|
67
|
+
*/
|
|
68
|
+
feature: import("../Feature.js").default | null;
|
|
69
|
+
/**
|
|
70
|
+
* - Segment, or `null` if snapped to a vertex.
|
|
71
|
+
*/
|
|
72
|
+
segment: Array<import("../coordinate.js").Coordinate> | null;
|
|
73
|
+
};
|
|
53
74
|
/**
|
|
54
75
|
* *
|
|
55
76
|
*/
|
|
@@ -160,6 +181,12 @@ declare class Snap extends PointerInteraction {
|
|
|
160
181
|
* @private
|
|
161
182
|
*/
|
|
162
183
|
private rBush_;
|
|
184
|
+
/**
|
|
185
|
+
* Holds information about the last snapped state.
|
|
186
|
+
* @type {SnappedInfo|null}
|
|
187
|
+
* @private
|
|
188
|
+
*/
|
|
189
|
+
private snapped_;
|
|
163
190
|
/**
|
|
164
191
|
* @const
|
|
165
192
|
* @private
|
|
@@ -179,6 +206,16 @@ declare class Snap extends PointerInteraction {
|
|
|
179
206
|
* @private
|
|
180
207
|
*/
|
|
181
208
|
private getFeatures_;
|
|
209
|
+
/**
|
|
210
|
+
* Checks if two snap data sets are equal.
|
|
211
|
+
* Compares the segment and the feature.
|
|
212
|
+
*
|
|
213
|
+
* @param {SnappedInfo} data1 The first snap data set.
|
|
214
|
+
* @param {SnappedInfo} data2 The second snap data set.
|
|
215
|
+
* @return {boolean} `true` if the data sets are equal, otherwise `false`.
|
|
216
|
+
* @private
|
|
217
|
+
*/
|
|
218
|
+
private areSnapDataEqual_;
|
|
182
219
|
/**
|
|
183
220
|
* @param {import("../source/Vector.js").VectorSourceEvent|import("../Collection.js").CollectionEvent<import("../Feature.js").default>} evt Event.
|
|
184
221
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["Snap.js"],"names":[],"mappings":";;;;;YA4Bc,OAAO,kBAAkB,EAAE,UAAU,GAAC,IAAI;;;;iBAC1C,OAAO,aAAa,EAAE,KAAK,GAAC,IAAI;;;;aAChC,OAAO,eAAe,EAAE,OAAO,GAAC,IAAI;;;;aACpC,KAAK,CAAC,OAAO,kBAAkB,EAAE,UAAU,CAAC,GAAC,IAAI;;;;;;aAKjD,OAAO,eAAe,EAAE,OAAO;;;;aAC/B,KAAK,CAAC,OAAO,kBAAkB,EAAE,UAAU,CAAC
|
|
1
|
+
{"version":3,"file":"Snap.d.ts","sourceRoot":"","sources":["Snap.js"],"names":[],"mappings":";;;;;YA4Bc,OAAO,kBAAkB,EAAE,UAAU,GAAC,IAAI;;;;iBAC1C,OAAO,aAAa,EAAE,KAAK,GAAC,IAAI;;;;aAChC,OAAO,eAAe,EAAE,OAAO,GAAC,IAAI;;;;aACpC,KAAK,CAAC,OAAO,kBAAkB,EAAE,UAAU,CAAC,GAAC,IAAI;;;;;;aAKjD,OAAO,eAAe,EAAE,OAAO;;;;aAC/B,KAAK,CAAC,OAAO,kBAAkB,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAgB5C,OAAO,kBAAkB,EAAE,UAAU,GAAC,IAAI;;;;iBAC1C,OAAO,kBAAkB,EAAE,UAAU,GAAC,IAAI;;;;aAC1C,OAAO,eAAe,EAAE,OAAO,GAAC,IAAI;;;;aACpC,KAAK,CAAC,OAAO,kBAAkB,EAAE,UAAU,CAAC,GAAC,IAAI;;;;;4BA6BlD,MAAM,IACN,OAAO,eAAe,EAAE,WAAW,CAAC,OAAO,eAAe,EAAE,UAAU,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,GACjI,OAAW,eAAe,EAAE,WAAW,CAAC,OAAO,oBAAoB,EAAE,KAAK,GAC1E,eAAqB,EAAE,OAAO,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,GAC/D,OAAW,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,GAClE,OAAW,eAAe,EAAE,mBAAmB,CAAC,OAAO,eAAe,EAAE,UAAU,GAAC,OAAO,oBAAoB,EAAE,KAAK,GACrH,eAAqB,GAAC,MAAM,EAAE,MAAM,CAAC;AAPtC;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IACE;;OAEG;IACH,sBAFW,OAAO,EA4HjB;IAzGC;;OAEG;IACH,IAFU,eAAe,CAAC,OAAO,WAAW,EAAE,SAAS,CAAC,CAEjD;IAEP;;OAEG;IACH,MAFU,eAAe,CAAC,OAAO,WAAW,EAAE,SAAS,CAAC,CAE/C;IAET;;OAEG;IACH,IAFU,eAAe,CAAC,IAAI,CAAC,CAExB;IAEP;;;OAGG;IACH,gBAAqD;IAErD;;;OAGG;IACH,gBAAmE;IAEnE;;;OAGG;IACH,cAA6D;IAE7D;;;OAGG;IACH,kBAA2D;IAE3D;;;OAGG;IACH,8BAA+B;IAE/B;;;OAGG;IACH,mCAAoC;IAEpC;;;;;OAKG;IACH,gCAAiC;IAEjC;;;;;;OAMG;IACH,yBAA0B;IAE1B;;;OAGG;IACH,wBACoE;IAEpE;;;;OAIG;IACH,eAAyB;IAEzB;;;;OAIG;IACH,iBAAoB;IAEpB;;;;OAIG;IACH,6BAUC;IAGH;;;;;;OAMG;IACH,oBALW,OAAO,eAAe,EAAE,OAAO,aAC/B,OAAO,QAwCjB;IAED;;;OAGG;IACH,qBASC;IAED;;;;;;;;OAQG;IACH,0BAEC;IAoCD;;;OAGG;IACH,0BAKC;IAED;;;OAGG;IACH,6BAKC;IAED;;;OAGG;IACH,6BAUC;IAiBD;;;;;;OAMG;IACH,uBALW,OAAO,eAAe,EAAE,OAAO,aAC/B,OAAO,QAyBjB;IAED;;;;;;OAMG;IACH,qBAHW,OAAO,WAAW,EAAE,OAAO,QAqDrC;IAED;;;;;OAKG;IACH,cALW,OAAO,aAAa,EAAE,KAAK,mBAC3B,OAAO,kBAAkB,EAAE,UAAU,OACrC,OAAO,WAAW,EAAE,OAAO,GAC1B,MAAM,GAAC,IAAI,CAgHtB;IAED;;;OAGG;IACH,uBAGC;IAED;;;;OAIG;IACH,+BAiBC;IAED;;;;OAIG;IACH,2CAQC;IAED;;;;OAIG;IACH,mCAKC;IAED;;;;OAIG;IACH,wCAQC;IAED;;;;OAIG;IACH,mCAIC;IAED;;;;OAIG;IACH,qCAWC;IAED;;;;OAIG;IACH,8BAEC;IAED;;;;OAIG;IACH,gCAQC;CACF;0BA1tBsC,wBAAwB;+BAchC,cAAc"}
|
package/interaction/Snap.js
CHANGED
|
@@ -48,6 +48,15 @@ import PointerInteraction from './Pointer.js';
|
|
|
48
48
|
* @property {import("../source/Vector.js").default} [source] Snap to features from this source. Either this option or features should be provided
|
|
49
49
|
*/
|
|
50
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Information about the last snapped state.
|
|
53
|
+
* @typedef {Object} SnappedInfo
|
|
54
|
+
* @property {import("../coordinate.js").Coordinate|null} vertex - The snapped vertex.
|
|
55
|
+
* @property {import("../coordinate.js").Coordinate|null} vertexPixel - The pixel of the snapped vertex.
|
|
56
|
+
* @property {import("../Feature.js").default|null} feature - The feature being snapped.
|
|
57
|
+
* @property {Array<import("../coordinate.js").Coordinate>|null} segment - Segment, or `null` if snapped to a vertex.
|
|
58
|
+
*/
|
|
59
|
+
|
|
51
60
|
/**
|
|
52
61
|
* @param {import("../source/Vector.js").VectorSourceEvent|import("../Collection.js").CollectionEvent<import("../Feature.js").default>} evt Event.
|
|
53
62
|
* @return {import("../Feature.js").default|null} Feature.
|
|
@@ -210,6 +219,13 @@ class Snap extends PointerInteraction {
|
|
|
210
219
|
*/
|
|
211
220
|
this.rBush_ = new RBush();
|
|
212
221
|
|
|
222
|
+
/**
|
|
223
|
+
* Holds information about the last snapped state.
|
|
224
|
+
* @type {SnappedInfo|null}
|
|
225
|
+
* @private
|
|
226
|
+
*/
|
|
227
|
+
this.snapped_ = null;
|
|
228
|
+
|
|
213
229
|
/**
|
|
214
230
|
* @const
|
|
215
231
|
* @private
|
|
@@ -288,6 +304,19 @@ class Snap extends PointerInteraction {
|
|
|
288
304
|
return features;
|
|
289
305
|
}
|
|
290
306
|
|
|
307
|
+
/**
|
|
308
|
+
* Checks if two snap data sets are equal.
|
|
309
|
+
* Compares the segment and the feature.
|
|
310
|
+
*
|
|
311
|
+
* @param {SnappedInfo} data1 The first snap data set.
|
|
312
|
+
* @param {SnappedInfo} data2 The second snap data set.
|
|
313
|
+
* @return {boolean} `true` if the data sets are equal, otherwise `false`.
|
|
314
|
+
* @private
|
|
315
|
+
*/
|
|
316
|
+
areSnapDataEqual_(data1, data2) {
|
|
317
|
+
return data1.segment === data2.segment && data1.feature === data2.feature;
|
|
318
|
+
}
|
|
319
|
+
|
|
291
320
|
/**
|
|
292
321
|
* @param {import("../MapBrowserEvent.js").default} evt Map browser event.
|
|
293
322
|
* @return {boolean} `false` to stop event propagation.
|
|
@@ -296,18 +325,29 @@ class Snap extends PointerInteraction {
|
|
|
296
325
|
*/
|
|
297
326
|
handleEvent(evt) {
|
|
298
327
|
const result = this.snapTo(evt.pixel, evt.coordinate, evt.map);
|
|
328
|
+
|
|
299
329
|
if (result) {
|
|
300
330
|
evt.coordinate = result.vertex.slice(0, 2);
|
|
301
331
|
evt.pixel = result.vertexPixel;
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
332
|
+
|
|
333
|
+
// Dispatch UNSNAP event if already snapped
|
|
334
|
+
if (this.snapped_ && !this.areSnapDataEqual_(this.snapped_, result)) {
|
|
335
|
+
this.dispatchEvent(new SnapEvent(SnapEventType.UNSNAP, this.snapped_));
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
this.snapped_ = {
|
|
339
|
+
vertex: evt.coordinate,
|
|
340
|
+
vertexPixel: evt.pixel,
|
|
341
|
+
feature: result.feature,
|
|
342
|
+
segment: result.segment,
|
|
343
|
+
};
|
|
344
|
+
this.dispatchEvent(new SnapEvent(SnapEventType.SNAP, this.snapped_));
|
|
345
|
+
} else if (this.snapped_) {
|
|
346
|
+
// Dispatch UNSNAP event if no longer snapped
|
|
347
|
+
this.dispatchEvent(new SnapEvent(SnapEventType.UNSNAP, this.snapped_));
|
|
348
|
+
this.snapped_ = null;
|
|
310
349
|
}
|
|
350
|
+
|
|
311
351
|
return super.handleEvent(evt);
|
|
312
352
|
}
|
|
313
353
|
|
package/package.json
CHANGED
package/util.js
CHANGED