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


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 相关文章推荐
extjs fckeditor集成代码
May 10 Javascript
JavaScript中跨域调用Flash的方法
Aug 11 Javascript
JavaScript 基本概念
Jan 20 Javascript
谈谈JavaScript自定义回调函数
Oct 18 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
Dec 18 Javascript
实例讲解避免javascript冲突的方法
Jan 03 Javascript
关于Vue.js一些问题和思考学习笔记(1)
Dec 02 Javascript
jQuery实现的背景颜色渐变动画效果示例
Mar 24 jQuery
详解基于vue-cli3.0如何构建功能完善的前端架子
Oct 09 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
May 22 Javascript
JavaScript中while循环的基础使用教程
Aug 11 Javascript
对vue生命周期的深入理解
Dec 03 Vue.js
基于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
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
PHP中基本符号及使用方法
2010/03/23 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
Javascript中Eval函数的使用
2010/03/23 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
简单实现js鼠标跟随效果
2020/08/02 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
Vue组件之极简的地址选择器的实现
2018/05/31 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
python的绘图工具matplotlib使用实例
2014/07/03 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
非常漂亮的CSS3百叶窗焦点图动画
2016/02/24 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
制衣厂各岗位职责
2013/12/02 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
捐助倡议书
2015/01/19 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书