美文网首页
vue高德地图获取当前位置(五步实现)

vue高德地图获取当前位置(五步实现)

作者: 顺小星 | 来源:发表于2020-06-01 11:33 被阅读0次
前言:官网申请密钥:https://lbs.amap.com
一、安装依赖
npm install vue-amap --save
二、增加配置

webpack.config.js 配置文件中配置AMap

entry: {
      app: './src/main.js'
  },
externals:{
      "AMap": "AMap",
  }

index.html中引入高德appkey

<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=你的key"></script>
三、创建文件

创建一个名为positionLocation.js的文件,文件内容如下:

/**
 * 高德地图定位
 * @type {{}}
 */
const location = {
  initMap(id) {
    let mapObj = new AMap.Map(id, {})
    let geolocation;
    mapObj.plugin(['AMap.Geolocation'], function() {
      geolocation = new AMap.Geolocation({
        enableHighAccuracy: true, //  是否使用高精度定位,默认:true
        timeout: 10000, //  超过10秒后停止定位,默认:无穷大
        maximumAge: 0, // 定位结果缓存0毫秒,默认:0
        convert: true, // 自动偏移坐标,偏移后的坐标为高德坐标,默认:true
        showButton: true, //  显示定位按钮,默认:true
        buttonPosition: 'LB', // 定位按钮停靠位置,默认:'LB',左下角
        buttonOffset: new AMap.Pixel(10, 20), //  定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
        showMarker: true, //  定位成功后在定位到的位置显示点标记,默认:true
        showCircle: true, //  定位成功后用圆圈表示定位精度范围,默认:true
        panToLocation: true, //  定位成功后将定位到的位置作为地图中心点,默认:true
        zoomToAccuracy: true //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
      })
      mapObj.addControl(geolocation)
      geolocation.getCurrentPosition()
    })
    return geolocation;
  }
}
export default location

四、引入js文件

在要用到相关定位功能的页面引入该js文件

import AMap from 'AMap'
import location from '../../javascript/positionLocation.js'
export default {
    data() {
        return {
            // 高德地图获取当前位置
            location: '',
            lat: 0,
            lng: 0,
      }
  },
        
    mounted() {
      this.getLocation(); // 调用获取地理位置
    },
    methods: {  
      /** 获取高德地图定位 */
      getLocation() {
        let _that = this
        let geolocation = location.initMap('map-container') // 定位
        AMap.event.addListener(geolocation, 'complete', result => {
          console.log(result)
          _that.lat = result.position.lat
          _that.lng = result.position.lng
          _that.location = result.formattedAddress
        })
      },
五、运行结果
image.png
祝君成功~

相关文章

网友评论

      本文标题:vue高德地图获取当前位置(五步实现)

      本文链接:https://www.haomeiwen.com/subject/ntyjzhtx.html