2019-07-24

使用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 // 牌号

                    );

                  });

                }

              });

            }

          });

        });

      });

    }

你可能感兴趣的:(2019-07-24)