ho bisogno di implementare undo/redo funzionalità utilizzando OpenLayers 3 di editing (come dimostrato nella http://dev.openlayers.org/examples/modify-feature.html per OpenLayers 2).OpenLayers 3 Come registrare Caratteristica evento modificato come "featuremodified" in openlayers 2
per tenere traccia di geometria cambiamenti di caratteristiche, devo gestire uno stack di memoria che conterrà le definizioni geometriche mutate caratteristiche su di interazioni degli utenti. So che OpenLayers 3 fornisce oggetti osservabili. Così ol.Feature
o ol.Feature.getGeometry()
può essere osservato per le modifiche, ma cerco di eventi espliciti emessi da ol.interaction.Modify
, che mi dovrebbe notificare quando i interazione inizia o finisce l'operazione di editing (proprio come "beforefeaturemodified"
e "featuremodified"
eventi in OpenLayers 2).
Un gestore di ascolto per osservata geometria o caratteristica modifiche possono essere utilizzati per lo scopo, ma è troppo costoso perché geometria della funzione in fase di modifica viene cambiato ad ogni movimento pixel.
Ho passato con il funzionario documentation di OpenLayers 3 ma non ho trovato vari eventi che vengono forniti da OpenLayers 2. Nella maggior parte dei casi la documentazione menziona cambiamento solo evento. Mi chiedo se tali eventi non siano una considerazione per l'architettura di Openlayer 3. Se è così, qualche suggerimento come posso estendere il ol.interaction.Modify
esistente per incorporare eventi personalizzati? Grazie.
Attualmente non vi sono eventi simili. Quindi mi piacerebbe solo consigliare di creare problemi in Ol3 GitHub per questo. – erilem
Sia OL2 che OL3 sono open source. Hai guardato il codice sorgente? Ho trovato soluzioni a problemi specifici in OL3 copiando funzioni e modificandole ai miei scopi. –
Grazie a @erilem e @ anders-finn. Ho creato il problema su [github] (https://github.com/openlayers/ol3/issues/2946) e inoltre ho ereditato con successo il 'ol.interaction.Modify' per incorporare l'evento necessario usando' goog.EventTarget 'ecc. La nostra azienda sta cercando due risposte per decidere se utilizzare openlayers-3 o meno in un progetto imminente. 1- È sicuro ottenere un comportamento personalizzato estendendo le classi 'ol' usando' goog.base' e 'goog.inherits' in termini di futuri aggiornamenti di OL3? 2- Ci saranno conflitti di licenza se queste estensioni vengono spedite con prodotti commerciali? Grazie. –