Vue+Openlayer バッチ設定フラッシュポイント実装コード (ポストレンダリングメカニズムに基づく)

Vue+Openlayer バッチ設定フラッシュポイント実装コード (ポストレンダリングメカニズムに基づく)

効果画像:

実装コード:

<テンプレート>
  <div id="map" style="幅: 100vw; 高さ: 100vh" />
</テンプレート>
<スクリプト>
"ol/ol.css"をインポートします。
"ol/layer/Tile" から TileLayer をインポートします。
「ol/layer/Vector」から VectorLayer をインポートします。
「ol/source/Vector」から VectorSource をインポートします。
「ol/source/XYZ」からXYZをインポートします。
「ol」から { Map, View, Feature } をインポートします。
"ol/style" から { Style, Circle, Stroke } をインポートします。
"ol/geom" から { Point } をインポートします。
"ol/render" から { getVectorContext } をインポートします。
 
// 境界jsonデータエクスポートデフォルト{
  データ() {
    戻る {
      マップ: {},
      座標: [
        { x: "106.918082", y: "31.441314" }, //重慶{ x: "86.36158200334317", y: "41.42448570787448" }, //新疆{ x: "89.71757707811526", y: "31.02619817424643" }, //チベット{ x: "116.31694544853109", y: "39.868508850821115" }, //北京{ x: "103.07940932026341", y: "30.438580338450862" }, //成都],
      速度: 0.3、
    };
  },
  マウント() {
    このメソッドは、次のとおりです。
    this.addDynamicPoints(this.coordinates);
  },
  メソッド: {
    /**
     * マップを初期化する */
    initMap() {
      this.map = 新しいマップ({
        ターゲット: "マップ"、
        レイヤー:
          新しいタイルレイヤー({
            ソース: 新しいXYZ({
              URL: "http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}",
            })、
          })、
        ]、
        ビュー: 新しいビュー({
          投影: "EPSG:4326",
          中心: [108.522097, 37.272848],
          ズーム: 4.7,
        })、
      });
    },
    /**
     * フラッシュポイントをバッチで追加 */
    addDynamicPoints(座標) {
      // レイヤーを設定します。let pointLayer = new VectorLayer({ source: new VectorSource() });
      //レイヤーを追加します this.map.addLayer(pointLayer);
      // ループして機能を追加する
      pointFeature を [] とします。
      (i = 0 とします; i < 座標.長さ; i++) {
        // フィーチャを作成します。フィーチャはポイントの座標情報です。const feature = new Feature({
          ジオメトリ: 新しいポイント([座標[i].x, 座標[i].y]),
        });
        pointFeature.push(機能)
      }
      //レイヤーにフィーチャ コレクションを追加します pointLayer.getSource().addFeatures(pointFeature);
      // 重要なポイントは、ポストレンダリング イベントをリッスンし、その中で円のスタイルをリセットすることです。let radius = 0;
      pointLayer.on("postrender", (e) => {
        半径 >= 20 の場合、半径 = 0;
        let opacity = (20 - radius) * (1 / 20); // 不透明度 let pointStyle = new Style({
          イメージ: 新しい円({
            半径: 半径、
            ストローク: 新しいストローク({
              色: "rgba(255,0,0" + 不透明度 + ")",
              width: 3 - radius / 10, //幅を設定する}),
          })、
        });
        // ベクトル特徴コンテキストを取得します。let vectorContext = getVectorContext(e);
        ベクトルコンテキストのスタイルを設定します。
        pointFeature.forEach((フィーチャ) => {
          ベクトルコンテキストでジオメトリを描画します。
        });
        radius = radius + this.speed; //点滅速度を調整する //マップのレンダリングを要求する(次のアニメーションフレームで)
        このマップをレンダリングします。
      });
    },
  },
};
</スクリプト>

参考文献

これで、Vue+Openlayer バッチ設定フラッシュポイント (ポストレンダリング メカニズムに基づく) の実装コードに関するこの記事は終了です。Vue Openlayer フラッシュポイントに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • VUE + OPENLAYERSがリアルタイムポジショニング機能を実現
  • Vue+Openlayer をベースに geojson を動的に読み込む方法
  • Vue で Openlayer を使用して読み込みアニメーション効果を実現する
  • Vue+openlayers は州や市の境界線を描画します
  • Openlayers が Vue プロジェクトに行政区画を描く
  • vue-openlayers はマップ座標ポップアップボックス効果を実現します
  • OpenLayers を Vue と統合して geojson をロードし、ポップアップ ウィンドウを実装する方法のチュートリアル
  • Vue+Openlayers カスタムトラックアニメーション

<<:  Dockerを使用してMySQLデータベースをインストールするDeepinの詳細な説明

>>:  MySQL ユーザー権限管理の分析例

推薦する

Windows Server 2012 でファイル サーバーを構築するための詳細な手順

ファイル サーバーは、企業内で最も一般的に使用されるサーバーの一つであり、主にファイル共有を提供する...

Nginxはドメイン名のアクセス方法を定義しています

最近Nginxを構築しているのですが、ドメイン名でアクセスできません。 nginx 構成ファイル n...

HTML テーブル マークアップ チュートリアル (42): テーブル ヘッダーの水平方向の配置属性 ALIGN

水平方向では、テーブル ヘッダーの配置を左、中央、右に設定できます。基本的な構文<TH ALI...

HTML における相対と絶対の使用法と違いの詳細な説明

HTML における相対と絶対の違い: 正直に言うと、HTML は世界で最もシンプルな言語です。タグ言...

Vueフィルターの使い方

目次概要フィルターの定義フィルターの使用カスタムグローバルフィルターローカルフィルター予防例1(ロー...

Apache Flink の任意の Jar パッケージのアップロードにより、リモート コード実行の脆弱性が再発する問題が発生する (脆弱性警告)

脆弱性の説明Apache Flink は、分散ストリームおよびバッチ データ処理用のオープン ソース...

事例を通してLinux NFSの仕組みを詳細に分析

前回の記事に引き続き、web02 サーバーを作成し、web01 サーバーと web02 サーバーの ...

UbuntuはPythonスクリプトのサンプルコードを定期的に実行する

オリジナルリンク: https://vien.tech/article/157序文この記事では、Ub...

CentOS7におけるKVM仮想化の基本管理の詳しい説明

1. kvm仮想化をインストールする : : : : : : : : : : : : : : : :...

MySQL 5.7.18 MSI インストール グラフィック チュートリアル

この記事では、参考までにMySQL 5.7.18 MSIインストールチュートリアルを紹介します。具体...

ウェブデザインにおける階層化インターフェースの設計経験

多くのネットユーザーは、なぜ自分のウェブサイトはいつも色の問題を抱えていて、いつも地味に見え、注目を...

JSタイマーを使用して要素を移動する

JS タイマーを使用して、要素に移動する効果のあるメソッドを作成します。実装のアイデアは、まず要素の...

mysql57サービスが突然消えた問題をすぐに解決する

1つ、 G:\MySQL\MySQL Server 5.7\bin> mysqld --ini...

Dockerコンテナでyumを呼び出すときのエラーの解決方法

dockerfile またはコンテナ内で yum を実行すると、エラーが報告され、ソースが見つかりま...

Docker Gitlab+Jenkins+Harborは永続的なプラットフォーム運用を構築します

CI/CD の概要CIワークフロー設計Gitコードバージョン管理システムはコマンドラインでのみ管理で...