uniapp getlocation gcj02可以用了是怎么回事?
“最近发现uniapp的getlocation方法突然支持gcj02坐标系了,之前不是只支持wgs84吗?这是官方更新了新功能还是有什么特殊配置?有没有人知道具体原因或使用注意事项?”
        
          2 回复
        
      
      
        uniapp的getLocation支持gcj02坐标系了。这是高德地图使用的坐标系,之前可能不支持,现在官方更新了接口,开发者可以直接获取gcj02坐标,方便与高德地图等国内地图服务对接。
在uni-app中,getLocation 方法支持 gcj02 坐标系是因为高德地图(GCJ-02)作为国内广泛使用的地图服务,其坐标系已被uni-app框架纳入支持范围。这通常意味着uni-app已适配了高德地图SDK或相关API,允许开发者在获取设备地理位置时直接返回GCJ-02坐标,而不是默认的WGS-84坐标。
原因分析:
- 国内政策要求:中国对地理坐标有加密规定,GCJ-02(火星坐标系)是官方标准,用于高德、腾讯等地图服务。
- 开发者需求:许多应用集成高德地图,直接使用GCJ-02坐标可避免额外转换,简化开发流程。
- 框架更新:uni-app可能通过更新底层引擎(如HBuilder X版本升级)或插件,添加了对GCJ-02的原生支持。
使用方法:
在uni-app中,调用 uni.getLocation 时,指定 type 参数为 'gcj02' 即可获取GCJ-02坐标。示例代码:
uni.getLocation({
  type: 'gcj02',
  success: (res) => {
    console.log('纬度:', res.latitude);
    console.log('经度:', res.longitude);
  },
  fail: (err) => {
    console.error('获取位置失败:', err);
  }
});
注意事项:
- 确保HBuilder X和uni-app SDK为最新版本,以支持该功能。
- 在微信小程序等平台中,需检查平台是否支持GCJ-02(微信小程序默认使用GCJ-02)。
- 如果应用涉及多地图服务(如百度地图使用BD-09),可能仍需坐标转换。
总之,这是uni-app为适应中国市场而做的优化,方便开发者直接使用高德坐标系。如有问题,请检查文档或更新开发环境。
 
        
       
                     
                   
                    

