From 7285d082e93dd1e6d72f5fb8da2fbf599211e4e2 Mon Sep 17 00:00:00 2001 From: Namascae <30822977+Namascae@users.noreply.github.com> Date: Thu, 14 Sep 2023 16:53:30 +0200 Subject: [PATCH] fix(fao): conversion between gml to geojson --- .../main/java/org/fao/geonet/util/XslUtil.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/core/src/main/java/org/fao/geonet/util/XslUtil.java b/core/src/main/java/org/fao/geonet/util/XslUtil.java index b68d3749649..0c926034131 100644 --- a/core/src/main/java/org/fao/geonet/util/XslUtil.java +++ b/core/src/main/java/org/fao/geonet/util/XslUtil.java @@ -84,6 +84,7 @@ import org.geotools.geometry.jts.ReferencedEnvelope; import org.geotools.referencing.CRS; import org.geotools.referencing.crs.DefaultGeographicCRS; +import org.geotools.referencing.crs.DefaultProjectedCRS; import org.geotools.xsd.Parser; import org.jdom.Document; import org.jdom.Element; @@ -188,6 +189,22 @@ public static String gmlToGeoJson(String gml, return "Warning: GML geometry is null."; } + Object userData = geom.getUserData(); + if (userData instanceof DefaultProjectedCRS) { + geom = JTS.transform( + geom, + CRS.findMathTransform((DefaultProjectedCRS) userData, + DefaultGeographicCRS.WGS84, true) + ); + } + else if (userData instanceof DefaultGeographicCRS) { + geom = JTS.transform( + geom, + CRS.findMathTransform((DefaultGeographicCRS) userData, + DefaultGeographicCRS.WGS84, true) + ); + } + if (!geom.isValid()) { IsValidOp isValidOp = new IsValidOp(geom); return String.format(