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

Einführung in die Verwendung des MySQL mysqladmin-Clients

Inhaltsverzeichnis 1. Überprüfen Sie den Status d...

SSM VUE Axios Detaillierte Erklärung

Inhaltsverzeichnis Wie wird das SQL-Protokoll ang...

Der Prozess der schnellen Konvertierung eines MySQL-Left-Joins in einen Inner-Join

Während des täglichen Optimierungsprozesses stell...

js implementiert eine Formularvalidierungsfunktion

In diesem Artikelbeispiel wird der spezifische Co...

So setzen Sie das MySQL-Root-Passwort zurück

Inhaltsverzeichnis 1. Ich habe das Root-Passwort ...

Vue realisiert den Produktlupeneffekt

In diesem Artikelbeispiel wird der spezifische Co...

Einen Web-Rechner mit Javascript schreiben

Dieser Artikel beschreibt hauptsächlich die Auswi...

VM VirtualBox virtuelle Maschine mounten freigegebenen Ordner

Eine Umgebung Installieren Sie VMware Tools auf C...

Detaillierte Erklärung von Javascript-Closures und -Anwendungen

Inhaltsverzeichnis Vorwort 1. Was ist ein Abschlu...

So konfigurieren Sie eine statische Netzwerkverbindung in Linux

Das Konfigurieren der Netzwerkkonnektivität für L...