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 スタイル分類入門(基礎知識)

推薦する

axiosリクエストをvueでカプセル化する方法

実際、Vueでaxiosをカプセル化するのは非常に簡単ですまず、srcパスにhttpフォルダを作成し...

IE 8/Chrome/Firefox と互換性のあるコメント返信ポップアップマスク効果実装アイデア

平日はニュースに注目して、テンセントをよく閲覧しています。しかし、コメントへの返信はほとんど見られま...

モバイルレイアウトにvw+remを使用する方法

まだ rem フレキシブルレイアウトを使用していますか?圧縮された js コードの大きなセクションを...

PHPのmail()関数を使用してメールを送信する

PHPのメール関数を使用してメールを送信するmail()関数はメールサーバーに接続し、サーバーと対話...

ドメイン名を nginx サービスにバインドする方法

nginx.conf で複数のサーバーを設定します。 http リクエストを処理する際、nginx ...

2つのシンプルなメニューナビゲーションバーの例

メニューバーの例 1: コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

canvas.toDataURL image/png エラー処理方法の推奨

問題の背景:再生中のビデオのスクリーンショットを撮る必要があります。ビデオはビデオタグを使用して再生...

MySQLデータベースのマスタースレーブ同期の実際のプロセスの詳細な説明

目次インストール環境の説明MySQLデータベースサービスをインストールするメインライブラリを構成する...

Python ベースの MySQL レプリケーション ツールの詳細な説明

目次1. はじめに2回目の練習2.1 インストールと設定2.2 コアクラスの紹介2.3 使い方は? ...

本をめくる効果を実現するネイティブJS

この記事では、ネイティブ JS で実装された本をめくる効果の図を紹介します。効果は次のとおりです。 ...

HTML の基礎_一般的なタグ、共通タグ、表

パート 1 HTML <html> -- 開始タグ<ヘッド>ウェブページ上の...

Reactフックの長所と短所

目次序文アドバンテージ:欠点: 1. レスポンシブな使用効果2. ステータスが同期されていないRea...

JavaScript配列の簡単な紹介

目次配列の紹介配列リテラル2次元配列要約する配列の紹介配列- Arrayもオブジェクトですこれは通常...

流れと動的なライン効果を実現する純粋なCSSコード

アイデア:外側のボックスは背景を設定し、内側のボックスは背景の幅と高さを設定し、ボックスを動かすアニ...

Vue3.0 エラーの解決策: モジュール 'worker_threads' が見つかりません

vue3.0 への最初の試みを記録します。プロジェクトを開始したときに、「モジュール 'wo...