uniapp API获取定位有差异问题解决

在uniapp开发微信小程序时,碰到问题获取定位会出现问题,跟目前位置有几百米偏差

        官方示例:

uni.getLocation({
	type: 'wgs84',
	success: function (res) {
		console.log('当前位置的经度:' + res.longitude);
		console.log('当前位置的纬度:' + res.latitude);
	}
});

        按照示例来,会出现问题,改完以后: 

uni.getLocation({
  type: 'gcj02',
  isHighAccuracy:true,
  success: function(res) {
    state.value.longitude =  res.longitude
    state.value.latitude = res.latitude
    state.value.covers[0].longitude =  res.longitude
    state.value.covers[0].latitude = res.latitude
  },
  fail(error) {
    uni.showToast({
      title: '请勿频繁调用!',
      icon: 'none',
    })
    console.log('失败', error)
  }
})

问题的关建是在type属性要使用gcj02

GPS坐标(WGS84)是全球定位系统使用的坐标系,通常用于全球范围内的位置定位。而GCJ02(国测局坐标)是中国国家测绘局制定的一种地理坐标系,也称为火星坐标系,用于在中国境内进行位置定位。

区别主要体现在以下几个方面:

坐标偏移:由于安全和政策等原因,中国政府对GPS定位进行了加密偏移处理,导致GPS获取的坐标与实际位置存在一定的偏差。GCJ02是一种基于加密偏移后的坐标系,相对于GPS坐标有一定的偏移。
数据保护:使用GPS定位获取的坐标信息属于全球公开数据,而GCJ02坐标是经过国家加密处理的,相对于GPS坐标具有更高的数据保护性。
地图匹配:在中国,大部分地图应用都会使用GCJ02坐标系进行地图展示和位置匹配。如果直接使用GPS坐标在中国的地图上进行标注,可能会出现位置不准确的情况。
需要注意的是,GCJ02坐标并不是一个全球通用的坐标系,它主要适用于中国境内的地理定位。在应用开发中,如果需要在中国境内进行位置展示、导航等功能,建议使用GCJ02坐标系进行计算和显示。如果需要与国际通用的坐标系统进行交互,可以使用坐标转换算法将坐标数据转换为其他系统(如WGS84)的坐标。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/m0_61315972/article/details/132688779

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值