我可能会混淆两件事,但是我需要对多边形(距离,面积等)进行一些计算。使用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/