• 大小: 4KB
    文件类型: .zip
    金币: 2
    下载: 25 次
    发布日期: 2021-06-23
  • 语言: Java
  • 标签: JAVA  GPS  WGS84  CGCS2000  

资源简介

GPS坐标(WGS84)和中国大地坐标CGCS2000互转的JAVA程序,工程基于MAVEN,结果精确,可接受各种验证。

资源截图

代码片段和文件信息

/*
 * To change this license header choose License Headers in Project Properties.
 * To change this template file choose Tools | Templates
 * and open the template in the editor.
 */
package geo1;

import org.geotools.geometry.jts.JTS;
import org.geotools.referencing.CRS;
import org.opengis.geometry.MismatchedDimensionException;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.opengis.referencing.operation.MathTransform;
import org.opengis.referencing.operation.TransformException;
import org.opengis.referencing.FactoryException;

import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.io.ParseException;
import com.vividsolutions.jts.io.WKTReader;
import java.awt.geom.Point2D;
import org.geotools.referencing.crs.DefaultGeographicCRS;

public class Geo {

    private static WKTReader reader;

    private static CoordinateReferenceSystem crsWGS84; //WGS1984
    private static CoordinateReferenceSystem crsCGCS2000; //CGCS2000  中国大地坐标系

    private static MathTransform wgs84toCgcs2000; //从WGS1984到CGCS2000
    private static MathTransform cgcs2000toWgs84; //从CGCS2000到WGS1984

    //在oralce 数据库中的坐标系编号
    //public static final int System_Ref = 4;
    public static void main(String[] args) {
        Geo g = new Geo();
        long startTime = System.currentTimeMillis();   //获取开始时间
        Point2D.Double p = new Point2D.Double(104.3838501 31.15288273);
        System.out.printf(“x: %7.11f y: %7.11f\r\n“ p.x p.y);
        p = g.toCGCS2000(p.x p.y);
        System.out.printf(“x: %7.11f y: %7.11f\r\n“ p.x p.y);
        p = g.toWGS84(p.x p.y);
        System.out.printf(“x: %7.11f y: %7.11f\r\n“ p.x p.y);
        long endTime = System.currentTimeMillis(); //获取结束时间
        System.out.println(“程序运行时间: “ + (endTime - startTime) + “ms“);
    }

    /**
     * 初始化坐标系信息,只需调用一次
     */
    public static void init() {
        try {
            //初始化WKTReader
            reader = new WKTReader();//new GeometryFactory()
            //初始化坐标转换类
            //String wktWgs1984=“GEOGCS[\“WGS 84\“ DATUM[\“World Geodetic System 1984\“ SPHEROID[\“WGS 84\“ 6378137.0 298.257223563 AUTHORITY[\“EPSG\“\“7030\“]] AUTHORITY[\“EPSG\“\“6326\“]] PRIMEM[\“Greenwich\“ 0.0 AUTHORITY[\“EPSG\“\“8901\“]] UNIT[\“degree\“ 0.017453292519943295] AXIS[\“Geodetic longitude\“ EAST] AXIS[\“Geodetic latitude\“ NORTH] AUTHORITY[\“EPSG\“\“4326\“]]“;
            String wktCgcs2000 = “PROJCS[\“CGCS2000 / Gauss-Kruger CM 105E\“GEOGCS[\“China Geodetic Coordinate System 2000\“DATUM[\“China_2000\“SPHEROID[\“CGCS2000\“6378137298.257222101AUTHORITY[\“EPSG\“\“1024\“]]AUTHORITY[\“EPSG\“\“1043\“]]PRIMEM[\“Greenwich\“0AUTHORITY[\“EPSG\“\“8901\“]]UNIT[\“degree\“0.0174532925199433AUTHORITY[\“EPSG\“\“9122\“]]AUTHORITY[\“EPSG\“\“4490\“]]UNIT[\“metre\“1AUTHORITY[\“EPSG\“\“9001\“]]PROJECTION[\“Transverse_Mercator\“]PARAMETER[\“latitude_of_origin\“0]PARAMETER[\“central_meridian\“105]PARAMETER[\“scale_factor\“1]PARAMETER

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-08-17 22:17  geo1\
     目录           0  2019-08-17 22:17  geo1\.svn\
     文件         590  2016-11-11 16:25  geo1\nbactions.xml
     文件        1875  2016-11-11 16:31  geo1\pom.xml
     目录           0  2016-11-11 16:16  geo1\src\
     目录           0  2016-11-11 16:16  geo1\src\main\
     目录           0  2016-11-11 16:16  geo1\src\main\java\
     目录           0  2016-11-11 16:50  geo1\src\main\java\geo1\
     文件        4736  2016-11-24 14:32  geo1\src\main\java\geo1\Geo.java
     目录           0  2016-11-11 16:16  geo1\src\main\resources\
     目录           0  2016-11-11 16:16  geo1\src\test\
     目录           0  2016-11-11 16:16  geo1\src\test\java\

评论

共有 条评论