Fixes Modify vertex insertion with duplicate segments

If one feature has duplicate segments it prevented insertion for other
features with the same segment.
This commit is contained in:
Maximilian Krög
2020-12-06 15:25:31 +01:00
parent 190b20ebce
commit c4dd6e6b04

View File

@@ -1097,14 +1097,16 @@ class Modify extends PointerInteraction {
for (let i = 1, ii = nodes.length; i < ii; ++i) { for (let i = 1, ii = nodes.length; i < ii; ++i) {
const segment = nodes[i].segment; const segment = nodes[i].segment;
if ( if (
((coordinatesEqual(closestSegment[0], segment[0]) && (coordinatesEqual(closestSegment[0], segment[0]) &&
coordinatesEqual(closestSegment[1], segment[1])) || coordinatesEqual(closestSegment[1], segment[1])) ||
(coordinatesEqual(closestSegment[0], segment[1]) && (coordinatesEqual(closestSegment[0], segment[1]) &&
coordinatesEqual(closestSegment[1], segment[0]))) && coordinatesEqual(closestSegment[1], segment[0]))
!(getUid(nodes[i].geometry) in geometries)
) { ) {
geometries[getUid(nodes[i].geometry)] = true; const geometryUid = getUid(nodes[i].geometry);
vertexSegments[getUid(segment)] = true; if (!(geometryUid in geometries)) {
geometries[geometryUid] = true;
vertexSegments[getUid(segment)] = true;
}
} else { } else {
break; break;
} }