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


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 相关文章推荐
定义JavaScript二维数组采用定义数组的数组来实现
Dec 09 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
Jun 13 Javascript
jQuery中appendTo()方法用法实例
Jan 08 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
Sep 30 Javascript
7个去伪存真的JavaScript面试题
Jan 07 Javascript
轻松搞定js表单验证
Oct 13 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
jQuery EasyUI 页面加载等待及页面等待层
Feb 06 Javascript
JS实现颜色动态淡化效果
Mar 06 Javascript
jQuery接受后台传递的List的实例详解
Aug 02 jQuery
详解vue项目首页加载速度优化
Oct 18 Javascript
js实现橱窗展示效果
Jan 11 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实现的在线人员函数库
2008/04/09 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
php计算一个文件大小的方法
2015/03/30 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
PHP框架性能测试报告
2016/05/08 PHP
在javascript中关于节点内容加强
2013/04/11 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
vue+element实现打印页面功能
2019/05/20 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
python中嵌套函数的实操步骤
2019/02/27 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
党员党性分析材料
2014/02/17 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
查摆问题整改措施
2014/10/24 职场文书
合作与交流自我评价
2015/03/09 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
python3中apply函数和lambda函数的使用详解
2022/02/28 Python