Pages: 1
- Sujet précédent - [OpenLayers 3] évènement fin de modification d'un feature - Sujet suivant
#1 Thu 01 October 2015 18:02
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
[OpenLayers 3] évènement fin de modification d'un feature
Bonjour
est-il possible d'être averti de la fin de la modification d'un feature ?
j'utilise l'interacteur ol.interaction.Modify pour modifier les features
puis j’attache l’événement "modifyend" à cet interacteur (voir le code ci-dessous)
le problème est que lorsque cet événement se produit je reçois une liste de tous les features
y-a-t'il moyen de savoir quel est le feature qui vient d'être modifié
merci d'avance
Jean-Marie
Code:
modifyDrawInteractor = new ol.interaction.Modify({ features: FeaturesToModify, // the SHIFT key must be pressed to delete vertices, so // that new vertices can be drawn at the same position // of existing vertices deleteCondition: function(event) { return ol.events.condition.shiftKeyOnly(event) && ol.events.condition.singleClick(event); } }) modifyDrawInteractor.on('modifyend', function (event) { event.features.forEach(function (feature) { console.log("modifyend "+feature.getId()); }); })
Hors ligne
#2 Fri 02 October 2015 14:08
Re: [OpenLayers 3] évènement fin de modification d'un feature
Bonjour,
Change d'exemple. Je suppose que tu es passé par celui-ci http://openlayers.org/en/v3.9.0/example … tures.html
En fait, il faut combiner "ol.interaction.Select" et "ol.interaction.Modify" comme dans http://openlayers.org/en/v3.9.0/example … tures.html
Tu auras un tableau (array JavaScript) mais avec uniquement ton objet modifié.
Cordialement
Thomas
Hors ligne
#3 Mon 05 October 2015 18:26
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
Re: [OpenLayers 3] évènement fin de modification d'un feature
Bonjour
merci pour l'information
je peux maintenant ne modifier que l'objet sélectionné
j'ai apporté une contrainte : l'objet cercle (qui est en fait un polygone) ne doit pas être modifiable
j'utilise pour cela une variable areaFeatureToModify intialisée lors de la sélection
qui ne peux contenir qu'un objet modifiable (donc autre que le cercle)
Jean-Marie
Code:
selectInteractor = new ol.interaction.Select({ filter:function(feature) { if (feature.get('type')!=CIRCLE) { // permet de modifier la zone areaFeatureToModify.clear(); areaFeatureToModify.push(feature); } return true; }, wrapX: false }); modifyDrawInteractor = new ol.interaction.Modify({ features:areaFeatureToModify, deleteCondition: function(event) { return ol.events.condition.shiftKeyOnly(event) && ol.events.condition.singleClick(event); } });
Hors ligne
Pages: 1
- Sujet précédent - [OpenLayers 3] évènement fin de modification d'un feature - Sujet suivant