E企盈营销工具技术服务商 热线:4006-838-530

实现微信小程序精准定位

E企盈直播平台营销卖货系统

我们一般的小程序定位是通过官方小程序的方法进行定位,然后通过百度api进行通过坐标获取当前位置的详细信息wx.getLocation(OBJECT)获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用;当用户点击“显示在聊天顶部”时,此接口可继续调用wx.getLocation({  type: ‘wgs84’,  success: function(res) {    var latitude = res.latitude    var longitude = res.longitude    var speed = res.speed    var accuracy = res.accuracy  }})微信小程序官方文档有介绍:文档地址点击打开链接这样获取到的定位不是很准确,这样的原因是转百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间没有进行互转.当前互联网地图的坐标系现状地球坐标 (WGS84)国际标准,从专业GPS 设备中取出的数据的坐标系国际地图提供商使用的坐标系火星坐标 (GCJ-02)也叫国测局坐标系中国标准,从国行移动设备中定位获取的坐标数据使用这个坐标系国家规定: 国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。百度坐标 (BD-09)百度标准,百度 SDK,百度地图,Geocoding 使用(本来就乱了,百度又在火星坐标上来个二次加密)开发过程需要注意的事从设备获取经纬度(GPS)坐标如果使用的是百度sdk那么可以获得百度坐标(bd09)或者火星坐标(GCJ02),默认是bd09如果使用的是ios的原生定位库,那么获得的坐标是WGS84如果使用的是高德sdk,那么获取的坐标是GCJ02互联网在线地图使用的坐标系火星坐标系:iOS 地图(其实是高德)Gogole地图搜搜、阿里云、高德地图百度坐标系:当然只有百度地图WGS84坐标系:国际标准,谷歌国外地图、osm地图等国外的地图一般都是这个不过这些都可以通过 进行转化  浏览器中进行使用方法:引入需要的js ——coordtransform  npm地址:https://www.npmjs.com/package/coordtransform浏览器端的具体用法:   //首先引入需要用到的js: //国测局坐标(火星坐标,比如高德地图在用),百度坐标,wgs84坐标(谷歌国外以及绝大部分国外在线地图使用的坐标)   //百度经纬度坐标转国测局坐标    var bd09togcj02 = coordtransform.bd09togcj02(116.404, 39.915);    //国测局坐标转百度经纬度坐标    var gcj02tobd09 = coordtransform.gcj02tobd09(116.404, 39.915);    //wgs84转国测局坐标    var wgs84togcj02 = coordtransform.wgs84togcj02(116.404, 39.915);    //国测局坐标转wgs84坐标    var gcj02towgs84 = coordtransform.gcj02towgs84(116.404, 39.915);    console.log(bd09togcj02);    console.log(gcj02tobd09);    console.log(wgs84togcj02);    console.log(gcj02towgs84);    //result    //bd09togcj02:   [ 116.39762729119315, 39.90865673957631 ]    //gcj02tobd09:   [ 116.41036949371029, 39.92133699351021 ]    //wgs84togcj02:  [ 116.41024449916938, 39.91640428150164 ]    //gcj02towgs84:  [ 116.39775550083061, 39.91359571849836 ]小程序端的具体用法://此处的js可以通过下方的github链接进行下载var zhuan_dingwei = require(‘../../libs/dingwei.js’);//获取应用实例const app = getApp()Page({  data: {    //默认未获取地址    hasLocation: false,    info:”,    longitude:”,    latitude:”  },  getlocal_dingweui:function(e){    var that=this;    wx.getLocation({      type: ‘wgs84’,      success: function (res) {        that.setData({          longitude : res.longitude,         latitude : res.latitude        })        console.log(that.data.longitude)        console.log(that.data.latitude)//进行地理位置坐标的转化        var gcj02tobd09 = zhuan_dingwei.wgs84togcj02(that.data.longitude, that.data.latitude);        console.log(gcj02tobd09);        that.setData({          longitude: gcj02tobd09[0],          latitude: gcj02tobd09[1]        })        console.log(‘——-‘)        that.get_baidu_dingwei()      }    })  },  onLoad: function () {   this.getlocal_dingweui();   },   get_baidu_dingwei:function(){    console.log(‘———–‘)    var that = this;    console.log(that.data.longitude)    console.log(that.data.latitude)   //通过后台进行转化当前地理位置的详细情况    wx.request({      url: ‘https://baoxian.grwlkj.com/home/index/get_user_city’,      method: ‘get’,      data: {        longitude: that.data.longitude,        latitude: that.data.latitude      },      success(res) {        console.log(“res”, res)        var info = res.data.data        that.setData({          info: info,        })      }    })  },  onShow: function () {    // 调用接口  }})github下载地址:点击打开链接

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 实现微信小程序精准定位
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏