Suite

OpenLayers : déclencher par programme l'événement ModifyFeature


Est-ce que quelqu'un sait comment simuler par programmation un clic sur une fonctionnalité vectorielle qui fait sortir cette fonctionnalité du mode normal :

pour modifier le mode de fonction :

Je n'ai qu'une seule fonctionnalité à l'intérieur des couches de vecteurs et j'ai un bouton d'édition. J'ai tout fonctionne et j'essaie juste d'enregistrer un clic de fonctionnalité inutile.


Utilisez le contrôle ModifyFeature. Ajoutez votre couche au contrôle, ajoutez le contrôle à la carte, activez le contrôle puis appelez selectFeature() sur le contrôle et transmettez-lui votre entité. L'API donne l'impression que vous devez être en mode autonome, mais cela fonctionne pour moi sans être en mode autonome. J'utilise OL 2.13.1.


Je suppose que vous posez des questions sur Open Layers 3?

J'utilise Jquery (ou straight js) et configure un événement de souris sur la fenêtre. Cela vous permettra d'identifier la fonctionnalité sur laquelle vous avez cliqué. J'ajoute également un attribut personnalisé à l'entité pour identifier si son polygone, son icône, etc.

var iconFeature = new ol.Feature({VOS PROPRIÉTÉS DE FONCTIONNALITÉS}) iconFeature.set('automodify',true); $(map.Map.getViewport()).on('mouseup',function(e){ var feature = map.forEachFeatureAtPixel([e.pageX,e.pageY],function(feature,layer){return feature;} ); if(feature){ if(feature.get('automodify')){ handleTheFeatureClick(feature); } } }); function handleTheFeatureClick(feature){ var modify = new ol.interaction.Modify({ features: new ol.Collection([feature]) }); map.addInteraction(modifier); }


Voir la vidéo: Openlayers 6 Tutorial #9 - Interaction With Vector Features (Octobre 2021).