微信小程序 腾讯地图显示偏差问题解决


Posted in Javascript onJuly 27, 2019

背景

在小程序中使用map组件,可以调用腾讯地图的API,将一些固定的点标记到地图界面上,点的经纬度获取是通过android端百度地图API获取的,所以此时将这个位置点信息直接设置上去会出现偏差,而且偏差还比较大

小程序设置位置点

关于如何在map组件上设置位置点,详细请查看腾讯官方文档
首先看一下map组件:

<map id="map" longitude="113.324520" latitude="23.099994" scale="14" controls="{{controls}}" bindcontroltap="controltap" markers="{{markers}}" bindmarkertap="markertap" polyline="{{polyline}}" bindregionchange="regionchange" show-location style="width: 100%; height: 300px;"></map>

其markers是需要设置在地图界面的位置点数组,数组中的元素就是一个对象。

markers: [{
   iconPath: "/resources/others.png",
   id: 0,
   latitude: 23.099994,
   longitude: 113.324520,
   width: 50,
   height: 50
  },
  iconPath: "/resources/others.png",
   id: 0,
   latitude: 23.094994,
   longitude: 113.424520,
   width: 50,
   height: 50
  }],

这里的latitude和longitude如果直接给其他地图定位的点,那么相同的这个点位置,在小程序中会出现偏差;

原因

小程序中的定位方式默认的是wgs84,而百度地图中使用的是BD09 ,还有gcj02。所以这里会出现偏差。

解决方案

使用离线的js库gcoord,将位置信息进行一次转换;

首先下载这个js库,放至某一个目录下,我这里是utils下

在需要的界面导入

import gcoord from '../../../utils/gcoord.js'

调用转换函数

var result = gcoord.transform(
       [resArr[i].JD, resArr[i].WD],  // 经纬度坐标
       gcoord.BD09,         // 当前坐标系(百度)
       gcoord.GCJ02);

这里在小程序中修改为gcj02,国测数据,因此转为gcj02;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用jquery来定位
Feb 20 Javascript
js异或加解密效果代码
Jun 25 Javascript
小型js框架veryide.librar源代码
Mar 05 Javascript
js parseInt(&quot;08&quot;)未指定进位制问题
Jun 19 Javascript
jquery实现保存已选用户
Jul 21 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
Oct 09 Javascript
JavaScript实现下拉菜单的显示和隐藏
Jan 05 Javascript
详解利用Angular实现多团队模块化SPA开发框架
Nov 27 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
Jan 18 jQuery
cocos2dx+lua实现橡皮擦功能
Dec 20 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
Apr 19 Javascript
Angular进行简单单元测试的实现方法实例
Aug 16 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 #Javascript
基于ssm框架实现layui分页效果
Jul 27 #Javascript
layUI实现前端分页和后端分页
Jul 27 #Javascript
layui实现数据分页功能(ajax异步)
Jul 27 #Javascript
layui实现数据表格table分页功能(ajax异步)
Jul 27 #Javascript
layui实现数据分页功能
Jul 27 #Javascript
layUI实现列表查询功能
Jul 27 #Javascript
You might like
PHP 中文处理技巧
2010/04/25 PHP
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
php实现 master-worker 守护多进程模式的实例代码
2019/07/20 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
js转义字符介绍
2013/11/05 Javascript
node.js中的console用法总结
2014/12/15 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
Python求导数的方法
2015/05/09 Python
深入理解python中的select模块
2017/04/23 Python
python pyheatmap包绘制热力图
2018/11/09 Python
详解python中递归函数
2019/04/16 Python
python实现ip地址的包含关系判断
2020/02/07 Python
使用python处理题库表格并转化为word形式的实现
2020/04/14 Python
python如何代码集体右移
2020/07/20 Python
JAVA和C++的区别
2013/10/06 面试题
几道数据库的概念性面试题
2014/05/30 面试题
旅游管理专业学生求职信
2013/09/28 职场文书
个人实习生的自我评价
2014/02/16 职场文书
集中整治工作方案
2014/05/01 职场文书
团日活动总结书
2014/05/08 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
三行辞职书范文
2015/02/26 职场文书