changeset 4809:8062b571884d

Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
author Christian Lins <christian.lins@intevation.de>
date Wed, 16 Jan 2013 22:53:58 +0100
parents 05ff91146ddd
children 5ca2516ebef1
files flys-artifacts/doc/conf/mapserver/river-mapfile.vm flys-artifacts/doc/conf/mapserver/riveraxis-layer.vm flys-artifacts/src/main/java/de/intevation/flys/utils/RiverMapfileGenerator.java flys-backend/src/main/java/de/intevation/flys/model/River.java
diffstat 4 files changed, 43 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/flys-artifacts/doc/conf/mapserver/river-mapfile.vm	Wed Jan 16 11:39:37 2013 +0100
+++ b/flys-artifacts/doc/conf/mapserver/river-mapfile.vm	Wed Jan 16 22:53:58 2013 +0100
@@ -3,7 +3,7 @@
     STATUS ON
     SIZE 600 400
     MAXSIZE 4000
-    EXTENT 3233232.55407617 5303455.37850183 3421524.44644752 5585825.50888523
+    #EXTENT 3233232.55407617 5303455.37850183 3421524.44644752 5585825.50888523
     UNITS DD
     SHAPEPATH "$SHAPEFILEPATH"
     FONTSET "$CONFIGDIR/mapserver/fontset.txt"
@@ -13,13 +13,13 @@
         "init=epsg:31467"
     END
 
-    DEBUG 5
+    DEBUG 3
     CONFIG "MS_ERRORFILE" "log/rivers.log"
 
     WEB
       METADATA
         "wms_title"             "FLYS Rivers Web Map Service"
-        "wms_onlineresource"    "$MAPSERVERURL"
+        #"wms_onlineresource"    "http://localhost:7777/river-wms" # "$MAPSERVERURL"
         "wms_accessconstraints" "none"
         "wms_fees"              "none"
         "wms_addresstype"       "postal"
--- a/flys-artifacts/doc/conf/mapserver/riveraxis-layer.vm	Wed Jan 16 11:39:37 2013 +0100
+++ b/flys-artifacts/doc/conf/mapserver/riveraxis-layer.vm	Wed Jan 16 22:53:58 2013 +0100
@@ -20,10 +20,6 @@
         LABELITEM $LAYER.getLabelItem()
     #end
 
-    PROJECTION
-        "init=epsg:31467"
-    END
-
     METADATA
         "wms_title" "$LAYER.getTitle()"
         "gml_include_items" "all"
@@ -36,7 +32,7 @@
         $LAYER.getStyle()
     #else
         CLASS
-            NAME ""
+            NAME "unnamedclass"
             STYLE
                 SIZE 5
                 OUTLINECOLOR "#000000"
@@ -52,6 +48,7 @@
                     OFFSET 2 2
                 END
             #end
+            
         END
-    #end
+   #end
 END
\ No newline at end of file
--- a/flys-artifacts/src/main/java/de/intevation/flys/utils/RiverMapfileGenerator.java	Wed Jan 16 11:39:37 2013 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/utils/RiverMapfileGenerator.java	Wed Jan 16 22:53:58 2013 +0100
@@ -1,8 +1,12 @@
 package de.intevation.flys.utils;
 
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.LineString;
+
 import de.intevation.flys.artifacts.model.LayerInfo;
 import de.intevation.flys.artifacts.model.RiverFactory;
 import de.intevation.flys.model.River;
+import de.intevation.flys.model.RiverAxis;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -48,11 +52,26 @@
         List<String> riverFiles = new ArrayList<String>();
 
         for (River river : rivers) {
+            // We expect that every river has only one RiverAxis.
+            // This is not correct but currently the case here, see
+            // RiverAxis.java.
+            List<RiverAxis> riverAxis = RiverAxis.getRiverAxis(river.getName());
+            if (riverAxis == null) {
+                logger.warn("River " + river.getName() + " has no river axis!");
+                continue;
+            }
+            LineString geom = riverAxis.get(0).getGeom();
+            Envelope extent = geom.getEnvelopeInternal();
+
             createRiverAxisLayer(
                     river.getName(),
                     river.getId(),
-                    "41677",
-                    "-10000 -10000 10000 10000");
+                    Integer.toString(geom.getSRID()),
+                    extent.getMinX() + " " +
+                    extent.getMinY() + " " +
+                    extent.getMaxX() + " " +
+                    extent.getMaxY());
+
             riverFiles.add("river-" + river.getName() + ".map");
         }
         writeMapfile(riverFiles);
@@ -64,7 +83,7 @@
         layerInfo.setSrid(srid);
         layerInfo.setExtent(extend);
         layerInfo.setType("line");
-        layerInfo.setData("geom FROM river_axis");      // FIXME: Use templates for that
+        layerInfo.setData("geom FROM river_axes");      // FIXME: Use templates for that
         layerInfo.setFilter("river_id = " + riverID);
         layerInfo.setTitle(riverName + " RiverAxis");
 
--- a/flys-backend/src/main/java/de/intevation/flys/model/River.java	Wed Jan 16 11:39:37 2013 +0100
+++ b/flys-backend/src/main/java/de/intevation/flys/model/River.java	Wed Jan 16 22:53:58 2013 +0100
@@ -1,31 +1,29 @@
 package de.intevation.flys.model;
 
+import de.intevation.flys.backend.SessionHolder;
+
 import java.io.Serializable;
-
 import java.math.BigDecimal;
 import java.math.MathContext;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
 
+import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Column;
-import javax.persistence.SequenceGenerator;
+import javax.persistence.JoinColumn;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
-import javax.persistence.JoinColumn;
-import javax.persistence.GenerationType;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
 
-import java.util.List;
-import java.util.Comparator;
-import java.util.Map;
-import java.util.TreeMap;
-
+import org.hibernate.Query;
 import org.hibernate.Session;
-import org.hibernate.Query;
-
-import de.intevation.flys.backend.SessionHolder;
 
 
 @Entity
@@ -37,7 +35,7 @@
 
     public static final double EPSILON = 1e-5;
 
-    public static final Comparator KM_CMP = new Comparator<Double>() {
+    public static final Comparator<Double> KM_CMP = new Comparator<Double>() {
         @Override
         public int compare(Double a, Double b) {
             double diff = a - b;
@@ -147,6 +145,7 @@
 
 
 
+    @Override
     public String toString() {
         return name != null ? name : "";
     }

http://dive4elements.wald.intevation.org