注意:
1.我使用的是cli3.x搭建的项目。
2.注册高德地图和拿高德地图的key值我就不说了。 需要的自己上网搜一下吧。

1.拿到高德key值之后,在vue中的public文件夹–>index文件中引入这么一段代码:

把你自己申请下来key值放到下面链接的key=后面就OK了
在这里插入图片描述

<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.14&key=您申请的key值"></script> 

然后到App.vue中创建方法,一开始我按照高德地图JS API 中的定位进行测试的代码:这个是在App文件中啊。

<template>
  <div id="app">
    <router-view/>
  </div>
</template>
<script>
export default {
  name: "app",
  created() {
    this.getLocation();
  },
  methods: {
    getLocation() {
      AMap.plugin("AMap.Geolocation", function() {
        var geolocation = new AMap.Geolocation({
          // 是否使用高精度定位,默认:true
          enableHighAccuracy: true,
          // 设置定位超时时间,默认:无穷大
          timeout: 10000,
          // 定位按钮的停靠位置的偏移量,默认:Pixel(10, 20)
          buttonOffset: new AMap.Pixel(10, 20),
          //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
          zoomToAccuracy: true,
          //  定位按钮的排放位置,  RB表示右下
          buttonPosition: "RB"
        });

        geolocation.getCurrentPosition();
        AMap.event.addListener(geolocation, "complete", onComplete);
        AMap.event.addListener(geolocation, "error", onError);

        function onComplete(data) {
          // data是具体的定位信息
          console.log(data,“成功”)
        }

        function onError(data) {
          // 定位出错
          console.log(data,“失败”)
        }
      });
    }
  }
};
</script>

输出结果:
在这里插入图片描述
由于谷歌浏览器禁止了非安全域的定位请求。所以会报这个错。
还是在App文件中写入:IP定位获取当前城市信息方法

<template>
  <div id="app">
    <router-view/>
  </div>
</template>
<script>
export default {
  name: "app",
  created() {
    this.getLocation();
  },
  methods: {
    getLocation() {
      const that = this;
      AMap.plugin("AMap.Geolocation", function() {
        var geolocation = new AMap.Geolocation({
          // 是否使用高精度定位,默认:true
          enableHighAccuracy: true,
          // 设置定位超时时间,默认:无穷大
          timeout: 10000,
          // 定位按钮的停靠位置的偏移量,默认:Pixel(10, 20)
          buttonOffset: new AMap.Pixel(10, 20),
          //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
          zoomToAccuracy: true,
          //  定位按钮的排放位置,  RB表示右下
          buttonPosition: "RB"
        });

        geolocation.getCurrentPosition();
        AMap.event.addListener(geolocation, "complete", onComplete);
        AMap.event.addListener(geolocation, "error", onError);

        function onComplete(data) {
          // data是具体的定位信息
          console.log(data);
        }

        function onError(data) {
          // 定位出错
          console.log(data);
          // 失败之后调用这个方法,使用IP定位获取当前城市信息
          that.getLngLatLocation();
        }
      });
    },
    // IP定位获取当前城市信息
    getLngLatLocation() {
      AMap.plugin("AMap.CitySearch", function() {
        var citySearch = new AMap.CitySearch();
        citySearch.getLocalCity(function(status, result) {
          if (status === "complete" && result.info === "OK") {
            // 查询成功,result即为当前所在城市信息
            console.log(result)
          }
        });
      });
    }
  }
};
</script>

输出结果:
在这里插入图片描述

Logo

前往低代码交流专区

更多推荐