VueはBaidu Mapsを使用して都市の位置特定を実現

VueはBaidu Mapsを使用して都市の位置特定を実現

この記事では、参考までに、Baidu Mapsを使用して都市の位置特定を実現するVueの具体的なコードを紹介します。具体的な内容は次のとおりです。

Vue プロジェクト実行環境: Vue 2.0、Vue Cli 3.0

ステップ 1: Baidu Map Open Platform にログインし、[コンソール] ----> [アプリケーション管理] ----> [マイアプリケーション] でアプリケーションを作成します。

目的はakを取得することです

ステップ2: publicフォルダのindex.htmlファイル

Baidu Mapsをインポートしてakを追加する

ステップ3:プロジェクトのルートディレクトリにvue.config.jsファイルを作成する

vue.config.jsファイルがある場合は、次のコードを追加するだけです。

VueCli 3.0以降では、 vue.config.jsファイルはデフォルトでは作成されなくなりました。このファイルを使用する場合は、手動で作成する必要があります。

モジュール.エクスポート = {
  Webpack を構成する: {
    外部: {
      'BMap': 'BMap' // Baidu マップ設定}
  }
}

ステップ 4:次のステップは、特定のコードを実装することです。

次に、2 つの実装ソリューションを紹介します。

方法 1 (推奨): js ツール ファイルを個別にカプセル化してアドレスを取得します。

1. srcフォルダーの下に新しいutilフォルダーを作成し、util フォルダーに新しいgetUserLocation.jsファイルを作成します。

注: この util フォルダーには、場所関連のファイルgetUserLocation.jsだけでなく、独自のカプセル化されたツール js ファイルをすべて保存できます。

コードとスクリーンショットは次のとおりです。

// 現在の都市を取得する const getCurrentCityName = function() {
  新しい Promise を返します ((resolve, reject) => {
    myCity を新しい BMap.LocalCity() にします。
    myCity.get((結果) => {
      geoc = new BMap.Geocoder();
      geoc.getLocation(result.center, (rs) => {
        // rsはすべての位置情報を保持しますが、ここでは都市と地区のみを取得します
        addComp = rs.addressComponents; とします。
        結果 = addComp.city + addComp.district;
        解決(結果);
      });
    }, {enableHighAccuracy: true});
  });
}
デフォルトの getCurrentCityName をエクスポートします。

上記のファイルにカプセル化されたメソッドをコンポーネントに導入して呼び出す

方法1:ツールファイルをインポートする

このページでは、 locationMsg属性を通じて位置情報を表示できます。例: 北京市豊台区

方法 2:コンポーネント内に直接配置します。

コンポーネント内で次のコードを直接使用して、コンポーネントを正常に見つけることができます。この方法は、方法 1 よりも時間がかかります。

コードとスクリーンショットは次のとおりです。

マウント() {
    // 位置情報を取得します this.getCity();
  },
  メソッド: {
    都市を取得する() {
      const getLocation = new BMap.Geolocation();
      var _this = これ;
      getLocation.getCurrentPosition((位置) => {
        // position はすべての位置データを保存します console.log(position);
        // ここで都市と州を取得します。let city = position.address.city;
        州を position.address.province とします。
        _this.locationMsg = 州 + 都市;
      }, () => {
        _this.locationMsg = '位置決めに失敗しました!';
      }, {プロバイダー: 'baidu'});
    }
  }

コード図

注: ここでの _this は実際には不要で、これを直接使用できます。矢印関数を使用する前は、_this が使用されていました。その後、矢印関数に変更した後、_this に関連するコードは変更されませんでした。もちろん、上記のコード通りに書いても問題ありません。

予期しない事態が発生しない場合は、コンポーネントのlocationMsg属性を通じて位置情報を取得できます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • VueはAmapを使用して都市の位置特定を実現
  • vue+Amapは地図検索とクリック位置決め操作を実現します
  • Amap を使った vue プロジェクトの位置付けとキーワード検索機能のサンプルコード (落とし穴体験)
  • Vueは座標に応じてポイントを特定するためにGaodeマップを使用します
  • Vue Baidu Map + 位置の詳細な説明

<<:  MySQL の選択、挿入、更新バッチ操作ステートメントのコード例

>>:  Linux サーバーの状態を監視する方法

推薦する

MySQL のロックとトランザクションの簡単な分析

MySQL 自体はファイルシステムに基づいて開発されましたが、ロックの存在が異なります。データベース...

IIS 7.5はURL書き換えモジュールを使用してWebページのリダイレクトを実現します。

Apache では構成ファイルで Web ページまたは Web サイトの書き換えを簡単に設定できる...

Node.js を使用して png 画像に透明なピクセルがあるかどうかを判断する方法

背景PNG 画像は jpg 画像よりも多くのストレージスペースを占有しますが、PNG 画像の品質は大...

Vueベースのビデオプレーヤーの実装例

既存のビデオ プレーヤーがニーズを満たせない場合は、ビデオを自分でカプセル化する必要があります。ビデ...

Vue3 でサードパーティのコンポーネントライブラリをオンデマンドでロードする方法

序文Element Plus を例に、コンポーネントとスタイルのオンデマンド読み込みを構成します。環...

DOCTYPE HTMLを使用する理由

これがないと、ブラウザはページをレンダリングするときに Quirks モードを使用することがわかって...

MySQL InnoDB ロックの概要

目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...

Mysql systemctl start mysqld によって報告されるエラーの解決策

エラーメッセージ:制御プロセスがエラー コードで終了したため、mysqld.service のジョブ...

SQLシリアル番号取得コード例

この記事は主にSQLシリアル番号取得コード例を紹介します。記事ではサンプルコードを詳細に紹介しており...

React refsの詳細な紹介

1. 何ですかRefs 、コンピューターでは Resilient File System (ReF...

nginx がドメイン名アクセス用に設定されている場合にドメイン名の後に 2 つのスラッシュ // が表示される問題の解決方法

最近、個人のウェブサイトを書き直しました。Alibaba Cloudで新しいサーバーを購入しました。...

Docker コンテナ ソース コードのデプロイ httpd ストレージ ボリュームを使用して Web サイトをデプロイする (推奨)

目次Dockerコンテナのソースコードを使用してhttpdをデプロイし、ストレージボリュームを使用し...

Mac OS に MySQL 5.7.20 をインストールするための詳細なグラフィックとテキストの説明

Mac OS X で TAR.GZ から MySQL 5.7 をインストールする MySQL 5.6...

Docker Consul の概要とクラスター環境構築手順(グラフィカルな説明)

目次1. Dockerコンサルの概要2. nginxとconsulをベースにした自動検出と高可用性の...