最常用的兩種坐標(biāo)4326 3857轉(zhuǎn)換
第一種方法
CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:4326");
CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:3857");
MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS);
Coordinate coorDst=new Coordinate();
JTS.transform(new Coordinate(40, 116),coorDst, transform);
System.out.println(coorDst);
第二種方法
CoordinateReferenceSystem sourceCrs = CRS.decode("EPSG:4326");
CoordinateReferenceSystem targetCrs = CRS.decode("EPSG:3857");
boolean lenient = true;
MathTransform mathTransform = CRS.findMathTransform(sourceCrs, targetCrs, lenient);
DirectPosition2D srcDirectPosition2D = new DirectPosition2D(sourceCrs, 40, 116);//bj
DirectPosition2D destDirectPosition2D = new DirectPosition2D();
mathTransform.transform(srcDirectPosition2D, destDirectPosition2D);
double transX = destDirectPosition2D.x;
double transY = destDirectPosition2D.y;
System.out.println(transX);
System.out.println(transY);
補(bǔ)充下
CoordinateReferenceSystem sourceCrs = CRS.decode("EPSG:4326");
System.out.println(sourceCrs.toWKT());
System.out.println(DefaultGeographicCRS.WGS84.toWKT());
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 latitude", NORTH],
? AXIS["Geodetic longitude", EAST],
? AUTHORITY["EPSG","4326"]]
==============================================
GEOGCS["WGS84(DD)",
? DATUM["WGS84",
? ? SPHEROID["WGS84", 6378137.0, 298.257223563]],
? PRIMEM["Greenwich", 0.0],
? UNIT["degree", 0.017453292519943295],
? AXIS["Geodetic longitude", EAST],
? AXIS["Geodetic latitude", NORTH]]