Vue+Openlayer Batch-Einstellung von Flash Point-Implementierungscode (basierend auf dem Postrender-Mechanismus)

Vue+Openlayer Batch-Einstellung von Flash Point-Implementierungscode (basierend auf dem Postrender-Mechanismus)

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:
  • VUE + OPENLAYERS erreicht Echtzeit-Positionierungsfunktion
  • Methode zum dynamischen Laden von Geojson basierend auf Vue+Openlayer
  • Verwenden von Openlayer in Vue, um einen Ladeanimationseffekt zu realisieren
  • 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

<<:  Detaillierte Erklärung zur Verwendung von Docker durch Deepin zur Installation einer MySQL-Datenbank

>>:  Beispielanalyse der MySQL-Benutzerrechteverwaltung

Artikel empfehlen

Detaillierte Erklärung von MySQL-Transaktionen und MySQL-Protokollen

Transaktionale Merkmale 1. Atomarität: Nach dem S...

Prozessdiagramm für das erste Bereitstellungs-Webprojekt von Tomcat

Legen Sie Ihr eigenes Webprojekt im Verzeichnis w...

JavaScript implementiert eine bidirektionale verknüpfte Listenprozessanalyse

Inhaltsverzeichnis 1. Was ist eine doppelt verknü...

Über Front-End JavaScript ES6 Details

Inhaltsverzeichnis 1. Einleitung 1.1 Babel-Transc...

So installieren Sie Jenkins auf CentOS 8

Um Jenkins auf CentOS 8 zu installieren, müssen S...

Einführung in die neuen Funktionen von ECMAscript

Inhaltsverzeichnis 1. Standardwerte für Funktions...

Detaillierter Prozess zur Konfiguration von NIS in Centos7

Inhaltsverzeichnis Prinzip Vorbereitung der Netzw...

Detaillierte Erläuterung des Docker-Visualisierungsgrafiktools Portainer

Inhaltsverzeichnis 1. Einführung in Portainer 2. ...

Detaillierte Beschreibung der Funktion von new in JS

Inhaltsverzeichnis 1. Beispiel 2. Erstelle 100 So...

Tutorial zur Installation von RabbitMQ mit Yum auf CentOS8

Geben Sie den Ordner /etc/yum.repos.d/ ein Erstel...

Beispiel für die Anpassung des Stils des Auswahlfelds für Formulardateien

Code kopieren Der Code lautet wie folgt: <!DOC...