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

本文介绍了如何在Vue项目中使用高德地图获取用户当前位置。步骤包括安装vue-amap依赖,配置webpack.config.js,创建positionLocation.js文件实现定位功能,并在组件中引入和调用定位方法。
摘要由CSDN通过智能技术生成

一、安装依赖

npm install vue-amap --save

二、增加配置

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

entry: {

app: './src/main.js'

},

externals:{

"AMap": "AMap",

}

index.html中引入高德appkey

三、创建文件

创建一个名为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

祝君成功~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值