Vue+Openlayer で select を使用して要素を選択する実装コード

Vue+Openlayer で select を使用して要素を選択する実装コード

効果画像:

実装コード:

<テンプレート>
  <div id="map" ref="map" style="幅: 100vw; 高さ: 100vh"></div>
</テンプレート>
 
<スクリプト>
"ol/ol.css"をインポートします。
「ol」から { Map, View } をインポートします。
"ol/source" から { OSM、Vector を VectorSource としてインポートします。
「ol/layer」から { Vector を VectorLayer として、 Tile を TileLayer として } をインポートします。
「ol/format/GeoJSON」からGeoJSONをインポートします。
 
「ol/interaction/Select」からSelectをインポートします。
"ol/events/condition" から { altKeyOnly、click、pointerMove } をインポートします。
 
エクスポートデフォルト{
  名前: "gif",
  データ() {
    戻る {
      マップ: {},
      レイヤー: {},
      geojsonデータ:
        タイプ: "FeatureCollection",
        特徴: [
          {
            タイプ: "機能",
            プロパティ:
              タイトル:「アラーム1」、
            },
            ジオメトリ:
              タイプ: "ポイント"、
              座標: [91.48879670091165, 37.83814884701121],
            },
          },
          {
            タイプ: "機能",
            プロパティ:
              タイトル: 「アラーム2」、
            },
            ジオメトリ:
              タイプ: "ポイント"、
              座標: [99.19515576149941, 26.713646654711134],
            },
          },
          {
            タイプ: "機能",
            プロパティ:
              タイトル: 「アラーム3」、
            },
            ジオメトリ:
              タイプ: "ポイント"、
              座標: [123.74363825288785, 44.363694825734726],
            },
          },
        ]、
      },
      選択: {},
    };
  },
  マウント() {
    このメソッドは、次のとおりです。
  },
  メソッド: {
    // マップを初期化する initMap() {
      this.layer = 新しいVectorLayer({
        ソース: 新しい VectorSource({
          機能: 新しい GeoJSON().readFeatures(this.geojsonData)、
        })、
      });
      this.map = 新しいマップ({
        ターゲット: "マップ"、
        レイヤー:
          新しいタイルレイヤー({
            ソース: 新しい OSM()、
          })、
          このレイヤー、
        ]、
        ビュー: 新しいビュー({
          投影: "EPSG:4326",
          中心: [104.912777, 34.730746],
          ズーム: 4.5,
        })、
      });
 
      this.select = 新しいSelect({
        条件: click, //クリックして選択});
      this.map.addInteraction(this.select);
      this.select.on("選択", (e) => {
        let coordinate = e.mapBrowserEvent.coordinate; //選択された座標を取得します。let properties = e.selected[0].getProperties(); //現在のフィーチャのすべてのプロパティを取得します。});
 
      // ベクター要素上のマウスのスタイルを設定します this.map.on("pointermove", (e) => {
        const isHover = this.map.hasFeatureAtPixel(e.pixel);
        this.map.getTargetElement().style.cursor = isHover ? "ポインター" : "";
      });
    },
  },
};
</スクリプト>

Vue+Openlayer で選択要素を使用する実装コードに関するこの記事はこれで終わりです。Vue Openlayer 選択要素に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue+openlayers は州や市の境界線を描画します
  • Openlayers が Vue プロジェクトに行政区画を描く
  • vue-openlayers はマップ座標ポップアップボックス効果を実現します
  • Vue+Openlayers カスタムトラックアニメーション
  • VueはOpenLayersを使用して移動するポイントアニメーションを実装します

<<:  Dockerコンテナ同士を接続する3つの方法の詳しい説明

>>:  MySQL レプリケーションの原理と実際のアプリケーションの詳細な説明

推薦する

Linuxプロセス監視と自動再起動の簡単な実装方法

目的: Linux では、さまざまな理由でサーバー プログラムがダンプされ、ユーザーの使用に影響する...

WeChatアプレットはキャンバスを使用して時計を描画します

この記事では、キャンバスを使用してWeChatアプレットに時計を描く具体的なコードを参考までに共有し...

ノードスクリプトで自動サインインと抽選機能を実現

目次1. はじめに2. 準備3. スクリプトプロジェクトの構築4. コードの作成と実行5. まとめと...

ウェブページコンテンツの閲覧設計手法に関する議論

<br />コンテンツ ページの記事の場合、記事が長すぎる場合やカテゴリ (ランキング)...

MySQL Innodbの主な機能挿入バッファ

目次挿入バッファとは何ですか?挿入バッファのトリガー条件は何ですか?なぜ一意のインデックスにできない...

Mysql 複数データベースのバックアップ コード例

この記事は主にMysqlの複数データベースのバックアップのコード例を紹介します。この記事ではサンプル...

Linux カーネル デバイス ドライバー カーネル デバッグ テクニカル ノート集

/****************** * カーネルデバッグ技術 ****************...

CentOS7 インストール GUI インターフェースとリモート接続の実装

ブラウザ (Web ドライバー) ベースの Selenium テクノロジを使用してデータをクロールす...

カルーセル例の JavaScript 実装

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

MySQL統計の概要

MySQL は、SQL 解析とクエリ最適化のプロセスを通じて SQL を実行します。パーサーは SQ...

ReactJs 基礎チュートリアル - 基本編

目次1. ReactJS の紹介2. ReactJSの理解とReactJSの利点1. ReactJS...

オンデマンドで Vue コンポーネントを自動的にインポートする方法

目次グローバル登録部分登録ローカル自動登録さまざまなソリューションの比較コンポーネント名について参照...

Linuxのpasswdコマンドの使用

1. コマンドの紹介passwd コマンドは、ユーザー パスワード、アカウント ロック、パスワードの...

my.cnf (my.ini) 重要なパラメータの最適化設定手順

MyISAM ストレージエンジンMyISAM ストレージ エンジンは、書き込みよりも読み取りが多く、...

DockerコンテナでArthasを使用するための詳細な手順

Arthas はあなたのために何ができるでしょうか? Arthas 、開発者に深く愛されている Al...