VueはOpenLayersを使用してTiandi MapとAmapを読み込み

VueはOpenLayersを使用してTiandi MapとAmapを読み込み

1. 世界地図

1. VueにOpenLayersをインストールする

npm i --save ol

ここで言及されているvue は、scaffolding に基づいて構築されています。 新しいページ、つまりvueファイルを作成し、ルーティングを構成します。その後、コードを直接入力して実行できます。

 Vue は OpenLayers を使用して Tiandi Map と Amap <template> を読み込みます。
  <div class="wrapper">
    <div>世界地図</div>
    <div class="map" id="olMap"></div>
  </div>
</テンプレート>
<スクリプト>
"ol/ol.css"をインポートします。
輸入 {
  "ol/layer" から Tile を TileLayer として変換します。
「ol/source/XYZ」からXYZをインポートします。
輸入 {
  デフォルトは defaultControls } で、"ol/control" から取得されます。
「ol/Map.js」からマップをインポートします。
「ol/View.js」から View をインポートします。
エクスポートデフォルト{
  データ() {
   戻る {
      マップ: null、
      パーサー: null、
    };
  },
  マウント() {
    このメソッドは、次のとおりです。
  },
  メソッド: {
    initMap() {
     定数マップ = 新しいマップ({
       ターゲット: "olMap",
        ビュー: 新しいビュー({
 
          center: [0, 0], //中心点の緯度と経度 zoom: 4, //レイヤーのスケーリング投影: "EPSG:4326",
        })、
        コントロール: defaultControls({
          ズーム: 真、
          帰属: 誤り、
          回転: false、
        })、
      });
      this.map = マップ;
      // マップを追加 let url = "http://t{0-7}.tianditu.com/DataServer?x={x}&y={y}&l={z}";
      url = `${
   url}&T=vec_c&tk=キーを置き換えます`;
      constソース = 新しいXYZ({
     URL: URL、
        投影: "EPSG:4326",
      });
      const tdtLayer = 新しい TileLayer({
        出典: 出典、
      });
      this.map.addLayer(tdtLayer);
      // アノテーションを追加 url = "http://t{0-7}.tianditu.com/DataServer?x={x}&y={y}&l={z}";
      url = `${
   url}&T=cva_c&tk=キーを置き換えます`;
      const ソースCVA = 新しい XYZ({
        URL: URL、
        投影: "EPSG:4326",
      });
      const tdtcvaLayer = 新しい TileLayer({
        出典: sourceCVA、
      });
      マップにレイヤーを追加します。
    },
  },
};
</スクリプト>
<スタイルスコープ>
.map {
  幅: 100%;
  高さ:100vh;
}
</スタイル>

世界地図が表示されます。

効果画像:

2. アマップ

Tiandi Mapと比べると、Amapははるかに簡単です。コードにアクセスするだけです

<テンプレート>
  <div class="wrapper">
    <div>アマップ</div>
    <div id="マップ"></div>
  </div>
</テンプレート>
<スクリプト>
輸入 {
 マップ、ビュー、機能} 'ol' から

'ol/proj' から olProj として * をインポートします
輸入 {
 'ol/geom' から {Point}
輸入 {
  Style、Fill、Stroke、Circle を sCircle として追加します } from "ol/style";
// レイヤーを追加 import Tilelayer from 'ol/layer/Tile'
輸入 {
 'ol/layer' から Vector を VectorLayer として変換します
輸入 {
 'ol/source' から、XYZ、Vector を VectorSource として取得します。
//スタイルファイルをインポートする import "ol/ol.css"
エクスポートデフォルト{
  データ() {
  戻る {
    マップ:null
    }
  },
  マウント() {
  これを初期化します。
   マーカーを設定します。
  },
  メソッド: {
    初期化(){
       this.map = 新しいマップ({
         ターゲット: 'マップ',
         レイヤー:[新しいタイルレイヤー({
           ソース: 新しいXYZ({
               url:'https://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}',
           })
         })
         ]、
        ビュー:新しいビュー({

            // 西安を地図の中心とする // olProj.fromLonLat メソッドは経度と緯度を対応する座標に変換します。中心: olProj.fromLonLat([108.945951, 34.465262]),
          ズーム:2
        })、
       })
    },
    setMarker(){
        _style = 新しいスタイル({
            イメージ:新しいsCircle({
                半径:10,
                ストローク:新しいストローク({
                    色:"#fff",
                })、
                塗りつぶし: 新しい塗りつぶし({
                    色:'#3399CC',
                })、
            })、
        });
        _feature = 新しいFeature({
 
            ジオメトリ:新しいポイント(olProj.fromLonLat([108.945951, 34.465262]))、
        });
        _feature.setStyle(_style);
        _marker = 新しい VectorLayer({

            ソース: 新しい VectorSource({
               機能:[_feature],
            })、
        });
        マップにレイヤーを追加します(_marker);
    },
  },
}
</スクリプト>
<スタイルスコープ>
  #地図{
      /* 画面の幅と高さ */
    幅:100vw;
    高さ:100vh;
  }
</スタイル>

Vue が OpenLayers を使用して Tiandi Map と Amap をロードする方法について説明したこの記事はこれで終わりです。OpenLayers による Tiandi Map と Amap のロードに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • VueはTiandi Mapとopenlayersを使用して、複数のベースマップオーバーレイ表示効果を実現します。
  • vue-openlayers はマップ座標ポップアップボックス効果を実現します
  • Vue は Gaode マップのサンプルコードを呼び出す
  • Amap とその UI コンポーネントを Vue プロジェクトに導入する方法
  • Vue Baidu Map + 位置の詳細な説明
  • Vue Echarts は視覚的な世界地図のコード例を実装します
  • VueプロジェクトでBaidu Map APIを呼び出す方法の詳細な説明
  • Vueがローカル画像を動的に読み込む問題を解決する
  • Vue-Cli 3.0 で Amap を設定する 2 つの方法
  • VueはOpenLayersを使ってマップを作成する

<<:  ウェブサイトのAboutページの紹介コンテンツの書き方

>>:  CSS スタイル分類入門(基礎知識)

推薦する

MySQLインデックスの詳細な分析

序文インデックスの選択はオプティマイザ段階の作業であることはわかっていますが、オプティマイザは万能で...

Vueの最初のレンダリングのプロセス全体についての簡単な説明

目次1. Vueの初期化vue エントリ ファイルフルバージョンとランタイムバージョンの違い1.1、...

MySQLからMariaDBへのスムーズな移行のための詳細な手順

1. MariaDB と MySQL の紹介1. MariaDB の紹介MariaDB は、MySQ...

JavaScript における URL オブジェクトの素晴らしい使い方

目次序文解析パラメータURLパラメータを変更する要約する序文URLオブジェクトはページ側ではあまり使...

VueはWebSocketを使用してチャット機能をシミュレートします

この効果は、2つのブラウザが互いにシミュレートしていることを示しています 1. シミュレートされたノ...

jQuery タグセレクターの適用例の詳細な説明

この記事では、jQueryタグセレクターアプリケーションの具体的なコードを例として紹介します。具体的...

Windows での自動展開に Jenkins を使用するチュートリアル図

今日は、Jenkins + powershell スクリプトを使用して、.NET CORE スクリプ...

Vueはズームイン、ズームアウト、ドラッグ機能を実装しています

この記事では、参考までに、ズームインとズームアウトのドラッグ機能を実現するためのVueの具体的なコー...

webpackでCSSを分割・圧縮し、リンクでインポートする手順

まずコードファイルの構造を見てみましょう。エントリファイル (index1.js) の内容: ...

HTML テーブル マークアップ チュートリアル (1): テーブルの作成

<br />これは 123WORDPRESS.COM が提供する一連のチュートリアルです...

クリックイメージ反転効果を実現するJavaScript

最近、顔コレクションに関するプロジェクトに取り組んでいましたが、フロントエンドモジュールを書いている...

nginx + fastcgi を使用して画像認識サーバーを実装する

背景ディープラーニング モデルの推論には、特定のデバイスが使用されます。マシンは、モデルの読み込み、...

よく使用される入力テキストボックスの内容は自動的に垂直方向に中央揃えされ、クリックするとデフォルトのプロンプトテキストは空になります。

3つの機能: 1. コンテンツの垂直方向の自動中央揃え2. デフォルトのプロンプトテキストは灰色で表...

MySQL データの集約とグループ化

多くの場合、データを実際に取得せずに要約する必要があり、 MySQLこの目的のために特別な関数を提供...

ウェブサイト上で flv/MP4 やその他のビデオ ファイルを再生できない問題は、MIME タイプに関連しています。

ウェブサイトを作成している際に、flv や MP4 形式などのビデオ ファイルはローカルでは正常に再...