changeset 8816:f5e126739c36

min and max must not be equal in LAYER EXTENT in mapfile. (issue1879) In passing some whitespace cosmetics.
author Tom Gottfried <tom@intevation.de>
date Tue, 09 May 2017 18:42:56 +0200
parents c4ce25093953
children 8927ec8a3c32
files artifacts/src/main/java/org/dive4elements/river/exports/MapGenerator.java artifacts/src/main/java/org/dive4elements/river/utils/ArtifactMapfileGenerator.java
diffstat 2 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/MapGenerator.java	Tue May 09 17:58:10 2017 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/MapGenerator.java	Tue May 09 18:42:56 2017 +0200
@@ -258,7 +258,7 @@
         appendMapInformation(root, c);
 
         XMLUtils.toStream(response, out);
-            }
+    }
 
 
     protected void appendLayers(Element parent) {
--- a/artifacts/src/main/java/org/dive4elements/river/utils/ArtifactMapfileGenerator.java	Tue May 09 17:58:10 2017 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/utils/ArtifactMapfileGenerator.java	Tue May 09 18:42:56 2017 +0200
@@ -29,6 +29,8 @@
 import org.geotools.data.shapefile.shp.ShapefileHeader;
 import org.geotools.data.shapefile.shp.ShapefileReader;
 
+import com.vividsolutions.jts.geom.Envelope;
+
 public class ArtifactMapfileGenerator extends MapfileGenerator {
 
     private static Logger log = Logger.getLogger(ArtifactMapfileGenerator.class);
@@ -224,8 +226,15 @@
         layerinfo.setData(wms.getData());
         layerinfo.setTitle(wms.getDescription());
         layerinfo.setStyle(style);
-        if(wms.getExtent() != null) {
-            layerinfo.setExtent(GeometryUtils.jtsBoundsToOLBounds(wms.getExtent()));
+
+        Envelope env = wms.getExtent();
+        if (env != null) {
+            if (env.getArea() <= 0) {
+                /* For MapServer min and max must not be equal. EXTENT has no
+                   effect on Layerzoom, thus expand arbitrarily by 1. */
+                env.expandBy(1d);
+            }
+            layerinfo.setExtent(GeometryUtils.jtsBoundsToOLBounds(env));
         } else {
             log.error("Layer without extent. Probably no geometry at all.");
             layerinfo.setExtent("0 0 1 1");

http://dive4elements.wald.intevation.org