Je souhaite enregistrer les données de géométrie après les avoir modifiées, j'ai donc besoin d'un événement qui se déclenche une fois que j'ai fini de modifier la fonction. J'utilise ce qui suit à partir de ce message: l' auditeur modifie l'interaction
var selected_features = select.getFeatures();
// when a feature is selected...
selected_features.on('add', function (event) {
// get the feature
var feature = event.element;
feature.on("change", function (event) {
logStatus(feature.getId() + " has been changed!\n");
});
});
Mais cet auditeur se déclenche trop de fois en une seule modification, et si j'utilise «une fois» au lieu de «sur», il ne déclenche que le premier petit changement et pas plus, donc il ne sauvegarde pas le vrai changement. J'ai besoin de quelque chose comme "changeend" ou "modifyend" qui se déclenchera lorsque j'aurai fini de modifier la fonctionnalité, que puis-je utiliser?
Réponses:
Si vous avez besoin d'un événement modifyend, pourquoi ne l'utilisez-vous pas dans l'interaction de modification (je suppose que vous utilisez une interaction de modification)
Cet événement est disponible dans les dernières versions de ol3. Dans mon extrait de code, je suppose que vous ne modifiez qu'une seule fonction à la fois (getArray () [0]). Si vous utilisez plus d'une fetaure pour modifier à la fois, récupérez le tableau fetaures et ajoutez une boucle pour une manipulation ultérieure. Ainsi:
la source
modify
c'est le nom de l'interaction de modification et que votremodifyend
code vient après avoir défini l'interaction: d'abordvar modify = new ol.interaction.Modify({ features: select.getFeatures() });
, puis votre code.select
est le nom de mon Select Interaction. Un développeur peut également fairee.features.getArray()[0].getGeometry().getCoordinates()
oue.features.getArray()[0].getGeometry().getType()
obtenir les coordonnées ou le type. Belle réponse quand même mec.e.features.getArray()[0].getId())
renvoie toujours le même identifiant quelle que soit la fonctionnalité que je modifie. Y aurait-il une autre façon de savoir quelle fonction a été modifiée?