VUE + OPENLAYERS erreicht Echtzeit-Positionierungsfunktion

VUE + OPENLAYERS erreicht Echtzeit-Positionierungsfunktion

Vorwort

Diese Artikelserie stellt ein einfaches Beispiel für die Echtzeitpositionierung vor, das hauptsächlich Folgendes umfasst:

  • Das Service-Backend ist in Java geschrieben und simuliert die Generierung von GeoJSON-Daten.
  • Die Front-End-Anzeige verwendet Vue + OpenLayers, das dafür verantwortlich ist, regelmäßig GeoJSON-Daten vom Back-End-Dienst anzufordern und die Standortdaten in Form von Tags anzuzeigen.

Der erzielte Effekt:

Bildbeschreibung hier einfügen

1. Etikettenstil definieren

	var Bild = neuer Kreisstil({
	  Radius: 5,
	  füllen: neue Füllung({
	    Farbe: "rgba(255, 0, 0, 1)"
	  }),
	  Strich: neuer Strich({ Farbe: "rot", Breite: 1 })
	});
	
	var Stile = {
	  Punkt: neuer Stil({
	    Bild: Bild
	  })
	};
	
	var Stilfunktion = Funktion(Feature) {
	  Stile zurückgeben[feature.getGeometry().getType()];
	};

2. Simulation von GeoJSON-Daten

	var geojsonObject = {
	  Typ: "FeatureCollection",
	  Merkmale: [
	    {
	      Typ: "Feature",
	      Geometrie:
	        Typ: "Punkt",
	        Koordinaten: [0, 0]
	      }
	    }
	    //Hier können Sie weitere Funktionen hinzufügen
	  ]
	};

3. VerctorLayer erstellen

	// GeoJSON lesen und als Datenquelle von vectorSource verwenden var vectorSource = new VectorSource({
	  Funktionen: neues GeoJSON().readFeatures(geojsonObject)
	});
	
	var VektorLayer = neuer VektorLayer({
	  Quelle: Vektorquelle,
	  Stil: Stilfunktion
	});

4. Erstellen Sie eine Karte

      montiert() {
    diese.map = neue Map({
      Schichten:
        neue Kachelebene({
          Quelle: neues OSM()
        }),
        Vektorebene
      ],
      Ziel: "Karte",
      Ansicht: neue Ansicht({
        Mitte: [0, 0],
        Zoom: 2
      })
    });
	
	//Legen Sie die geplante Aufgabe fest und rufen Sie die mobile Label-Methode auf: setInterval(this.translate, 500);
  },

5. Simulieren Sie Bewegungen in Echtzeit

	 Methoden: {
	    übersetzen() {
	      //Beschriftungen durchlaufen und Koordinatenpositionen ändern vectorSource.forEachFeature(function(f) {
	        console.log("übersetzen");
	        
	        // Koordinateninkremente zufällig generieren (hier keine absoluten Koordinatenwerte!!!)
	        var x = Math.random() * 1000000;
	        var y = Math.random() * 1000000;
	        f.getGeometry().translate(x, y);
	      });
	    }
	  }

Zusammenfassen

Das Obige ist ein einfaches Front-End-Beispiel zur Echtzeitpositionierung, das Beschriftungen durch simulierte GeoJSON-Objekte anzeigt und Änderungen der Beschriftungsposition durch geplante Aufgaben simuliert. Im nächsten Artikel wird der Java-Server verwendet, um Standortdaten bereitzustellen und ein Echtzeit-Positionierungssystem vollständig zu simulieren.
Vollständiger Code, der direkt im Vue-Projekt ausgeführt werden kann:

	<Vorlage>
	  <div>
	    <span>Hallo, Karte</span>
	    <div id="Karte" Klasse="Karte"></div>
	  </div>
	</Vorlage>
	
	<script lang="ts">
	importiere "ol/ol.css";
	GeoJSON aus „ol/format/GeoJSON“ importieren;
	Karte aus „ol/Map“ importieren;
	Ansicht aus „ol/View“ importieren;
	importiere { Kreis als Kreisstil, Füllung, Strich, Stil } aus "ol/style";
	importiere { OSM, Vektor als Vektorquelle } aus "ol/source";
	importiere { Kachel als Kachelebene, Vektor als Vektorebene } aus "ol/layer";
	
	importiere Vue von „vue“;
	
	var Bild = neuer Kreisstil({
	  Radius: 5,
	  füllen: neue Füllung({
	    Farbe: "rgba(255, 0, 0, 1)"
	  }),
	  Strich: neuer Strich({ Farbe: "rot", Breite: 1 })
	});
	
	var Stile = {
	  Punkt: neuer Stil({
	    Bild: Bild
	  })
	};
	
	var Stilfunktion = Funktion(Feature) {
	  Stile zurückgeben[feature.getGeometry().getType()];
	};
	
	var geojsonObject = {
	  Typ: "FeatureCollection",
	  Merkmale: [
	    {
	      Typ: "Feature",
	      Geometrie:
	        Typ: "Punkt",
	        Koordinaten: [0, 0]
	      }
	    }
	  ]
	};
	
	var Vektorquelle = neue Vektorquelle ({
	  Funktionen: neues GeoJSON().readFeatures(geojsonObject)
	});
	
	var VektorLayer = neuer VektorLayer({
	  Quelle: Vektorquelle,
	  Stil: Stilfunktion
	});
	
	exportiere Standard Vue.extend({
	  Daten() {
	    zurückkehren {
	      Karte: {}
	    };
	  },
	  montiert() {
	    diese.map = neue Map({
	      Schichten:
	        neue Kachelebene({
	          Quelle: neues OSM()
	        }),
	        Vektorebene
	      ],
	      Ziel: "Karte",
	      Ansicht: neue Ansicht({
	        Mitte: [0, 0],
	        Zoom: 2
	      })
	    });
	
	    setInterval(dieses.translate, 500);
	  },
	
	  Methoden: {
	    übersetzen() {
	      vectorSource.forEachFeature(Funktion(f) {
	        console.log("übersetzen");
	        var x = Math.random() * 1000000;
	        var y = Math.random() * 1000000;
	        f.getGeometry().translate(x, y);
	      });
	    }
	  }
	});
	</Skript>
	<Stil>
	.Karte {
	  Breite: 100 %;
	  Höhe: 600px;
	}
	</Stil>

Dies ist das Ende dieses Artikels über die Realisierung der Echtzeit-Positionierungsfunktion durch VUE + OPENLAYERS. Weitere relevante Inhalte zur Positionierung durch VUE OPENLAYERS finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vue + OpenLayers Schnellstart-Tutorial
  • Vue+openlayers zeichnet Provinz- und Gemeindegrenzen
  • Openlayers zeichnet Verwaltungsabteilungen im Vue-Projekt
  • vue-openlayers realisiert den Popup-Box-Effekt für Kartenkoordinaten
  • Tutorial zur Integration von OpenLayers in Vue zum Laden von GeoJSON und Implementieren eines Popup-Fensters
  • Vue+Openlayers benutzerdefinierte Track-Animation
  • Vue verwendet OpenLayers, um bewegte Punktanimationen zu implementieren
  • Vue verwendet Openlayers zum Laden von Tiandi Map und Amap

<<:  Erstellen Sie einen Tomcat9-Cluster über Nginx und realisieren Sie die Sitzungsfreigabe

>>:  Analyse von Beispielen für MySQL-Benutzerverwaltungsvorgänge

Artikel empfehlen

Sieben Prinzipien eines guten Designers (1): Schriftdesign

Nun, vielleicht sind Sie ein Design-Guru, oder vie...

Zusammenfassung der benutzerdefinierten JavaScript-Objektmethoden

Inhaltsverzeichnis 1. Verwenden Sie Objekt, um ei...

Beispielcode für den Song-Fortschrittsbalken in Vue

Beachten Sie, dass dies kein von vue-cli erstellt...

CSS zum Erstellen eines dynamischen sekundären Menüs

Dynamisches Implementieren eines einfachen sekund...

Lösung für die horizontale Bildlaufleiste im Iframe unter IE6

Die Situation ist wie folgt: (PS: Das rote Kästche...

Die Verwendung des V-Modells in Vue3-Komponenten und ausführliche Erklärung

Inhaltsverzeichnis Verwenden Sie bidirektionale B...

Nginx-Reverseproxy und Lastausgleichspraxis

Reverse-Proxy Unter Reverse-Proxy versteht man de...

Detaillierte Einführung in Protokolle im Linux-System

Inhaltsverzeichnis 1. Logbezogene Dienste 2. Geme...

Teilen Sie die 15 besten HTML/CSS-Design- und Entwicklungsframeworks

Professionelles Webdesign ist komplex und zeitint...

jQuery Canvas generiert ein Poster mit einem QR-Code

In diesem Artikel wird der spezifische Code zur V...