annotate artifacts/src/main/java/org/dive4elements/river/utils/RiverMapfileGenerator.java @ 6955:94cb1845c667

(issue1452) Coalesce to zero to avoid NaN arithmetic.
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 30 Aug 2013 15:45:14 +0200
parents af13ceeba52a
children 30aecc45d676
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5477
diff changeset
9 package org.dive4elements.river.utils;
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
10
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
11 import com.vividsolutions.jts.geom.Envelope;
5140
18ef819a7c92 Changed river axis from LineString to MultiLineString.
Raimund Renkert <rrenkert@intevation.de>
parents: 4843
diff changeset
12 import com.vividsolutions.jts.geom.MultiLineString;
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
13
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5477
diff changeset
14 import org.dive4elements.river.artifacts.model.LayerInfo;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5477
diff changeset
15 import org.dive4elements.river.artifacts.model.RiverFactory;
4843
88014b9852d0 Removed obsolete imports and dead code.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4841
diff changeset
16
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5477
diff changeset
17 import org.dive4elements.river.model.River;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5477
diff changeset
18 import org.dive4elements.river.model.RiverAxis;
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
19
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
20 import java.io.File;
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
21 import java.io.FileNotFoundException;
4843
88014b9852d0 Removed obsolete imports and dead code.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4841
diff changeset
22
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents: 4656
diff changeset
23 import java.util.ArrayList;
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
24 import java.util.List;
4843
88014b9852d0 Removed obsolete imports and dead code.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4841
diff changeset
25
4841
ad0990a82ab8 Insert db connection into riveraxis map files.
Raimund Renkert <rrenkert@intevation.de>
parents: 4809
diff changeset
26 import java.util.regex.Pattern;
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
27
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
28 import org.apache.log4j.Logger;
4843
88014b9852d0 Removed obsolete imports and dead code.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4841
diff changeset
29
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
30 import org.apache.velocity.Template;
5181
9d36ddf7dbd3 Change IllegalArgumentException to HibernateException.
Raimund Renkert <rrenkert@intevation.de>
parents: 5173
diff changeset
31 import org.hibernate.HibernateException;
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
32
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
33 public class RiverMapfileGenerator extends MapfileGenerator {
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
34
4703
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
35 public static final String XPATH_RIVERMAP_RIVER_PROJECTION =
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
36 "/artifact-database/rivermap/river[@name=$name]/srid/@value";
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
37
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
38 public static final String XPATH_RIVERMAP_SHAPEFILE_DIR =
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
39 "/artifact-database/rivermap/shapefile-path/@value";
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
40
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
41 public static final String XPATH_RIVERMAP_VELOCITY_LOGFILE =
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
42 "/artifact-database/rivermap/velocity/logfile/@path";
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
43
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
44 public static final String XPATH_RIVERMAP_MAPSERVER_URL =
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
45 "/artifact-database/rivermap/mapserver/server/@path";
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
46
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
47 public static final String XPATH_RIVERMAP_MAPFILE_PATH =
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
48 "/artifact-database/rivermap/mapserver/mapfile/@path";
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
49
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
50 public static final String XPATH_RIVERMAP_MAPFILE_TEMPLATE =
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
51 "/artifact-database/rivermap/mapserver/map-template/@path";
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
52
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
53 public static final String XPATH_RIVERMAP_MAPSERVER_TEMPLATE_PATH =
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
54 "/artifact-database/rivermap/mapserver/templates/@path";
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
55
4841
ad0990a82ab8 Insert db connection into riveraxis map files.
Raimund Renkert <rrenkert@intevation.de>
parents: 4809
diff changeset
56 public static final Pattern DB_URL_PATTERN =
ad0990a82ab8 Insert db connection into riveraxis map files.
Raimund Renkert <rrenkert@intevation.de>
parents: 4809
diff changeset
57 Pattern.compile("(.*)\\/\\/(.*):([0-9]+)\\/([a-zA-Z]+)");
ad0990a82ab8 Insert db connection into riveraxis map files.
Raimund Renkert <rrenkert@intevation.de>
parents: 4809
diff changeset
58
ad0990a82ab8 Insert db connection into riveraxis map files.
Raimund Renkert <rrenkert@intevation.de>
parents: 4809
diff changeset
59 public static final Pattern DB_PSQL_URL_PATTERN =
ad0990a82ab8 Insert db connection into riveraxis map files.
Raimund Renkert <rrenkert@intevation.de>
parents: 4809
diff changeset
60 Pattern.compile("(.*)\\/\\/(.*):([0-9]+)\\/([a-zA-Z0-9]+)");
ad0990a82ab8 Insert db connection into riveraxis map files.
Raimund Renkert <rrenkert@intevation.de>
parents: 4809
diff changeset
61
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
62 private static Logger logger = Logger.getLogger(RiverMapfileGenerator.class);
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
63
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
64 /**
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
65 * Generate river axis mapfile.
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
66 */
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
67 @Override
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
68 public void generate() {
4702
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents: 4656
diff changeset
69 logger.debug("generate()");
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents: 4656
diff changeset
70
13abfb1bcb75 Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents: 4656
diff changeset
71 List<River> rivers = RiverFactory.getRivers();
4703
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
72 List<String> riverFiles = new ArrayList<String>();
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
73
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
74 for (River river : rivers) {
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
75 // We expect that every river has only one RiverAxis.
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
76 // This is not correct but currently the case here, see
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
77 // RiverAxis.java.
5170
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
78 List<RiverAxis> riverAxis = null;
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
79 try {
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
80 riverAxis = RiverAxis.getRiverAxis(river.getName());
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
81 }
5181
9d36ddf7dbd3 Change IllegalArgumentException to HibernateException.
Raimund Renkert <rrenkert@intevation.de>
parents: 5173
diff changeset
82 catch (HibernateException iae) {
5170
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
83 logger.error("No valid riveraxis found for " + river.getName());
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
84 continue;
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
85 }
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
86
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
87 if (riverAxis == null) {
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
88 logger.warn("River " + river.getName() + " has no river axis!");
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
89 continue;
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
90 }
5170
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
91 if (riverAxis.get(0).getGeom() == null) {
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
92 logger.warn("River " + river.getName() +
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
93 " has no riveraxis geometry!");
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
94 continue;
c1b60f8c3390 Made river mapfile generator more tolerant.
Raimund Renkert <rrenkert@intevation.de>
parents: 5148
diff changeset
95 }
5140
18ef819a7c92 Changed river axis from LineString to MultiLineString.
Raimund Renkert <rrenkert@intevation.de>
parents: 4843
diff changeset
96 MultiLineString geom = riverAxis.get(0).getGeom();
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
97 Envelope extent = geom.getEnvelopeInternal();
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
98
4703
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
99 createRiverAxisLayer(
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
100 river.getName(),
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
101 river.getId(),
4809
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
102 Integer.toString(geom.getSRID()),
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
103 extent.getMinX() + " " +
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
104 extent.getMinY() + " " +
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
105 extent.getMaxX() + " " +
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
106 extent.getMaxY());
8062b571884d Bugs in generated RiverAxis Mapfile fixed. Now the river axes are drawn by the WMS.
Christian Lins <christian.lins@intevation.de>
parents: 4738
diff changeset
107
4703
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
108 riverFiles.add("river-" + river.getName() + ".map");
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
109 }
4703
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
110 writeMapfile(riverFiles);
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
111 }
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
112
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
113 protected void createRiverAxisLayer(String riverName, int riverID, String srid, String extend) {
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
114 LayerInfo layerInfo = new LayerInfo();
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
115 layerInfo.setName(riverName);
4841
ad0990a82ab8 Insert db connection into riveraxis map files.
Raimund Renkert <rrenkert@intevation.de>
parents: 4809
diff changeset
116 layerInfo.setConnection(MapUtils.getConnection());
ad0990a82ab8 Insert db connection into riveraxis map files.
Raimund Renkert <rrenkert@intevation.de>
parents: 4809
diff changeset
117 layerInfo.setConnectionType(MapUtils.getConnectionType());
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
118 layerInfo.setSrid(srid);
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
119 layerInfo.setExtent(extend);
4738
d93748043cbc Little work on the RiverMapfileGenerator.
Christian Lins <christian.lins@intevation.de>
parents: 4703
diff changeset
120 layerInfo.setType("line");
5304
ffa5eaad3a7b Fix river_axes maps when using oracle.
Andre Heinecke <aheinecke@intevation.de>
parents: 5181
diff changeset
121 // FIXME: Use templates for that
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
122 if (RiverUtils.isUsingOracle()) {
5304
ffa5eaad3a7b Fix river_axes maps when using oracle.
Andre Heinecke <aheinecke@intevation.de>
parents: 5181
diff changeset
123 layerInfo.setData("geom FROM river_axes USING SRID " + srid);
ffa5eaad3a7b Fix river_axes maps when using oracle.
Andre Heinecke <aheinecke@intevation.de>
parents: 5181
diff changeset
124 } else {
ffa5eaad3a7b Fix river_axes maps when using oracle.
Andre Heinecke <aheinecke@intevation.de>
parents: 5181
diff changeset
125 layerInfo.setData("geom FROM river_axes");
ffa5eaad3a7b Fix river_axes maps when using oracle.
Andre Heinecke <aheinecke@intevation.de>
parents: 5181
diff changeset
126 }
5477
ae60bb7b8085 Add proper handling of multiple river_axes for datacage and rivermapfile
Andre Heinecke <aheinecke@intevation.de>
parents: 5309
diff changeset
127 layerInfo.setFilter("river_id = " + riverID + " and kind_id = 1");
4738
d93748043cbc Little work on the RiverMapfileGenerator.
Christian Lins <christian.lins@intevation.de>
parents: 4703
diff changeset
128 layerInfo.setTitle(riverName + " RiverAxis");
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
129
4703
38ec171544de Work on rivers.map Generator.
Christian Lins <christian.lins@intevation.de>
parents: 4702
diff changeset
130 File layerFile = new File("river-" + riverName + ".map");
4738
d93748043cbc Little work on the RiverMapfileGenerator.
Christian Lins <christian.lins@intevation.de>
parents: 4703
diff changeset
131 Template template = getTemplateByName("riveraxis-layer.vm");
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
132 if (template == null) {
4738
d93748043cbc Little work on the RiverMapfileGenerator.
Christian Lins <christian.lins@intevation.de>
parents: 4703
diff changeset
133 logger.warn("Template riveraxis-layer.vm not found.");
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
134 return;
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
135 }
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
136
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
137 try {
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
138 writeLayer(layerInfo, layerFile, template);
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
139 }
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
140 catch (FileNotFoundException e) {
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
141 logger.warn(e.getLocalizedMessage(), e);
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
142 }
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
143 }
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
144
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
145 @Override
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
146 protected String getVelocityLogfile() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
147 return RiverUtils.getXPathString(XPATH_RIVERMAP_VELOCITY_LOGFILE);
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
148 }
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
149
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
150 @Override
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
151 protected String getMapserverTemplatePath() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
152 return RiverUtils.getXPathString(XPATH_RIVERMAP_MAPSERVER_TEMPLATE_PATH);
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
153 }
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
154
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
155 @Override
5309
b55975761708 Changed visiblitiy of some methods. TODO: A lot of refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents: 5304
diff changeset
156 public String getMapserverUrl() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
157 return RiverUtils.getXPathString(XPATH_RIVERMAP_MAPSERVER_URL);
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
158 }
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
159
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
160 @Override
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
161 protected String getMapfilePath() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
162 return RiverUtils.getXPathString(XPATH_RIVERMAP_MAPFILE_PATH);
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
163 }
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
164
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
165 @Override
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
166 protected String getMapfileTemplate() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
167 return RiverUtils.getXPathString(XPATH_RIVERMAP_MAPFILE_TEMPLATE);
4656
442fbb290fa8 Introduce river mapfile generation (WARNING: Changes in config xml files required!).
Christian Lins <christian.lins@intevation.de>
parents: 4654
diff changeset
168 }
4654
861c47e0a8a0 Refactor Mapserver mapfile generation.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
169 }

http://dive4elements.wald.intevation.org