Vue は現在の位置へのポジショニングを実装します

ポジショニングの3つの方法

現在、Web ページの配置はブラウザの配置、Gaode マップの配置、Baidu マップの配置を使用しています。ブラウザと Gaode の両方を試しました。Firefox では可能ですが、Google ブラウザでは可能ではありません。Gaode マップの公式説明は次のとおりです。

一部のブラウザー (Google Chrome など) の測位インターフェイスはブラック ホールであり、測位要求に対してまったく応答がなく、タイムアウト後に失敗を返します。

vue 現在の場所の緯度と経度を取得します (ブラウザーの位置)
vue で Gaode マップを使用して、
Android アプリに配置する必要がある自分の Web ページを取得して検索します。Android Web ビューは Google コアであるため、サポートされません。それを調べて、最後に Baidu マップを使用したところ、Vue で都市の測位を実現できることがわかりました
(Baidu マップを使用)

私の側で変更があり、緯度と経度に基づいて特定の住所に変換する必要があります。最初に ak を申請する必要があります。公式ドキュメント
JavaScript API GL を
参照して、パブリック フォルダーの下の index.html で Baidu のリファレンスを紹介してください。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta base="/" id="base" />
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover,user-scalable=no"
    />

    <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
    <title>第一个vue</title>
    <meta name="format-detection" content="telephone=yes"/>
 
    <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=xxxxx"></script>
    <script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=xxxxxx"></script>
    
  </head>

  <body>

vue.config.js で

  //压缩打包文件大小
  configureWebpack: (config) => {
  
    config.externals = {
      "BMap": 'BMap'

配置する必要がある場所。second.vue で使用

<template>
  <div>{
   
   { LocationCity }}</div>
</template>
<script>
export default {
      
      
  name: "home",
  data() {
      
      
    return {
      
      
      musicTypeJSON: {
      
      },
      searchValue: "",
      result: [],
      titleTypeJSON: {
      
      }, //热门城市
      LocationCity: "正在定位...", //一个初始值''
    };
  },
  methods: {
      
      
    city() {
      
      
      //定义获取城市方法
      const geolocation = new BMap.Geolocation();
      var _this = this;
      geolocation.getCurrentPosition(
        function getinfo(position) {
      
      
          let city = position.address.city; //获取城市信息
          let province = position.address.province; //获取省份信息
          console.log(position);
          // 创建地理编码实例
          var myGeo = new BMapGL.Geocoder();
          // 根据坐标得到地址描述
          myGeo.getLocation(
            new BMapGL.Point(position.longitude, position.latitude),
            function (result) {
      
      
              if (result) {
      
      
               
                  _this.LocationCity ="经纬度:"+position.longitude+","+position.latitude+",地址:"+
                  result.address;;
              }
            }
          );
        
        },
        function (e) {
      
      
          _this.LocationCity = "定位失败";
        },
        {
      
       provider: "baidu" }
      );
    },
  },
  mounted() {
      
      
    this.city(); //触发获取城市的方法
  },
};
</script>
<style>
div {
      
      
  word-break: break-all;
}
</style>

おすすめ

転載: blog.csdn.net/jifashihan/article/details/125311642