我尝试在java中创建一个程序,将x,y坐标UTM转换为WGS84格式的纬度和经度。我通过一个由SUMO模拟器whith netconvert函数生成的xml模拟文件到达UTM坐标,传递一个openstreetMap文件.osm。模拟器的转换输出给出了以下参数: location netOffset =“ - 496616.58,-4916305.46”convBoundary =“0.00,0.00,392.25,326.77”origBoundary =“8.957512,44.400028,8.962437,44.402970” projParameter =“+ proj = utm + zone = 32 + ellps = WGS84 + datum = WGS84 + units = m + no_defs”/>
我正在使用库com.jhlabs.map.proj,这是我发现的proj4.dll的java实现,是模拟器使用的库c ++。所以我想用这个java库进行从evry x / y坐标到long / lat的dinamicaly逆转换。 (我刚刚使用jcoord库,但没有好结果)。 使用projParameters我做:
String[] proj4_w = new String[]{"+proj=utm",
"+zone=32",
"+ellps=WGS84",
"+datum=WGS84",
"+units=m",
"+no_defs",
"+to",
"+proj=latlong",
"+ellps=WGS84",
"+datum=WGS84",
"+no_defs"
};
Projection proj = ProjectionFactory.fromPROJ4Specification(proj4_w);
Point2D.Double testUtm = new Point2D.Double(utmX(), utmY());
Point2D.Double testProjec = proj.transform(testUtm, new Point2D.Double());
System.out.println("latitudine: " + testProjec.x + " longitudine: " + stProjec.y);
我从结果得到的纬度和经度值不正确。 我是这类问题的最新版本,而且几乎没有文件证明。 感谢每个答案和每个解决方案,也有不同的方式或库。
答案 0 :(得分:0)
com.jhlabs.map.proj
不支持此功能,如果您愿意,可以使用此分支:https://github.com/bdferris/onebusaway-jmapprojlib(存储库:http://nexus.onebusaway.org/content/groups/public/)