Vue+Openlayer verwendet „modify“, um Elemente zu ändern. Die spezifischen Inhalte sind wie folgt:
Features direkt ändern Kerncode: // Ändere den Feature-Kerncode modifyFeature() { this.modify = neue Ändern({ Quelle: this.lineStringLayer.getSource(), }); diese.map.addInteraction(diese.ändern); }, Vollständiger Code: <Vorlage> <div id="Karte" style="Höhe: 100vh; Breite: 100vw"></div> </Vorlage> <Skript> importiere "ol/ol.css"; importiere { Karte, Ansicht, Funktion } von "ol"; importiere { OSM, Vektor als Vektorquelle } aus "ol/source"; importiere { Vektor als Vektorebene, Kachel als Kachelebene } aus "ol/layer"; importiere { Punkt, Linienzug, Polygon } aus "ol/geom"; importiere { Ändere } von "ol/interaction"; Standard exportieren { Daten() { zurückkehren { Karte: {}, Zeilenzeichenfolgeebene: {}, ändern: {}, }; }, erstellt() {}, montiert() { dies.initMap(); dies.addLayer(); dies.modifyFeature(); }, berechnet: {}, Methoden: { initMap() { diese.map = neue Map({ Ziel: "Karte", Schichten: neue Kachelebene({ Quelle: neues OSM(), }), ], Ansicht: neue Ansicht({ Projektion: "EPSG:4326", Mitte: [104.2979180563, 30.528298024], Zoom: 18, }), }); }, addLayer() { this.lineStringLayer = neuer VektorLayer({ Quelle: neue VectorSource(), }); this.lineStringLayer.getSource().addFeature( neue Funktion({ Geometrie: neuer LineString([ [104.2979180563, 30.528298024], [104.2987389704, 30.527798338], ]), }) ); diese.map.addLayer(diese.lineStringLayer); }, // Ändere den Feature-Kerncode modifyFeature() { this.modify = neue Ändern({ Quelle: this.lineStringLayer.getSource(), //Quelle wird hier verwendet }); diese.map.addInteraction(diese.ändern); }, }, }; </Skript> Darüber hinaus können Sie das Änderungsobjekt über this.modify.setActive(false) deaktivieren und den Aktivierungsstatus über this.modify.getActive() abrufen. Wählen Sie zuerst die Funktion aus und ändern Sie sie dannKerncode:
Funktion ändern() { this.modify = neue Ändern({ //Hinweis: Verwenden Sie hier unbedingt das Features-Attribut und nicht die Quelle! ! ! ! Funktionen: this.select.getFeatures(), }); diese.map.addInteraction(diese.ändern); }, Vollständiger Code: <Vorlage> <div id="Karte" style="Höhe: 100vh; Breite: 100vw"></div> </Vorlage> <Skript> importiere "ol/ol.css"; importiere { Karte, Ansicht, Funktion } von "ol"; importiere { OSM, Vektor als Vektorquelle, XYZ } aus "ol/source"; importiere { Vektor als Vektorebene, Kachel als Kachelebene } aus "ol/layer"; Importieren Sie Select aus „ol/interaction/Select“. importiere { Punkt, Linienzug, Polygon } aus "ol/geom"; importiere { Ändere } von "ol/interaction"; Standard exportieren { Daten() { zurückkehren { Karte: {}, Zeilenzeichenfolgeebene: {}, ziehen: {}, ändern: {}, wählen: {}, }; }, erstellt() {}, montiert() { dies.initMap(); dies.pointerMove(); dies.addLayer(); dies.selectFeature(); dies.modifyFeature(); }, berechnet: {}, Methoden: { initMap() { diese.map = neue Map({ Ziel: "Karte", Schichten: neue Kachelebene({ Quelle: neues OSM(), }), ], Ansicht: neue Ansicht({ Projektion: "EPSG:4326", Mitte: [104.2979180563, 30.528298024], Zoom: 18, }), }); }, ZeigerBewegung() { diese.map.on("Zeigerbewegung", (e) => { const isHover = this.map.hasFeatureAtPixel(e.pixel); this.map.getTargetElement().style.cursor = isHover ? "Zeiger" : ""; }); }, addLayer() { this.lineStringLayer = neuer VektorLayer({ Quelle: neue VectorSource(), }); this.lineStringLayer.getSource().addFeature( neue Funktion({ Geometrie: neuer LineString([ [104.2979180563, 30.528298024], [104.2987389704, 30.527798338], ]), }) ); diese.map.addLayer(diese.lineStringLayer); }, wähleFeature() { dies.select = neues Select(); diese.map.addInteraction(diese.select); }, Funktion ändern() { this.modify = neue Ändern({ //Hinweis: Verwenden Sie hier unbedingt das Features-Attribut und nicht die Quelle! ! ! ! Funktionen: this.select.getFeatures(), }); diese.map.addInteraction(diese.ändern); }, }, }; </Skript> ps: Openlayers ändert Vektorfunktionen Fügen Sie den folgenden Code in die Beispiele unter Demo ein, um ihn auszuführen <!DOCTYPE html> <html> <Kopf> <meta http-equiv="Inhaltstyp" content="text/html; charset=utf-8"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1,0, Maximalmaßstab=1,0, Benutzerskalierung=0"> <meta name="apple-mobile-web-app-fähig" content="ja"> <title>Funktion ändern</title> <link rel="stylesheet" href="../theme/default/style.css" rel="externes Nofollow" rel="externes Nofollow" type="text/css"> <link rel="stylesheet" href="style.css" rel="externes Nofollow" rel="externes Nofollow" type="text/css"> <style type="text/css"> </Stil> <script src="../lib/OpenLayers.js"></script> <Skripttyp="text/javascript"> Var-Maps, Vektoren, Steuerelemente; Funktion init(){ Karte = neue OpenLayers.Map('Karte'); var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0?", {Ebenen: 'basic'}); OpenLayers.Feature.Vector.style['Standard']['Strichbreite'] = '2'; Vektoren = neuer OpenLayers.Layer.Vector("Vektorebene"); var Geometrie = OpenLayers.Geometry.fromWKT( 'POLYGON((110 20,120 20,120 10,110 10,110 20),(112 17,118 18,118 16,112 15,112 17))' ); Vektoren.addFeatures([neues OpenLayers.Feature.Vector(Geometrie)]); map.addLayers([wms, Vektoren]); //Grafiksteuerelemente zeichnen = neues OpenLayers.Control.DrawFeature(Vektoren, OpenLayers.Handler.Polygon); map.addControl(Steuerelemente); steuert.aktivieren(); map.setCenter(neu OpenLayers.LonLat(110, 20), 3); } Funktion update() { //Controls.deactivate() ändern; Steuerungen = neues OpenLayers.Control.ModifyFeature(Vektoren); map.addControl(Steuerelemente); steuert.aktivieren(); } Funktion deaktivieren(){ steuert.deaktivieren(); } </Skript> </Kopf> <body onload="init()"> <div id="Karte" Klasse="kleineKarte"></div> <div><input type = "button" value = "Ändern" onclick = "update()"/> <input type = "button" value = "Abbrechen" onclick = "deactivate()"/> </div> </body> </html> Dies ist das Ende dieses Artikels über die Verwendung von „modify“ zum Ändern von Elementen in Vue+Openlayer. Weitere relevante Inhalte zum Ändern von Elementen in Vue Openlayer finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Analyse des virtuellen Nginx-Hosts
>>: Implementierungsmethode für horizontale und vertikale MySQL-Tabellenkonvertierungsvorgänge
Inhaltsverzeichnis 1. Einführung in NFS 2. NFS-Ko...
In diesem Artikel werden zwei Methoden zur Implem...
Kürzlich bin ich auf die Anforderung gestoßen, Te...
Inhaltsverzeichnis Zabbix überwacht Nginx Zabbix ...
1. CSS-Schreibformat 1. Inline-Stile Sie können C...
Kürzlich wurde bei einem Online-Sicherheitsscan e...
Stellungnahme : In diesem Artikel erfahren Sie, w...
Es gibt ein auf dem Mac entwickeltes Projekt, das...
Geben Sie den MySQL-Befehl ein: mysql -u+(Benutze...
Inhaltsverzeichnis 1. vorErstellen & erstellt...
Lösung 1 Deinstallieren Sie vollständig und lösch...
Vorwort Ich glaube, dass jeder auf einem Remote-S...
In diesem Artikel wird der spezifische Code für d...
MySQL-Leistungsoptimierung Die MySQL-Leistungsopt...
Nur als Referenz für Python-Entwickler, die Ubunt...