vue使用高德地图获取定位

先在vue.config.js中配置

module.exports = {
  lintOnSave: false,
  configureWebpack: {
    externals: {
      AMap: "AMap",
    },
  },
}

<template>
  <div>
    <el-input v-model="lnglat">
      <el-button slot="append" icon="el-icon-search" type="primary" @click="toMap">添加</el-button>
    </el-input>
    <el-drawer title="我是地图" :visible.sync="mapVisible" :with-header="false" size="60%">
      <div id="map" style="width: 100%;height: 100%;"></div>
    </el-drawer>
  </div>
</template>

<script>

let map = null; //高德地图
export default {
  data() {
    return {
      lnglat: "",
      mapVisible:false
    };
  },
  methods: {
    getMap() {
      let _this = this;
      //创建地图
      map = new AMap.Map("map", {
        //mapStyle: 'amap://styles/grey',
        zoom: 13,
        center: [120.220876, 33.423722]
      });
      //地图点击事件
      map.on("click", showInfoClick);
      function showInfoClick(e) {
        map.clearMap();//清理地图
        let lng = e.lnglat.getLng(); //获取经度
        let lat = e.lnglat.getLat(); //获取纬度
        //marker点
        let marker = new AMap.Marker({
          position: [lng, lat],
          offset: new AMap.Pixel(-13, -30)
        });
        _this.lnglat = lng + "," + lat;//将经纬度绑定至input输入框
        map.add(marker); //加载点
        map.setFitView(); //缩放至地图
      }
    },
    //展示抽屉,执行获取坐标经纬度的方法
    toMap() {
      this.mapVisible = true;
      setTimeout(() => {
        //调用方法创建地图
        this.getMap();
      }, 0);
    }
  }
};
</script>

<style scoped>
</style>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值