使用vue-cli框架创建的项目,微信公众号来获取当前的坐标位置,去百度地图申请你的ak,在index.html中引入两个js,在build/webpack.base.conf.js下配置百度地图,(自动获取)
在module.exports下创建一个新的externals对象,引用BMap在index.html中引入两个js一个是微信的sdk一个是百度的sdk,两个js都是引入线上的
在百度的后面放置你们申请的ak在mian.js只需要把你的微信js给声明一下,作为一个全部变量,截图为给截取全部,下面还需要一个Vue.use(wx)给生命
实现代码,单页面配置,你们可以运用组件
getaddress() {
const params = {
url: "http://nuoche.miyuke.com/" // 此处的路径为你访问地址的路径,如果错误百度地图无法授权
};
getlocationcity(params).then(res => { // 此处的getlocationcity方法是后台提供的,里面有你微信配置的字段
var that = this;
var getMsg = res.data.data;
wx.config({
debug: false, //生产环境需要关闭debug模式 测试环境下可以设置为true 可以在开发者工具中查看问题
appId: getMsg.appId, //appId通过微信服务号后台查看
timestamp: getMsg.timestamp, //生成签名的时间戳
nonceStr: getMsg.nonceStr, //生成签名的随机字符串
signature: getMsg.signature, //签名
// url:getMsg.url,//
// rawString:getMsg.rawString,
jsApiList: [
//需要调用的JS接口列表
"getLocation" //获取定位
]
});
wx.error(function() {
console.log("出错了");
});
wx.ready(function() { // 微信的起始配置
wx.getLocation({
type: "wgs84",
success: function(res) {
// console.log(res);
// debugger;
this.pointY = res.latitude; // 纬度
this.pointX = res.longitude; // 经度
let lng = ""; // 百度经度
let lat = ""; // 百度纬度
var convertor = new BMap.Convertor();
var ggPoint = new BMap.Point(this.pointX, this.pointY);
var pointArr = [];
pointArr.push(ggPoint);
convertor.translate(pointArr, 1, 5, data => {
console.log(this);
if (data.status == 0) {
lng = data.points[0].lng;
lat = data.points[0].lat;
console.log("百度经度", +lng);
console.log("百度纬度", +lat);
var point = new BMap.Point(lng, lat);
var geoc = new BMap.Geocoder();
geoc.getLocation(point, rs => {
console.log(this);
var addComp = rs.addressComponents;
that.city =
addComp.province +
"-" +
addComp.city +
"-" +
addComp.district;
console.log(this.city);
console.log(
addComp.province + // 省
", " +
addComp.city + // 市
", " +
addComp.district + // 区或县
", " +
addComp.street + // 所属街道
", " +
addComp.streetNumber // 牌号
);
});
}
});
}
});
});
});
}
网友评论