Merge pull request #12007 from ahocevar/modifystart-features

Report all features being modified
This commit is contained in:
Andreas Hocevar
2021-02-09 16:32:15 +01:00
committed by GitHub
2 changed files with 15 additions and 4 deletions

View File

@@ -427,9 +427,12 @@ class Modify extends PointerInteraction {
this.featuresBeingModified_ = new Collection();
const features = this.featuresBeingModified_.getArray();
for (let i = 0, ii = segments.length; i < ii; ++i) {
const feature = segments[i][0].feature;
if (features.indexOf(feature) === -1) {
this.featuresBeingModified_.push(feature);
const segment = segments[i];
for (let s = 0, ss = segment.length; s < ss; ++s) {
const feature = segment[s].feature;
if (feature && features.indexOf(feature) === -1) {
this.featuresBeingModified_.push(feature);
}
}
}

View File

@@ -142,7 +142,7 @@ describe('ol.interaction.Modify', function () {
const startevent = events[0];
const endevent = events[events.length - 1];
// first event should be modifystary
// first event should be modifystart
expect(startevent).to.be.a(ModifyEvent);
expect(startevent.type).to.eql('modifystart');
@@ -463,15 +463,23 @@ describe('ol.interaction.Modify', function () {
const modify = new Modify({
features: new Collection(features),
});
let modifiedFeatures;
const onModifyStart = function (evt) {
modifiedFeatures = evt.features;
};
map.addInteraction(modify);
modify.on('modifystart', onModifyStart);
// Click on line
simulateEvent('pointermove', 0, 0, null, 0);
simulateEvent('pointerdown', 0, 0, null, 0);
simulateEvent('pointerup', 0, 0, null, 0);
modify.un('modifystart', onModifyStart);
expect(lineFeature1.getGeometry().getCoordinates().length).to.be(4);
expect(lineFeature2.getGeometry().getCoordinates().length).to.be(4);
expect(modifiedFeatures.getArray()).to.eql([lineFeature1, lineFeature2]);
});
});