]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.elevation.server/src/org/simantics/maps/elevation/server/TiffTileInterface.java
Fix elevation bounding box profile shift & elevation transform fixes
[simantics/district.git] / org.simantics.maps.elevation.server / src / org / simantics / maps / elevation / server / TiffTileInterface.java
index b85f234c72d935ef4121877e8d9cc299d73b3fed..6f24ad5b65073eec799ac66247c90180d14b9f4e 100644 (file)
@@ -14,10 +14,10 @@ import java.util.stream.Stream;
 
 import org.geotools.geometry.DirectPosition2D;
 import org.geotools.geometry.Envelope2D;
+import org.geotools.geometry.jts.ReferencedEnvelope;
 import org.geotools.referencing.CRS;
 import org.opengis.geometry.DirectPosition;
 import org.opengis.referencing.crs.CoordinateReferenceSystem;
-import org.opengis.referencing.operation.MathTransform;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -75,16 +75,13 @@ public class TiffTileInterface {
             TiffInterface tifInterface = openTifInterface(tifFile);
             Envelope2D coords = tifInterface.getCornerCoords();
             try {
-                MathTransform transform = CRS.findMathTransform(tifInterface.getCRS(), c4326);
-                DirectPosition2D min = new DirectPosition2D();
-                DirectPosition2D max = new DirectPosition2D();
-                transform.transform(new DirectPosition2D(coords.getMinX(), coords.getMinY()), min);
-                transform.transform(new DirectPosition2D(coords.getMaxX(), coords.getMaxY()), max);
-                Envelope envelope = new Envelope(min.getX(), max.getX(), min.getY(), max.getY());
+                ReferencedEnvelope refEnv = new ReferencedEnvelope(coords);
+                ReferencedEnvelope targetEnv = refEnv.transform(c4326, false, 30);
+
                 synchronized(index) {
-                    index.insert(envelope, tifFile);
+                    index.insert(targetEnv, tifFile);
                 }
-                envelopes.put(tifFile, envelope);
+                envelopes.put(tifFile, targetEnv);
             } catch (Exception e) {
                 LOGGER.error("Could not initialize index for file {}", tifFile, e);
             } finally {