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

推薦する

Linux でアップロードされたファイルのスケジュールされたバックアップと増分バックアップを実装する方法

導入Alibaba Cloud のような OSS ストレージ サービスを使用している場合は、サービス...

1 つの記事で JSON (JavaScript Object Notation) を理解する

目次JSONが登場JSON構造JSONオブジェクトJson オブジェクトと JavaScript オ...

JavaScript 関数のコンテキストのルールは何ですか?

目次1. ルール 1: Object.Method() 1.1 ケース1 1.2 ケース2 1.3 ...

MySql のクラッシュとサービスの起動失敗の解決策

私は長い間PHPに触れてきましたが、インストール環境は非常に不慣れです。多くの問題に遭遇しました。B...

CSSメディアクエリのアスペクト比を小さくする方法

CSS メディア クエリには非常に便利なアスペクト比、aspect-ratio があり、幅と高さを直...

純粋な CSS を使用してドロップダウン メニューを作成するサンプル コード

導入:最近の面接の質問を見ると、ドロップダウン メニューを実装するために CSS を使用することが多...

Zabbix でフィルターを使用して監視を実装する方法

最近、監視機器の作業をしていたとき、ポートがダウンしているというアラームが常に出ていました。データを...

仮想マシンでXshell5をLinuxに接続する方法と障害の解決方法

かなり前に仮想マシンをインストールしましたが、ようやく Linux をインストールしました。マシンの...

2列のデータをSQLの新しい列として操作する

以下のように表示されます。 bb_sbからa1、a2、a1+a2 a、a1*a2 b、a1*1.0/...

仮想マシンのLinux初心者がIPを設定し、ネットワークを再起動する

仮想マシンを初めて使用する方や、仮想マシンに Linux をインストールしたばかりの方は、システムが...

MYSQL ロック解除とロックテーブルの紹介

MySQL ロックの概要他のデータベースと比較すると、MySQL のロック メカニズムは比較的単純で...

CentOS で MySQL 5.1 を 5.5.36 にアップグレードする

CentOS 6.4 環境で MySQL 5.1 を 5.5.36 にアップグレードする手順を記録し...

HTML 要素の高さ、offsetHeight、clientHeight、scrollTop などの詳細な説明。

要素に関するいくつかの属性フロントエンドの日常的な開発では、一部のページのプロパティを取得または監視...

TSオブジェクトのスプレッド演算子とレスト演算子の詳細な説明

目次概要オブジェクトの残り属性オブジェクトの拡張プロパティオブジェクトの浅いコピーを作成するkeyo...

非常に便利な CSS 開発ツール 8 つを紹介

CSS3 パターン ギャラリーこの CSS3 パターン ライブラリには、純粋な CSS3 を使用して...