Effektbild: Implementierungscode: <Vorlage> <div id="Karte" style="Breite: 100vw; Höhe: 100vh" /> </Vorlage> <Skript> importiere "ol/ol.css"; importiere TileLayer aus „ol/layer/Tile“; importiere VectorLayer aus „ol/layer/Vector“; importiere VectorSource aus „ol/source/Vector“; importiere XYZ aus „ol/source/XYZ“; importiere { Karte, Ansicht, Funktion } von "ol"; importiere { Stil, Kreis, Strich } aus "ol/style"; importiere { Punkt } aus "ol/geom"; importiere { getVectorContext } von "ol/render"; // Grenze JSON-Datenexport Standard { Daten() { zurückkehren { Karte: {}, Koordinaten: [ { x: "106.918082", y: "31.441314" }, // Chongqing { x: "86.36158200334317", y: "41.42448570787448" }, // Xinjiang { x: "89.71757707811526", y: "31.02619817424643" }, // Tibet { x: "116.31694544853109", y: "39.868508850821115" }, // Peking { x: "103.07940932026341", y: "30.438580338450862" }, // Chengdu], Geschwindigkeit: 0,3, }; }, montiert() { dies.initMap(); dies.addDynamicPoints(diese.coordinates); }, Methoden: { /** * Initialisiere die Karte */ initMap() { diese.map = neue Map({ Ziel: "Karte", Schichten: neue Kachelebene({ Quelle: neues XYZ({ URL: "http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}", }), }), ], Ansicht: neue Ansicht({ Projektion: "EPSG:4326", Mitte: [108.522097, 37.272848], Zoom: 4,7, }), }); }, /** * Blinkende Punkte stapelweise hinzufügen */ addDynamicPoints(Koordinaten) { // Ebene einrichten let pointLayer = new VectorLayer({ source: new VectorSource() }); //Ebene hinzufügen this.map.addLayer(pointLayer); // Schleife zum Hinzufügen von Funktionen lass PunktFeature = []; für (lass i = 0; i < Koordinaten.Länge; i++) { // Ein Feature erstellen. Ein Feature ist eine Punktkoordinateninformation const feature = new Feature({ Geometrie: neuer Punkt([Koordinaten[i].x, Koordinaten[i].y]), }); PunktFeature.push(Feature); } //Fügen Sie die Feature-Sammlung zur Ebene hinzu pointLayer.getSource().addFeatures(pointFeature); // Der entscheidende Punkt ist hier: Hören Sie auf das Postrender-Ereignis und setzen Sie den Kreisstil darin zurück. let radius = 0; pointLayer.on("postrender", (e) => { wenn (Radius >= 20) Radius = 0; let opacity = (20 - radius) * (1 / 20); // Deckkraft let pointStyle = new Style({ Bild: neuer Kreis({ Radius: Radius, Strich: neuer Strich({ Farbe: "rgba(255,0,0" + Deckkraft + ")", Breite: 3 - Radius / 10, //Breite festlegen}), }), }); // Den Vektor-Feature-Kontext abrufen let vectorContext = getVectorContext(e); Vektorkontext.setStyle(Punktstil); pointFeature.fürEach((feature) => { Vektorkontext: drawGeometry(feature.getGeometry()); }); radius = radius + this.speed; //Blinkgeschwindigkeit anpassen //Kartendarstellung anfordern (beim nächsten Animationsbild) diese.Karte.render(); }); }, }, }; </Skript> Verweise Dies ist das Ende dieses Artikels über den Implementierungscode für die Stapeleinstellung von Flashpunkten in Vue+Openlayer (basierend auf dem Postrender-Mechanismus). Weitere relevante Inhalte zu Flashpunkten in Vue Openlayer 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:
|
>>: Beispielanalyse der MySQL-Benutzerrechteverwaltung
Transaktionale Merkmale 1. Atomarität: Nach dem S...
Code kopieren Der Code lautet wie folgt: <!DOC...
Legen Sie Ihr eigenes Webprojekt im Verzeichnis w...
Inhaltsverzeichnis 1. Was ist eine doppelt verknü...
Inhaltsverzeichnis 1. Einleitung 1.1 Babel-Transc...
Um Jenkins auf CentOS 8 zu installieren, müssen S...
Inhaltsverzeichnis 1. Standardwerte für Funktions...
Wir haben vorgestellt, wie man mit den CSS3-Spalt...
Während der Entwicklungstätigkeit bin ich auf ein...
Inhaltsverzeichnis Prinzip Vorbereitung der Netzw...
Inhaltsverzeichnis 1. Einführung in Portainer 2. ...
Inhaltsverzeichnis 1. Was ist Docker Compose und ...
Inhaltsverzeichnis 1. Beispiel 2. Erstelle 100 So...
Geben Sie den Ordner /etc/yum.repos.d/ ein Erstel...
Code kopieren Der Code lautet wie folgt: <!DOC...