Ich muss registrieren implementieren Undo/Redo Funktionalität mit Openlayers 3 Vektorbearbeitung (nur für Openlayers in http://dev.openlayers.org/examples/modify-feature.html demonstriert mag 2).Openlayers 3 Wie Eigenschaft Modified Ereignis als „featuremodified“ in Openlayers 2
Um den Überblick über Geometrie Änderungen von Funktionen, halte ich habe einen Speicherstapel zu verwalten, die veränderten geometrischen Definitionen von Funktionen auf Benutzer-Interaktionen halten wird. Ich weiß, OpenLayers 3 bietet beobachtbare Objekte. So ol.Feature
oder ol.Feature.getGeometry()
können für Veränderungen beobachtet werden, aber ich bin auf der Suche für die explizite Ereignisse von ol.interaction.Modify
emittiert, die mich benachrichtigen soll, wenn die Interaktion startet oder den Betrieb Vektorbearbeitung endet (wie "beforefeaturemodified"
und "featuremodified"
Ereignisse in Openlayers 2).
Ein Handler für beobachtet Geometrie hören oder Funktion Änderungen können für den Zweck verwendet werden, aber es ist zu teuer, weil Geometrie des Merkmals unter Modifikation mit jedem Pixel Bewegung geändert wird.
Ich habe über die offizielle documentation von Openlayers 3 gegangen, aber nicht verschiedene Veranstaltungen finden konnten, die 2. von Openlayers vorgesehen sind, in den meisten Fällen die Dokumentation Änderung nur Ereignis erwähnt. Ich frage mich, ob solche Ereignisse für die Architektur von Openlayer 3 keine Rolle spielen. Wenn es so ist, irgendwelche Vorschläge wie kann ich das vorhandene ol.interaction.Modify
erweitern, um benutzerdefinierte Ereignisse zu integrieren? Vielen Dank.
Momentan gibt es keine solchen Ereignisse. Daher würde ich empfehlen, Probleme in ol3 GitHub dafür zu erstellen. – erilem
Sowohl OL2 als auch OL3 sind Open Source. Hast du den Quellcode angeschaut? Ich habe Lösungen für bestimmte Probleme in OL3 gefunden, indem ich Funktionen kopiert und sie für meine Zwecke modifiziert habe. –
Danke @erilem und @ ander-finn. Ich habe das Problem auf [github] (https://github.com/openlayers/ol3/issues/2946) erstellt und habe auch erfolgreich die 'ol.interaction.Modify' geerbt, um das notwendige Ereignis mit 'goog.EventTarget' zu integrieren 'usw. Unser Unternehmen sucht nach zwei Antworten, um zu entscheiden, ob openlayers-3 in einem kommenden Projekt verwendet werden soll oder nicht. 1- Ist es sicher, ein benutzerdefiniertes Verhalten zu erreichen, indem "ol" -Klassen mit "goog.base" und "goog.inherits" in Bezug auf zukünftige Aktualisierungen von OL3 erweitert werden? 2- Werden Lizenzkonflikte auftreten, wenn diese Erweiterungen mit kommerziellen Produkten ausgeliefert werden? Vielen Dank. –