Proj4J 将坐标从 local(x, y) 投影转换为 WGS-84(lat, long)

问题描述

我开始使用 Proj4J 库,但无法进行简单的转换。 目的是将俄罗斯平面局部坐标系转换为 WGS-84(lat,long)。我看过源库代码,但我不明白我做错了什么。

有我的测试代码,在注释中有src坐标系的参数。

基准和投影的参数是:

     PROJCS["MSK МСК-14 зона 2 (6 градусная) Республика Саха (Якутия)",GEOGCS["Krassovsky,1942",DATUM["unkNown",SPHEROID["krass",6378245,298.3],TOwgs84[23.57,-140.95,-79.8,0.35,0.79,-0.22]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],ParaMETER["latitude_of_origin",ParaMETER["central_meridian",114.45],ParaMETER["scale_factor",1],ParaMETER["false_easting",2400000],ParaMETER["false_northing",-5912900.566],UNIT["Meter",1]]

代码是:

    Datum sk95 = new Datum("SK-95",23.57,0.0,-0.22,Ellipsoid.KRASSOVSKY,"My datum");

    Projection src = new TransverseMercatorProjection(Ellipsoid.KRASSOVSKY,114.45,1,2400000,-5912900.566);

    CoordinateReferenceSystem msk14z2 = new CoordinateReferenceSystem("MSK-14z2 Yakutia",null,sk95,src); //2 параметр,видимо служебная инфа
    CRSFactory factory = new CRSFactory();
    CoordinateReferenceSystem wgs84 = factory.createFromName("epsg:4326");

    //первый аргумент - восток,второй - север
    ProjCoordinate point = new ProjCoordinate(2303248.01,703919.89);
    ProjCoordinate result = new ProjCoordinate();

    BasicCoordinateTransform transformator = new BasicCoordinateTransform(msk14z2,wgs84);

    transformator.transform(point,result);
    System.out.println(String.format("Lat - %f,Long - %f",result.x,result.y));
    System.out.println("Expected - 112.73456353163765,59.65413798772589");

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)