一:关于小程序集成集成百度地图SDK可以参考百度地图开放平台官方文档:http://lbsyun.baidu.com/index.php?title=wxjsapi

二:集成百度SDK后获取定位经纬度,发现有一定的偏差,此时可以采用百度地图官网提供的纠偏接口进行经纬度的纠偏,纠偏接口地址:https://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=113.540124&y=23.517846

参数说明:from=0  代表传入真实经纬度    to=4 代表转换成百度纠偏后的经纬度  x和y代表需要纠偏的经纬度

接口返回结果:{"error":0,"x":"MTEzLjU1MTgwNzMy","y":"MjMuNTIxMjMzOTEwNjQ2"}

接口返回参数说明:x、y分别是纠偏后的经纬度值,base64编码格式,大家可根据base64编码转换成明码,如果是在百度地图上定位则不需要转换,他们API支持这格式。

在小程序中:可以使用小程序本身携带的网络请求工具请求纠偏接口:

 //获取百度坐标getBdLocation: function() {var that = this;var BMap = new bmap.BMapWX({ak: '百度地图开放平台注册应用时生成的AK'});var fail = function(data) {console.log(data)};var success = function(data) {wxMarkerData = data.wxMarkerData;that.setData({markers: wxMarkerData});wx.request({url: 'https://api.map.baidu.com/ag/coord/convert', data: {from: 0,to: 4,x: wxMarkerData[0].longitude,y: wxMarkerData[0].latitude,},method:'GET',header: {'content-type': 'application/json' // 默认值},success(res) {//获取纠偏后的经纬度var longitude = Base64.decode(res.data.x);var latitude = Base64.decode(res.data.y);console.log(res.data)that.setData({location: {latitude: latitude,longitude: longitude}});}})}BMap.regeocoding({fail: fail,success: success,iconPath: '../../img/marker_red.png',iconTapPath: '../../img/marker_red.png'});},

Basee64编解码工具类

function base64_encode(str) { // 编码,配合encodeURIComponent使用var c1, c2, c3;var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var i = 0, len = str.length, strin = '';while (i < len) {c1 = str.charCodeAt(i++) & 0xff;if (i == len) {strin += base64EncodeChars.charAt(c1 >> 2);strin += base64EncodeChars.charAt((c1 & 0x3) << 4);strin += "==";break;}c2 = str.charCodeAt(i++);if (i == len) {strin += base64EncodeChars.charAt(c1 >> 2);strin += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));strin += base64EncodeChars.charAt((c2 & 0xF) << 2);strin += "=";break;}c3 = str.charCodeAt(i++);strin += base64EncodeChars.charAt(c1 >> 2);strin += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));strin += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));strin += base64EncodeChars.charAt(c3 & 0x3F)}return strin
}function base64_decode(input) { // 解码,配合decodeURIComponent使用var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output = "";var chr1, chr2, chr3;var enc1, enc2, enc3, enc4;var i = 0;input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");while (i < input.length) {enc1 = base64EncodeChars.indexOf(input.charAt(i++));enc2 = base64EncodeChars.indexOf(input.charAt(i++));enc3 = base64EncodeChars.indexOf(input.charAt(i++));enc4 = base64EncodeChars.indexOf(input.charAt(i++));chr1 = (enc1 << 2) | (enc2 >> 4);chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);chr3 = ((enc3 & 3) << 6) | enc4;output = output + String.fromCharCode(chr1);if (enc3 != 64) {output = output + String.fromCharCode(chr2);}if (enc4 != 64) {output = output + String.fromCharCode(chr3);}}return utf8_decode(output);
}function utf8_decode(utftext) { // utf-8解码var string = '';let i = 0;let c = 0;let c1 = 0;let c2 = 0;while (i < utftext.length) {c = utftext.charCodeAt(i);if (c < 128) {string += String.fromCharCode(c);i++;} else if ((c > 191) && (c < 224)) {c1 = utftext.charCodeAt(i + 1);string += String.fromCharCode(((c & 31) << 6) | (c1 & 63));i += 2;} else {c1 = utftext.charCodeAt(i + 1);c2 = utftext.charCodeAt(i + 2);string += String.fromCharCode(((c & 15) << 12) | ((c1 & 63) << 6) | (c2 & 63));i += 3;}}return string;
}module.exports = {encode: base64_encode,decode: base64_decode
}

微信小程序 百度SDK定位 坐标纠偏相关推荐

  1. 解决通过微信小程序获取的定位坐标在百度地图渲染误差过大问题

    微信小程序可以获取两种坐标系的经纬度,分别为WGS84(大地坐标系)和GCJ02(国测局坐标系)而百度却是在其基础上进行加密形成了自己的一套坐标系bd09(百度坐标系),如果直接用微信小程序获取的经纬 ...

  2. 腾讯地图微信小程序JavaScript SDK

    简介 腾讯位置服务为微信小程序提供了基础的标点能力.线和圆的绘制接口等地图组件和位置展示.地图选点等地图API位置服务能力支持,使得开发者可以自由地实现自己的微信小程序产品. 在此基础上,腾讯位置服务 ...

  3. 微信小程序-百度AI语音识别——(一)

    微信小程序-百度AI语音识别--(一) 一.百度AI 某天闲来无事在CSDN上看到有大神用百度语音识别+图灵机器人做了一个可以语音聊天(调戏人工智障 )的小demo,觉得挺有趣的,也想着实现一下. 百 ...

  4. 微信小程序实现简单定位功能

    微信小程序实现简单定位功能,简单易读,获取经纬度信息 在pages下创建一个单页如local local.js如下 var app = getApp() Page({ data:{latitude:' ...

  5. uniapp:微信小程序,获取定位省市区街道信息

    关于微信小程序定位省市区信息,超详细教程,傻瓜式操作,根据我的文章一步一步操作即可实现定位. 准备工作,申请腾讯位置服务微信小程序JavaScript SDK 1.第一步先申请密匙,进入key设置 2 ...

  6. 微信小程序百度地图API移动选点

    微信小程序百度地图API移动选点 本文首发微信小程序百度地图API移动选点 因为业务需要使用百度地图API,参考一位大佬编写腾讯API的思路和方法,改造成百度地图API移动选点. 思路: wxml前端 ...

  7. uniapp 微信小程序,开启定位权限,permission : scope.userLocation

    uniapp 微信小程序,开启定位权限,scope.userLocation 问题 在网上看了好多帖子,一言两语,想骂人, 解决 注意uniapp项目在manifest.json 文件下配置,不要迷路 ...

  8. 蚂蚁分类信息系统原生微信小程序百度小程序

    蚂蚁分类信息系统原生微信小程序百度小程序,系统采用uniapp开发,小程序接口独立开发,兼容蚂蚁分类信息系统数据库.支持微信支付,百度支付

  9. onenetsim定位功能吗_微信小程序新增后台定位功能,你会卸载地图APP用微信导航吗...

    [PConline]8月8日,根据微信官方发布的消息显示,小程序新增后台定位功能,并对自动化测试功能进行了升级.据介绍,为了满足线路导航.路线记录等服务场景下,小程序需要长时间持续定位来提供服务.当用 ...

  10. 浅谈微信小程序的功能定位和使用场景

    作者主页:Designer 小郑 作者简介:浙江某公司软件工程师,负责开发管理公司OA.CRM业务系统,全栈领域优质创作者,CSDN学院.蓝桥云课认证讲师,开发过20余个前后端分离实战项目,主要发展方 ...

最新文章

  1. 2021-04-09 随机模拟—蒙特卡洛方法 Matlab代码实现
  2. 遍历矩阵每一行穷举_LeetCode:二维数组—旋转矩阵
  3. java连接stk外部接口_SLWSTK无线开发工具上的外扩串口如何使用(虚拟串口/VCOM)...
  4. 玩转SSRS第六篇---客户端报表进阶
  5. Bootstrap HTML 编码规范之语言属性
  6. 对象序列化与反序列化(二进制 byte[])
  7. css中表居中,CSS DIV中表格居中显示
  8. 【紫书第八章】算法的时间优化设计
  9. json离线解析格式化工具
  10. oracle根据关键字搜索存储过程
  11. 100句记住7000单词
  12. 【VLC开发】libvlc_new函数参数
  13. GMap.NET入门详细教程【2】-------- 初始化并加载一张地图
  14. 汽车门阈值防抱死系统abs
  15. Rocket Chip 介绍
  16. 学计算机要学数学么,学计算机数学要求高吗 数学不好怎么办?
  17. word标尺随缩进移动_在Word中在标尺上设置缩进和制表符时如何获取详细的度量...
  18. (PKCS1) RSA 公私钥 pem 文件 提取 公私钥 e d 和 模数 n
  19. 申宝证券-银行股午后集体异动拉升
  20. 用U盘给服务器做系统用在pe里分区吗,如何用U盘装系统并给硬盘分区

热门文章

  1. 多路测温系统C51语言,基于单片机的多路温度检测系统的.docx
  2. python爬取豆瓣电影top250并保存为xlsx_批量抓取豆瓣电影TOP250数据
  3. 基于c语言的象棋游戏-附带人机算法
  4. 电子元件的测量方法及在电路中的作用
  5. java工作流引擎(j-roadflow)快速入门教程
  6. Activiti 工作流引擎 详解
  7. 新手淘客你必须知道的秘密
  8. 第六章 软件项目质量管理
  9. 独创圆柱形投影,索尼高透光HOE全息显示方案详解
  10. 糖豆推荐系统第一期开发与评估报告