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


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图片平滑连续滚动插件
Apr 27 Javascript
制作高质量的JQuery Plugin 插件的方法
Apr 20 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
Jan 16 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
Jan 26 Javascript
js闭包的用途详解
Nov 09 Javascript
JQuery动画与特效实例分析
Feb 02 Javascript
JavaScript实现列表分页功能特效
May 15 Javascript
jQuery实现HTML表格单元格的合并功能
Apr 06 Javascript
基于bootstrap插件实现autocomplete自动完成表单
May 07 Javascript
JavaScript中闭包的写法和作用详解
Jun 29 Javascript
JS匹配日期和时间的正则表达式示例
May 12 Javascript
vue实现动态列表点击各行换色的方法
Sep 13 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
优化使用mysql存储session的php代码
2008/01/10 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
一个简单的php路由类
2016/05/29 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python实现超简单的视频对象提取功能
2018/06/04 Python
Django中使用Celery的方法示例
2018/11/29 Python
python远程连接MySQL数据库
2019/04/19 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
公司慰问信范文
2015/03/23 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
《雷雨》教学反思
2016/02/20 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL