h5的网站

2020-12-28 17:23 admin

h5的网站:实现微信小程序精准定位

这样获取到的定位不是很准确,这样的原因是转百度坐标 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地址:
浏览器端的具体用法:
 //首先引入需要用到的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.429, 39.921 ]
 //wgs84togcj02: [ 116.438, 39.964 ]
 //gcj02towgs84: [ 116.39775550083061, 39.936 ]

小程序端的具体用法:

//此处的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下载地址:



微信小程序支付中的prepay_id获取方法,以及微信支付统一签名算法闭坑 20159