博客好久没更新了,可能是我懒了,也可能是最近太忙了。最近项目中有个需求,需要用到定位来查看用户的位置。
于是乎。。。。。

成功的流程

通过微信定位获取经纬度坐标 ==》拿到坐标后通过百度地图的坐标转换方法,最终获取精准定位显示在百度地图上。

  1. 百度地图定位,(失败)
    百度地图api给的文档很清楚,直接拷贝复制,更改成自己的秘钥就可以看到效果了,但是。。。

    我在福田,你却定到农林*(苹果手机定位是OK的,需求不能满足。需要继续解决。)*,难道是基站问题,疯狂查阅,疯狂百度,没一个方法是OK的,

  2. 换高德地图(失败)
    空余时间我研究了一下高德地图,后来也是偏差好远。在此就不赋图片了。

  3. 后来后来想到了微信的内置方法,调微信的定位,于是乎。。。。。。

    1. 调微信定位首先要签名,于是就开始先调后端给的签名接口。
 getWx(){let url = window.location.href.split('#')[0];this.axios.post(this.basURL.votUrl+'/home/getWx',{"data":{"url":url,},"token": this.$store.state.token,}).then(res=>{if(res.data.errorinfo == null){this.sellq = res.data.data;wx.config({debug:false,            // 因为在手机上测试没法打印,当debug为true时,所有的返回值都会在手机上alert出来appId:this.sellq.appId, // 必填,公众号唯一标识timestamp:this.sellq.timestamp, // 必填,生成签名的时间戳nonceStr:this.sellq.nonceStr, // 必填,生成签名的随机串signature:this.sellq.signature,// 必填,签名jsApiList: [   'getLocation'] // 必填,需要使用的JS接口列表,需要用到什么接口就去开发者文档查看相应的字段名});wx.error(function(res){alert("签名失败");// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。});wx.ready(function(res){console.log('签名成功');})}}).catch(error=>{console.log(error);})},
  1. 调定位方法(此处结合了百度地图转化坐标的方法。)
    点击查看百度地图案例文档
    点击查看微信定位文档

vue 获取微信定位方法,
签名通过之后,我们就能调微信定位的方法了,微信定位成功会返回经纬度坐标,这时拿到经纬度坐标通过百度地图转换坐标,就可以在百度地图上显示了,

 getaddress(){let that = this;wx.getLocation({type: "wgs84", // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'success: function(res) {that.latitude = res.latitude;     // 赋值微信的经纬度that.longitude = res.longitude;var speed = res.speed; // 速度,以米/每秒计var accuracy = res.accuracy; // 位置精度// 坐标转换var gpsPoint = new BMap.Point(that.longitude,that.latitude);// 创建地图var map = new BMap.Map("allmap");  map.centerAndZoom(gpsPoint,15);       // 用城市名设置地图中心点 map.enableScrollWheelZoom();     //启动滚轮放大缩小,默认禁用map.enableContinuousZoom();       //连续缩放效果,默认禁用//坐标转换完之后的回调函数var translateCallback = function (data){// console.log(data)if(data.status === 0) {let succlng = data.points[0];//获取转化后的坐标传入vuex里面。that.$store.state.lng = succlng.lng;that.$store.state.lat = succlng.lat;map.centerAndZoom(data.points[0],15);       // 用城市名设置地图中心点 var marker = new BMap.Marker(data.points[0]);  // 创建标注,为要查询的地址对应的经纬度map.addOverlay(marker);// console.log(succlng) // 通过经纬度反查 获取地址   重要误删//  var geoc = new BMap.Geocoder();//  geoc.getLocation(new BMap.Point(data.points[0].lng,data.points[0].lat), function(result){//     if (result){//         // address=result.address;//          console.log(JSON.stringify(result));//     }//  });}}setTimeout(function(){var convertor = new BMap.Convertor();var pointArr = [];pointArr.push(gpsPoint);convertor.translate(pointArr, 1, 5, translateCallback)}, 800);},// 用户拒绝定位cancel: function() {Dialog.confirm({title: '定位拒绝。',message: '您好!由于您拒绝获取地理位置。我们将无法获取您的位置。',}).then(() => {that.$router.back()}).catch(() => {that.$router.back()});  },// 定位失败fail: (error) => {console.log('失败了');},});wx.error(function(res) {console.log("wx-js初始化: " + res);}); },

通过微信定位转化百度地图,成功效果图。

百度地图定位偏差了吗?用微信定位完美解决。相关推荐

  1. android百度地图定位自定义图标,百度地图SDK集成及根据坐标实现定位(android studio开发)...

    百度地图SDK集成及根据坐标实现定位(android studio开发) 百度地图SDK集成及根据坐标实现定位(android studio开发) 1.下载百度地图SDK 链接:http://lbsy ...

  2. android开发百度地图坐标偏差,利用百度地图Android sdk高仿微信发送位置功能及遇到的问题...

    接触了百度地图开发平台半个月了,这2天试着模仿了微信给好友发送位置功能,对百度地图的操作能力又上了一个台阶 我在实现这个功能的时候,遇到一些困难,可能也是别人将会遇到的困难,特在此列出 1.在微信发送 ...

  3. 百度地图开发:调用jsAPI实现实时定位的解决方案及常见问题

    项目说明 建议使用异步加载,避免F12控制台出现阻塞等提示: 电脑使用浏览器定位时,由于没有GPS,会出现无法定位(fail8)等错误提示,属于正常: 手机端时候,尤其是华为系列(安卓系统)无法正常定 ...

  4. 百度地图jar包冲突,特别是定位包冲突com/baidu/location/Address/$a.class。

    本人在使用百度地图基础定位sdk时发现一个问题,jar包冲突于是通过网上找到解决答案 defaultConfig { multiDexEnabled true } 在6.0以上版本,得到完美解决. 当 ...

  5. 百度地图开发参数设置正确,却定位到大西洋海域去了,定位失败解决方案

    我在做百度地图定位时直接定位到大西洋海域去了,查看定位经纬度是,其他地址参数为空,后来才清楚是经纬度获取失败,原因在于 百度地图API在 android 6.0以上机型上需要申请权限 官方百度地图定位 ...

  6. 百度地图后台获取数据,根据经纬度定位标记点,弹出通知窗口

    通过ajax获取后台的经纬度信息和其他信息,根据经纬度信息在地图上显示标记点,点击标记点显示通知窗口 <body> <div id="allmap">< ...

  7. 关于百度地图 BMap.InfoWindow 只显示最后一条信息解决方法

    转摘:http://blog.csdn.net/guo_love_peng/article/details/8674230 今天遇到这个问题了.后面再网上搜搜,发现都是你抄我,我转载你的,后来无意看到 ...

  8. 百度地图路线规划onchange事件触发两次 冲突解决

    var map = new BMap.Map("allmap",{enableMapClick:false});     map.centerAndZoom("福州市&q ...

  9. android 微信回弹,完美解决safari、微信浏览器下拉回弹效果。

    完美解决safari.微信浏览器下拉回弹效果,只保留局部回弹效果. CSS代码 .box{ overflow: auto; -webkit-overflow-scrolling: touch; } H ...

  10. 百度地图使用,小车,图标的定位

    小车图标的定位问题 <script type="text/javascript"> var map = new BMap.Map("container&quo ...

最新文章

  1. django里static配置静态文件的引入
  2. 如何在SQL Management Studio中指定其他端口号?
  3. BZOJ3526[Poi2014]Card——线段树合并
  4. C语言模拟实现(一)----- 优先权抢占式时间片调度算法
  5. redis重启命令_这可能是你见过最全面的Redis主从复制原理
  6. 深入理解lua的协程coroutine
  7. C#Winform窗体实现服务端和客户端通信例子(TCP/IP)
  8. java 当地时间_【JAVA】获取当地时间
  9. 10月21日下午PHP常用函数
  10. 淘宝技术发展(引言)、技术发展(个人网站)
  11. 进击的AssetBundles和它的工具们
  12. java二次方程式答案_二次方程式Java?
  13. MySQL最好的写的_mysql中写sql的好习惯
  14. 高盛:大象转身,开启科技金融转型之路
  15. SM3密码杂凑算法实现及说明
  16. 【渝粤教育】国家开放大学2018年春季 8635-22T老年人中医体质辨识与养 参考试题
  17. 佛罗里达州立大学计算机专业排名,佛罗里达州立大学有哪些专业_专业排名(QS世界排名)...
  18. Java对象的生与死
  19. 基于Mui与H5+开发webapp的Android原生工程打包步骤(使用新版本5+SDK与Android studio)(部分内容转自dcloud官网)...
  20. Shell脚本编程实战

热门文章

  1. Mac 破解Adobe Photoshop CS6
  2. 论文在线免费查重推荐
  3. 异或c语言程序 次幂的关系,C语言中位运算异或“∧”的作用
  4. 论文框架和目录一样吗_纯干货 | 如何写好一篇职称论文,建议收藏
  5. Linux下对CPU频率进行调整
  6. ORB-SLAM2学习笔记——全局BA优化
  7. 二维对流扩散方程 差分 matlab,扩散方程的高精度加权差分格式
  8. 快递查询 快递查询.htm?dh=快递单号
  9. oralce9i安装总结
  10. 分析称手机网络电话改变公众通信习惯