当前位置: 首页 > article >正文

Android wgs84坐标系转CGCS2000坐标系

使用Proj4J库实现坐标转换

Proj4J 是一个开源的Java库,支持多种坐标系转换,包括WGS84坐标系转换至UTM坐标系

项目地址:Proj4J

步骤:
1.添加依赖 在build.gradle中添加Proj4J依赖:

dependencies {
    implementation 'org.locationtech.proj4j:proj4j:1.3.0'
}


2.定义坐标系参数 CGCS2000和WGS84的椭球参数非常接近,但需明确投影方式(如高斯克吕格投影):

// WGS84 地理坐标系
String wgs84Params = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs";

// CGCS2000 高斯克吕格投影(以3度带为例,中央经线117E)
String cgcs2000Params = "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs";


3.执行坐标转换

import org.locationtech.proj4j.*;

public class CoordinateConverter {
    private static final CRSFactory crsFactory = new CRSFactory();

    public static double[] convertWGS84ToCGCS2000(double lng, double lat) {
        try {
            CoordinateReferenceSystem wgs84 = crsFactory.createFromParameters("WGS84", wgs84Params);
            CoordinateReferenceSystem cgcs2000 = crsFactory.createFromParameters("CGCS2000", cgcs2000Params);
            CoordinateTransform transform = new CoordinateTransformFactory().createTransform(wgs84, cgcs2000);

            ProjCoordinate srcCoord = new ProjCoordinate(lng, lat);
            ProjCoordinate dstCoord = new ProjCoordinate();
            transform.transform(srcCoord, dstCoord);

            return new double[]{dstCoord.x, dstCoord.y};
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

http://www.kler.cn/a/584084.html

相关文章:

  • CentOS8+Zabbix7.2.4解决中文显示问题
  • rtsp在网页上显示(webrtc-stream)
  • Pytest自动化测试框架pytest-xdist分布式测试插件
  • JAVA面试_进阶部分_Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
  • 【Unity】在项目中使用VisualScripting
  • 计算机视觉算法实战——驾驶员分心检测(主页有源码)
  • 大模型开源的工具包有哪些特殊符号可以使用;SEP 是什么
  • HTML 表格的详细介绍与应用
  • [洛谷]P1123 取数游戏
  • rv1106 PWM控制
  • javaWeb的详细笔记(超详细版本)
  • AI大数据挖掘的威力
  • 【鸿蒙开发】Hi3861学习笔记- GPIO之按键
  • 小白学习:提示工程(什么是prompt)
  • PostgreSQL存储管理体系结构学习笔记2
  • Linux第二次练习
  • hive-进阶版-1
  • 嵌入式开发工程师笔试面试指南-模电基础
  • 查找某个端口是否被占用
  • 【数据结构】4线性表综合实验