我可能会混淆两件事,但是我需要对多边形(距离,面积等)进行一些计算。使用WKBReader,我得到了地理位置:

WKBReader wkbReader = new WKBReader();
byte[] a = results.getBytes(8);
Geometry geo = wkbReader.read(results.getBytes("st_asbinary"));


但是我在EPSG:4326中没有得到它。我想使用GeoTools进行转换。如何从地理对象获取CRS? (看三个问号)

CoordinateReferenceSystem sourceCRS = ???
CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:4326");


MathTransform转换= CRS.findMathTransform(sourceCRS,targetCRS);
几何targetGeometry = JTS.transform(geo,transform);
任何帮助将不胜感激。

最佳答案

如果在地理对象上设置了CRS值,则适当的方法调用为:

geo.getCoordinateReferenceSystem()


如果未在几何图形上设置它,那么您将需要找到一个合适的对象来获取它。
GeoTools Geometry CRS Tutorial具有一些示例(模式,世界),而GeoTools JavaDoc具有getCoordinateReferenceSystem()方法声明/实现的完整列表。

关于java - Java GeoTools-从SRID获取CRS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23467907/

10-10 10:54