VorwortDiese Artikelserie stellt ein einfaches Beispiel für die Echtzeitpositionierung vor, das hauptsächlich Folgendes umfasst:
Der erzielte Effekt: 1. Etikettenstil definierenvar 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-Datenvar 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 Kartemontiert() { 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 EchtzeitMethoden: { ü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. <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:
|
<<: Erstellen Sie einen Tomcat9-Cluster über Nginx und realisieren Sie die Sitzungsfreigabe
>>: Analyse von Beispielen für MySQL-Benutzerverwaltungsvorgänge
Nun, vielleicht sind Sie ein Design-Guru, oder vie...
MySQL Vorteil: Kleine Größe, hohe Geschwindigkeit...
Inhaltsverzeichnis 1. Verwenden Sie Objekt, um ei...
Beachten Sie, dass dies kein von vue-cli erstellt...
Dynamisches Implementieren eines einfachen sekund...
Die Situation ist wie folgt: (PS: Das rote Kästche...
Inhaltsverzeichnis 1. Docker installieren 2. Inst...
Inhaltsverzeichnis Verwenden Sie bidirektionale B...
Reverse-Proxy Unter Reverse-Proxy versteht man de...
Inhaltsverzeichnis 1. Logbezogene Dienste 2. Geme...
Professionelles Webdesign ist komplex und zeitint...
Wir müssen oft die versteckten, transparenten und...
In diesem Artikel wird der spezifische Code zur V...
Systemversion [root@ ~]# cat /etc/redhat-release ...
Notiz Beim Entwickeln einer Benutzeroberfläche fü...