我正在参加「掘金·启航计划」
一、在Vue项目中,可以通过使用百度地图JavaScript API来实现根据地址名称获取经纬度GPS的功能。具体步骤如下:
- 在index.html中添加百度地图JavaScript API的引用
<!-- 引入百度地图的JavaScript API -->
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=<your-ak>"></script>
其中,<your-ak>需要替换成你申请的百度地图开发者AK密钥。
- 在Vue组件的方法中调用地理编码函数
在组件的方法中,使用BMap.Geocoder类来进行地理编码操作。例如,我们可以定义一个名为getPointByAddress的方法,该方法接收一个地址字符串作为参数,并返回该地址的经纬度坐标。
export default {
methods: {
// 根据地址名称获取经纬度坐标
getPointByAddress(address) {
// 创建地理编码实例
const myGeo = new BMap.Geocoder();
return new Promise((resolve, reject) => {
// 对地址进行地理编码
myGeo.getPoint(address, (point) => {
if (point) {
// 地理编码成功,返回经纬度坐标对象
resolve(point);
} else {
// 地理编码失败
reject('地理编码失败');
}
}, '全国');
});
},
},
};
在以上代码中,首先创建了一个BMap.Geocoder实例。然后使用该实例的getPoint方法进行地理编码,将地址字符串作为参数传入。最后,通过Promise来处理地理编码异步请求的结果。
- 调用方法获取地址经纬度
在Vue组件中,可以通过调用getPointByAddress方法来获取指定地址的经纬度坐标。例如,在模板中添加一个输入框和一个按钮,当用户点击按钮时,会激发getLocation方法,并调用getPointByAddress方法来获取当前输入地址的经纬度坐标。
<template>
<div>
<input type="text" v-model="address" />
<button @click="getLocation">获取位置</button>
</div>
</template>
<script>
export default {
data() {
return {
address: '',
point: null,
};
},
methods: {
// 获取当前地址的经纬度坐标
async getLocation() {
try {
const point = await this.getPointByAddress(this.address);
this.point = point;
console.log('经度:', point.lng);
console.log('纬度:', point.lat);
} catch (error) {
console.error(error);
}
},
// 根据地址名称获取经纬度坐标
getPointByAddress(address) {
// 创建地理编码实例
const myGeo = new BMap.Geocoder();
return new Promise((resolve, reject) => {
// 对地址进行地理编码
myGeo.getPoint(address, (point) => {
if (point) {
// 地理编码成功,返回经纬度坐标对象
resolve(point);
} else {
// 地理编码失败
reject('地理编码失败');
}
}, '全国');
});
},
},
};
</script>
在以上代码中,当用户点击按钮时,会调用getLocation方法,该方法通过await来等待getPointByAddress异步函数的返回结果。如果地理编码成功,将返回经纬度坐标对象,并打印出其经度和纬度值。否则,会在控制台输出错误信息。
这样,就实现了在Vue项目中根据地址名称获取经纬度GPS的功能。
二、vue百度地图在地图上面选择点击位置,然后获取该位置的经纬度gps坐标值
mounted() { // 创建地图对象
const map = new BMap.Map('map-container'); // 设置地图中心点和缩放级别
const point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15); // 启用鼠标滚轮缩放功能
map.enableScrollWheelZoom(true); // 绑定地图点击事件
map.addEventListener('click', (e) => { // 获取点击位置的经度和纬度
const longitude = e.point.lng; const latitude = e.point.lat;
console.log(`Clicked position: (${longitude}, ${latitude})`);
});
}
在页面加载完成后使用BMap.Map()方法创建一个地图对象,设置中心点和缩放级别等属性。在地图上监听点击事件并获取经纬度gps坐标值,可以通过e.point.lng和e.point.lat来获取经度和纬度的值。