Java坐标转换工具:WGS84、GCJ-02、BD-09互转
需积分: 39 154 浏览量
更新于2024-07-09
收藏 42KB DOCX 举报
"该文档提供了一个Java实现的坐标转换工具类,主要涵盖了WGS84、火星坐标(GCJ-02)以及百度坐标(BD-09)之间的转换。这个工具类包括了多种坐标系统间的转换方法,如BD-09到GCJ-02,GCJ-02到BD-09,以及WGS84到火星坐标和反过来的转换。"
在Java编程中,坐标转换是非常重要的,尤其是在地理信息系统(GIS)和定位服务应用中。WGS84是全球广泛使用的地球坐标系统,而GCJ-02(也称为火星坐标)是中国大陆采用的加密坐标系统,BD-09是百度地图使用的坐标系统。以下是一些关键的知识点:
1. **WGS84坐标系统**:World Geodetic System 1984,是一种基于地球椭球模型的全球大地坐标系统,用于测量地理位置。
2. **火星坐标(GCJ-02)**:这是中国为了国家安全考虑对WGS84坐标进行加密处理后得到的坐标系统。GCJ-02坐标与WGS84坐标之间存在一定的偏移。
3. **百度坐标(BD-09)**:百度地图使用的坐标系统,是在火星坐标基础上进一步加密的,通常会比GCJ-02坐标有更大的偏移。
4. **坐标转换算法**:
- **GCJ-02到BD-09(Bd09McToWgs84)**:通过双曲正弦函数进行加密,将火星坐标转换为百度坐标。
- **BD-09到GCJ-02(Wgs84ToBd09Mc)**:执行解密操作,将百度坐标还原为火星坐标。
- **WGS84到GCJ-02(Wgs84ToGcj02)**:基于偏移算法,将WGS84坐标转换为火星坐标。
- **GCJ-02到WGS84(Gcj02ToWgs84)**:逆向偏移算法,将火星坐标转换回WGS84坐标。
- **WGS84到百度坐标(Wgs84ToBd09)**:先将WGS84转换为GCJ-02,再转为BD-09。
- **百度坐标到WGS84(Bd09ToWgs84)**:逆向过程,先从BD-09转回GCJ-02,再转为WGS84。
5. **常量和公式**:在转换过程中,会用到地球半径(EARTH_RADIUS)、火星半径(MARS_R)以及火星椭球体的离心率(MARS_EE)等常量,以及一些特定的转换系数,如AVG_X和AVG_Y。
6. **DecimalFormat和Scale**:DecimalFormat用于格式化输出的坐标值,保留小数点后8位精度;SCALE常量定义了转换后的坐标保留的小数位数。
7. **Enum Schema**:定义了各种转换模式,便于调用不同的转换方法,如bdmc2g代表BD-09到GCJ-02的转换,b2g则表示百度坐标到火星坐标的转换。
这个Java工具类提供了方便的接口来实现这些转换,开发者可以根据需要选择合适的转换方法。在实际应用中,比如开发地图应用或需要处理定位数据时,这些坐标转换功能是必不可少的。
2024-06-27 上传
2022-05-08 上传
2019-11-12 上传
2022-06-14 上传
2021-12-26 上传
2022-06-21 上传
2022-07-03 上传
2021-10-29 上传
2021-11-02 上传
非科班Java出身GISer
- 粉丝: 1w+
- 资源: 45
最新资源
- compose_plantuml:从docker-compose文件生成Plantuml图
- ML:机器学习实践
- appInforManagement:app信息管理系统
- 【地产资料】XX地产 直客业务组主要业务P22.zip
- Excel模板本年度与上年同期产值对比图表.zip
- 柔光:屏幕上的免费视频会议照明
- DellInspiron530_ArchLinuxPlasma_Install
- ProcessExplorer_v15.12_Chs_for_PE.rar
- parking-control-app:停车场管理系统停车控制系统APP端
- 周黑鸭财务造假估值分析报告-51页.rar
- 毕业设计&课设--毕业设计-学生毕业设计选题系统.zip
- ReCapProject
- ServiceNow-Utils:适用于ServiceNow的Chrome和Firefox浏览器扩展
- Excel模板销售清单-打印模板.zip
- Decision_theory_lab2
- martinmosegaard.github.io