投影坐标于经纬度转换

投影坐标于经纬度转换

arcgis

CGCS2000_3_Degree_GK_Zone_40

WKID: 4528 Authority: EPSG

 

Projection: Gauss_Kruger

False_Easting: 40500000.0

False_Northing: 0.0

Central_Meridian: 120.0

Scale_Factor: 1.0

Latitude_Of_Origin: 0.0

Linear Unit: Meter (1.0)

 

Geographic Coordinate System: GCS_China_Geodetic_Coordinate_System_2000

Angular Unit: Degree (0.0174532925199433)

Prime Meridian: Greenwich (0.0)

Datum: D_China_2000

  Spheroid: CGCS2000

    Semimajor Axis: 6378137.0

    Semiminor Axis: 6356752.314140356

Inverse Flattening: 298.257222101

 

Java 自定义

 

String [] proj4_w = new String [] { 

"+proj=tmerc", 
"+lat_0=0", 
"+lon_0=120", 
"+ellps=GRS80", 
"+units=m", 
"+x_0=40500000",
"+y_0=0",
"+k=1.0"
};

经纬度转换

       ///+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=GRS80 +units=m +no_defs

                Point2D.Double srcProjec = null;

                Point2D.Double dstProjec = null;

                Projection proj = ProjectionFactory.fromPROJ4Specification (proj4_w);

//  "epsg:4528" 数据从proj4 拷贝 nad

//      Point2D.Double srcProjec = null;

//      Point2D.Double dstProjec = null;

//      Projection proj = ProjectionFactory.getNamedPROJ4CoordinateSystem ("epsg:4528");

 

        srcProjec = new Point2D.Double (120.159,30.267);

        //40515348.2903 3349745.5395

       

        dstProjec = proj.transform (srcProjec, new Point2D.Double ());

        System.out.println ("TM:" + dstProjec);

    // TM: Point2D.Double [644904.399587292, 400717.8948938238]

 

        srcProjec = new Point2D.Double (40515348.2903 ,3349745.5395);

        dstProjec = proj.inverseTransform (srcProjec, new Point2D.Double ());

       

        System.out.println ("TM:" + dstProjec);

你可能感兴趣的:(投影坐标于经纬度转换)