各大坐标系统的关系以及在uniapp中的应用

公司的业务涉及到了定位、地图等功能,在了解后发现坐标系也有好几种,这里做个简单总结。

各大坐标系简介及关系

  1. WGS84(World Geodetic System 1984)
  • 国际标准,常用于 GPS 定位。

  • 国际地图提供商使用

  • 在中国地区,直接使用 WGS84 会有一定的偏移(法律规定)。

  1. GCJ-02(火星坐标系)
  • 中国标准,由中国国家测绘局定义,对 WGS84 坐标加入了偏移。

  • 高德地图、腾讯地图等国内地图服务使用 GCJ-02 坐标系。

  1. BD-09(百度坐标系)
  • 在 GCJ-02 的基础上再次加密偏移得到的。

  • 仅百度地图使用

坐标系之间的转换

转换关系:WGS84 -> GCJ-02 -> BD-09

叠甲:转换函数都是问 AI 或者网上复制的,并不是我原创的。

因此没必要再复制一遍,不太尊重原创,这里给出代码的地址:https://github.com/wandergis/coordtransform/blob/master/index.js

在uniapp中的应用

uniapp 官方提供了 API 获取地理位置,uni.getLocation(),默认是 WGS84 坐标,如果需需要 GCJ-02 坐标,修改 type 参数即可,但需要配置SDK。

注意:uniapp 新版本已经取消对百度地图的支持。

简单使用:

js 复制代码
uni.getLocation({
    type: 'wgs84',
    success(res) {
        const gcj02Coords = wgs84ToGcj02(res.longitude, res.latitude);
    }
});

参考

坐标转换工具模块:https://github.com/wandergis/coordtransform

在线查询经纬度

相关推荐
kyriewen8 小时前
面试官说"打开你的AI工具"——我才发现,他考的根本不是写代码
前端·人工智能·面试
IT_陈寒9 小时前
Vue的双向绑定把我坑惨了,原来这个场景不能用
前端·人工智能·后端
hunterandroid9 小时前
[Android 从零到一] Compose LazyColumn 性能优化:key、稳定性与重组治理
android·前端
lichenyang4539 小时前
从一次团队邀请开始:用 React、NestJS 与 Socket.IO 做可靠的实时通知
前端
vtian9 小时前
一篇文章吃透 Monorepo:pnpm + Turborepo + Changesets 全流程实战(含 8 个踩坑)
前端
默_笙9 小时前
❗ 点击计数按钮,为什么"峨眉队"也跟着重新渲染?React.memo 说:我记住了
前端·javascript
315356691310 小时前
DeepSeek Harness 发布后,我没急着跑 Demo,先把 `.agents/` 翻了一遍
前端·后端·github
名字还没想好☜10 小时前
Next.js 用 Server Components 直连数据库:去掉 API 层的边界,和三条别踩的安全红线
前端·javascript·数据库·安全·react·next.js
学习zhao极致it10 小时前
2020全新React教程全家桶实战redux+antd+React Hooks前端js视频
前端
用户9210802628610 小时前
Bubble 消息操作区改造:复制、重新生成和反馈
前端