使用geotools作坐标转换:BEIJING54转WGS84
结果与使用Proj.4 的结果有偏差参考:http://hi.baidu.com/liongg/blog/item/8e0a92457e136a3a879473ce.html
投影参数:椭球体 Krasovsky_1940;Datum:北京1954;投影:兰勃特双标准纬线,25N,47N。
坐标数据:
20634500,4660000;20635500,4660000;20634500,4659000;20635500,4659000
CoordinateReferenceSystem crs = CRS.parseWKT("PROJCS[\"liongg\","+ "GEOGCS[\"GCS_Beijing_1954\","+ "DATUM[\"D_Beijing_1954\",SPHEROID[\"Krasovsky_1940\",6378245.0,298.3]],"+ "PRIMEM[\"Greenwich\",0.0],"+ "UNIT[\"Degree\",0.0174532925199433]],"+ "PROJECTION[\"Lambert_Conformal_Conic\"],"+ "PARAMETER[\"False_Easting\",20500000.0],"+ "PARAMETER[\"False_Northing\",0.0],"+ "PARAMETER[\"Central_Meridian\",117],"+ "PARAMETER[\"Standard_Parallel_1\",25.0],"+ "PARAMETER[\"Standard_Parallel_2\",47.0],"+ "PARAMETER[\"Scale_Factor\",1.0],"+ "PARAMETER[\"Latitude_Of_Origin\",0.0],"+ "UNIT[\"Meter\",1.0]]");final MathTransform t = CRS.findMathTransform(crs,DefaultGeographicCRS.WGS84,true);double[] result=new double[]{0,0};t.transform(new double[] {20634500,4660000}, 0, result, 0, 1);System.out.println("x:"+(result)+"y:"+result);t.transform(new double[] {20635500,4660000}, 0, result, 0, 1);System.out.println("x:"+(result)+"y:"+result);t.transform(new double[] {20634500, 4659000}, 0, result, 0, 1);System.out.println("x:"+(result)+"y:"+result);t.transform(new double[] {20635500,4659000}, 0, result, 0, 1);System.out.println("x:"+(result)+"y:"+result);
result:
x:118.61106545152893y:40.462100606989765
x:118.62304139955944y:40.46194788172995
x:118.61086626296377y:40.45295325386119
x:118.62284073086687y:40.45280054540924
页:
[1]