ol 10.4.1-dev.1738253405574 → 10.4.1-dev.1738363213886
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/format/KML.d.ts.map +1 -1
- package/format/KML.js +1 -2
- package/format/xsd.d.ts.map +1 -1
- package/format/xsd.js +22 -1
- 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/format/KML.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KML.d.ts","sourceRoot":"","sources":["KML.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KML.d.ts","sourceRoot":"","sources":["KML.js"],"names":[],"mappings":"AAkNA;;;GAGG;AACH,uCAFY,IAAI,GAAC,IAAI,CAIpB;AAgCD;;;GAGG;AACH,wCAFY,OAAO,mBAAmB,EAAE,OAAO,GAAC,IAAI,CAInD;AAYD;;;GAGG;AACH,yCAFY,MAAM,GAAC,IAAI,CAItB;AAYD;;;GAGG;AACH,uCAFY,IAAI,GAAC,IAAI,CAIpB;AAOD;;;GAGG;AACH,mCAFY,KAAK,GAAC,IAAI,CAIrB;AAOD;;;GAGG;AACH,wCAFY,KAAK,CAAC,KAAK,CAAC,GAAC,IAAI,CAI5B;AAw2BD;;;GAGG;AACH,0CAHW,IAAI,GACH,KAAK,CAAC,MAAM,CAAC,GAAC,SAAS,CAsBlC;;;;;;;8BA/yBY,CAAS,IAAM,EAAN,MAAM,KAAE,MAAM;;;;;OAxVtB,MAAM;;;;YACN,OAAO,kBAAkB,EAAE,eAAe;;;;OAC1C,MAAM;;;;YACN,OAAO,kBAAkB,EAAE,eAAe;;;;;;;;;;iBAM1C,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;;;WACpB,KAAK,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA/CV,kBAAkB;mBAEhB,oBAAoB;iBAEtB,kBAAkB;kBADjB,mBAAmB;AAuYrC;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;GAYG;AACH;IACE;;OAEG;IACH,sBAFW,OAAO,EAgEjB;IAhDC;;;OAGG;IACH,sBAEuB;IAEvB;;;OAGG;IACH,uBACoE;IAEpE;;OAEG;IACH,cAFU,OAAO,CAG+C;IAEhE;;;OAGG;IACH,sBAAuB;IAEvB;;;OAGG;IACH,wBACsE;IAEtE;;OAEG;IACH,cAFU,IAAI,GAAC,MAAM,CAGkD;IAEvE;;OAEG;IACH,kBAFU,eAAe,CAIC;IAK5B;;;;;OAKG;IACH,8BAgBC;IAED;;;;;OAKG;IACH,uBA8CC;IAED;;;;OAIG;IACH,yBAmBC;IAED;;;;OAIG;IACH,4BAqBC;IAiED;;;;;;OAMG;IACH,iBAJW,QAAQ,GAAC,OAAO,GAAC,MAAM,GACtB,MAAM,GAAC,SAAS,CAe3B;IAED;;;OAGG;IACH,0BAHW,QAAQ,GACP,MAAM,GAAC,SAAS,CAY3B;IAED;;;OAGG;IACH,uBAHW,OAAO,GACN,MAAM,GAAC,SAAS,CAwB3B;IAED;;;;;;OAMG;IACH,yBAJW,QAAQ,GAAC,OAAO,GAAC,MAAM,GACtB,KAAK,KAAQ,CAoBxB;IAED;;;OAGG;IACH,kCAHW,QAAQ,GACP,KAAK,KAAQ,CAaxB;IAED;;;OAGG;IACH,+BAHW,OAAO,GACN,KAAK,KAAQ,CAuBxB;IAED;;;;;;OAMG;IACH,mBAJW,QAAQ,GAAC,OAAO,GAAC,MAAM,GACtB,KAAK,KAAQ,CAiBxB;IAED;;;OAGG;IACH,4BAHW,QAAQ,GACP,KAAK,KAAQ,CAUxB;IAED;;;;OAIG;IACH,yBAJW,OAAO,GACN,KAAK,KAAQ,CAqBxB;IAED;;;;;;;;;OASG;IAEH;;;;;;OAMG;IACH,mBAJW,QAAQ,GAAC,OAAO,GAAC,MAAM,GACtB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAW,CAiB3B;IAED;;;OAGG;IACH,4BAHW,QAAQ,GACP,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAW,CAU3B;IAED;;;;OAIG;IACH,yBAJW,OAAO,GACN,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAW,CAwB3B;CA+CF;uBAh9BsB,iBAAiB"}
|
package/format/KML.js
CHANGED
|
@@ -45,7 +45,6 @@ import {
|
|
|
45
45
|
readDecimal,
|
|
46
46
|
readString,
|
|
47
47
|
writeBooleanTextNode,
|
|
48
|
-
writeCDATASection,
|
|
49
48
|
writeDecimalTextNode,
|
|
50
49
|
writeStringTextNode,
|
|
51
50
|
} from './xsd.js';
|
|
@@ -2508,7 +2507,7 @@ function writeDataNode(node, pair, objectStack) {
|
|
|
2508
2507
|
* @param {string} name DisplayName.
|
|
2509
2508
|
*/
|
|
2510
2509
|
function writeDataNodeName(node, name) {
|
|
2511
|
-
|
|
2510
|
+
writeStringTextNode(node, name);
|
|
2512
2511
|
}
|
|
2513
2512
|
|
|
2514
2513
|
/**
|
package/format/xsd.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xsd.d.ts","sourceRoot":"","sources":["xsd.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,kCAHW,IAAI,GACH,OAAO,GAAC,SAAS,CAK5B;AAED;;;GAGG;AACH,0CAHW,MAAM,GACL,OAAO,GAAC,SAAS,CAQ5B;AAED;;;GAGG;AACH,mCAHW,IAAI,GACH,MAAM,GAAC,SAAS,CAM3B;AAED;;;GAGG;AACH,kCAHW,IAAI,GACH,MAAM,GAAC,SAAS,CAK3B;AAED;;;GAGG;AACH,0CAHW,MAAM,GACL,MAAM,GAAC,SAAS,CAS3B;AAED;;;GAGG;AACH,0CAHW,IAAI,GACH,MAAM,GAAC,SAAS,CAK3B;AAED;;;GAGG;AACH,qDAHW,MAAM,GACL,MAAM,GAAC,SAAS,CAQ3B;AAED;;;GAGG;AACH,iCAHW,IAAI,GACH,MAAM,GAAC,SAAS,CAI3B;AAED;;;GAGG;AACH,2CAHW,IAAI,QACJ,OAAO,QAIjB;AAED;;;GAGG;AACH,wCAHW,IAAI,UACJ,MAAM,QAIhB;AAED;;;GAGG;AACH,4CAHW,IAAI,YACJ,MAAM,QAkBhB;AAED;;;GAGG;AACH,2CAHW,IAAI,WACJ,MAAM,QAKhB;AAED;;;GAGG;AACH,sDAHW,IAAI,sBACJ,MAAM,QAKhB;
|
|
1
|
+
{"version":3,"file":"xsd.d.ts","sourceRoot":"","sources":["xsd.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,kCAHW,IAAI,GACH,OAAO,GAAC,SAAS,CAK5B;AAED;;;GAGG;AACH,0CAHW,MAAM,GACL,OAAO,GAAC,SAAS,CAQ5B;AAED;;;GAGG;AACH,mCAHW,IAAI,GACH,MAAM,GAAC,SAAS,CAM3B;AAED;;;GAGG;AACH,kCAHW,IAAI,GACH,MAAM,GAAC,SAAS,CAK3B;AAED;;;GAGG;AACH,0CAHW,MAAM,GACL,MAAM,GAAC,SAAS,CAS3B;AAED;;;GAGG;AACH,0CAHW,IAAI,GACH,MAAM,GAAC,SAAS,CAK3B;AAED;;;GAGG;AACH,qDAHW,MAAM,GACL,MAAM,GAAC,SAAS,CAQ3B;AAED;;;GAGG;AACH,iCAHW,IAAI,GACH,MAAM,GAAC,SAAS,CAI3B;AAED;;;GAGG;AACH,2CAHW,IAAI,QACJ,OAAO,QAIjB;AAED;;;GAGG;AACH,wCAHW,IAAI,UACJ,MAAM,QAIhB;AAED;;;GAGG;AACH,4CAHW,IAAI,YACJ,MAAM,QAkBhB;AAED;;;GAGG;AACH,2CAHW,IAAI,WACJ,MAAM,QAKhB;AAED;;;GAGG;AACH,sDAHW,IAAI,sBACJ,MAAM,QAKhB;AAMD;;;GAGG;AACH,0CAHW,IAAI,UACJ,MAAM,QAqBhB"}
|
package/format/xsd.js
CHANGED
|
@@ -142,10 +142,31 @@ export function writeNonNegativeIntegerTextNode(node, nonNegativeInteger) {
|
|
|
142
142
|
node.appendChild(getDocument().createTextNode(string));
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
+
const whiteSpaceStart = /^\s/;
|
|
146
|
+
const whiteSpaceEnd = /\s$/;
|
|
147
|
+
const cdataCharacters = /(\n|\t|\r|<|&| {2})/;
|
|
148
|
+
|
|
145
149
|
/**
|
|
146
150
|
* @param {Node} node Node to append a TextNode with the string to.
|
|
147
151
|
* @param {string} string String.
|
|
148
152
|
*/
|
|
149
153
|
export function writeStringTextNode(node, string) {
|
|
150
|
-
|
|
154
|
+
if (
|
|
155
|
+
typeof string === 'string' &&
|
|
156
|
+
(whiteSpaceStart.test(string) ||
|
|
157
|
+
whiteSpaceEnd.test(string) ||
|
|
158
|
+
cdataCharacters.test(string))
|
|
159
|
+
) {
|
|
160
|
+
string.split(']]>').forEach((part, i, a) => {
|
|
161
|
+
if (i < a.length - 1) {
|
|
162
|
+
part += ']]';
|
|
163
|
+
}
|
|
164
|
+
if (i > 0) {
|
|
165
|
+
part = '>' + part;
|
|
166
|
+
}
|
|
167
|
+
writeCDATASection(node, part);
|
|
168
|
+
});
|
|
169
|
+
} else {
|
|
170
|
+
node.appendChild(getDocument().createTextNode(string));
|
|
171
|
+
}
|
|
151
172
|
}
|
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