vue获取微信定位
1.下载依赖
npm install weixin-js-sdk --save-dev
2.在vue页面使用
<template>
<div class="home">
<img alt="Vue logo" src="../assets/logo.png">
<HelloWorld msg="Welcome to Your Vue.js App"/>
</div>
</template>
<script>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'
import wx from "weixin-js-sdk";
export default {
name: 'Home',
data(){
return {
signData: {
checkType: 0,
address: "",
longitude: "",
latitude: "",
remark: "",
checkTime: ""
}
}
},
created(){
this.wxRegister();
},
components: {
HelloWorld
},
methods:{
async wxRegister() {
// 这边的接口请换成你们自己的
var that = this;
await this.$axios({
method: "GET",
url: "/frontapi/mm/wxindex/share",
params: {
requestUrl: encodeURIComponent(window.location.href)
}
})
.then(res => {
wx.config({
debug: false, // 开启调试模式
appId: res.data.appId, // 必填,公众号的唯一标识
timestamp: res.data.timestamp, // 必填,生成签名的时间戳
nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
signature: res.data.signature, // 必填,签名,见附录1
jsApiList: [
"checkJsApi",
"getLocation",
"getNetworkType",
"previewImage"
]
});
})
.catch(error => {
console.log("errererererere");
});
wx.ready(res => {
console.log(that, "ggggggggggggggggggggg");
wx.getLocation({
type: "gcj02",
success: function(res) {
//var pointY = res.latitude; // 纬度,浮点数,范围为90 ~ -90
//var pointX = res.longitude; // 经度,浮点数,范围为180 ~ -180。
//获取经纬度有偏差,纠正
let x_PI = (3.14159265358979324 * 3000.0) / 180.0;
let lat = Number(res.latitude);
let lng = Number(res.longitude);
let z =
Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
let theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
var pointX = z * Math.cos(theta) + 0.0065;
var pointY = z * Math.sin(theta) + 0.006;
that.signData.latitude = pointY;
that.signData.longitude = pointX;
that.lat = pointY;
that.lng = pointX;
var wxaccuracy = res.accuracy;
var map = new BMap.Map("allmap");
var point = new BMap.Point(pointX, pointY);
var gc = new BMap.Geocoder();
gc.getLocation(point, function(rs) {
var addComp = rs.addressComponents;
if (addComp.province == addComp.city) {
that.signData.address =
addComp.province +
addComp.district +
addComp.street +
addComp.streetNumber;
} else {
that.signData.address =
addComp.province +
addComp.city +
addComp.district +
addComp.street +
addComp.streetNumber;
}
});
},
cancel: function(res) {
console.log(555555555555);
}
});
});
wx.error(function(res) {
});
},
}
}
</script>