Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/utils/ArtifactMapfileGenerator.java @ 6332:f5bb53106ae8
Remove createBarriersLayer and createBarriers
The generated mapfiles did not work and were just confusing. This
looks like historical cruft that was never deleted. The real barrier
mapfiles are created in the Floodmap state
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Thu, 13 Jun 2013 17:24:56 +0200 |
parents | af13ceeba52a |
children | 74a437805e2a |
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:
5867
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:
5867
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:
5309
diff
changeset
|
9 package org.dive4elements.river.utils; |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
10 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5309
diff
changeset
|
11 import org.dive4elements.artifacts.CallContext; |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
12 import org.dive4elements.river.artifacts.D4EArtifact; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5309
diff
changeset
|
13 import org.dive4elements.river.artifacts.access.RiverAccess; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5309
diff
changeset
|
14 import org.dive4elements.river.artifacts.model.LayerInfo; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5309
diff
changeset
|
15 import org.dive4elements.river.artifacts.model.map.WMSDBLayerFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5309
diff
changeset
|
16 import org.dive4elements.river.artifacts.model.map.WMSLayerFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5309
diff
changeset
|
17 import org.dive4elements.river.artifacts.model.map.WSPLGENLayerFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5309
diff
changeset
|
18 import org.dive4elements.river.artifacts.resources.Resources; |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
19 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
20 import java.io.File; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
21 import java.io.FileNotFoundException; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
22 import java.io.IOException; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
23 import java.util.List; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
24 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
25 import org.apache.log4j.Logger; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
26 import org.apache.velocity.Template; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
27 import org.geotools.data.shapefile.ShpFiles; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
28 import org.geotools.data.shapefile.shp.ShapefileHeader; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
29 import org.geotools.data.shapefile.shp.ShapefileReader; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
30 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
31 public class ArtifactMapfileGenerator extends MapfileGenerator { |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
32 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
33 private static Logger logger = Logger.getLogger(ArtifactMapfileGenerator.class); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
34 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
35 @Override |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
36 protected String getVelocityLogfile() { |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
37 return RiverUtils.getXPathString(RiverUtils.XPATH_FLOODMAP_VELOCITY_LOGFILE); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
38 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
39 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
40 @Override |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
41 protected String getMapserverTemplatePath() { |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
42 return RiverUtils.getXPathString(RiverUtils.XPATH_FLOODMAP_MAPSERVER_TEMPLATE_PATH); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
43 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
44 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
45 @Override |
5309
b55975761708
Changed visiblitiy of some methods. TODO: A lot of refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
4994
diff
changeset
|
46 public String getMapserverUrl() { |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
47 return RiverUtils.getXPathString(RiverUtils.XPATH_FLOODMAP_MAPSERVER_URL); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
48 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
49 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
50 /** |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
51 * Method which starts searching for meta information file and mapfile |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
52 * generation. |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
53 */ |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
54 @Override |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
55 public void generate() throws IOException |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
56 { |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
57 File[] userDirs = getUserDirs(); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
58 List<String> layers = parseLayers(userDirs); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
59 logger.info("Found " + layers.size() + " layers for user mapfile."); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
60 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
61 writeMapfile(layers); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
62 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
63 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
64 /** |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
65 * Creates a layer file used for Mapserver's mapfile which represents the |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
66 * floodmap. |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
67 * |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
68 * @param flys The D4EArtifact that owns <i>wms</i>. |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
69 * @param wms The WMSLayerFacet that contains information for the layer. |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
70 */ |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
71 public void createUeskLayer( |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
72 D4EArtifact flys, |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
73 WSPLGENLayerFacet wms, |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
74 String style, |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
75 CallContext context |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
76 ) throws FileNotFoundException, IOException |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
77 { |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
78 logger.debug("createUeskLayer"); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
79 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
80 LayerInfo layerinfo = new LayerInfo(); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
81 layerinfo.setName(MS_WSPLGEN_PREFIX + flys.identifier()); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
82 layerinfo.setType("POLYGON"); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
83 layerinfo.setDirectory(flys.identifier()); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
84 layerinfo.setData(WSPLGEN_RESULT_SHAPE); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
85 layerinfo.setTitle(Resources.getMsg(Resources.getLocale(context.getMeta()), |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
86 "floodmap.uesk", |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
87 "Floodmap")); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
88 layerinfo.setStyle(style); |
4994
63617e142dfe
Quick-fix for floodmaps. Use the correct projection for DGM.
Raimund Renkert <rrenkert@intevation.de>
parents:
4702
diff
changeset
|
89 RiverAccess access = new RiverAccess(flys); |
63617e142dfe
Quick-fix for floodmaps. Use the correct projection for DGM.
Raimund Renkert <rrenkert@intevation.de>
parents:
4702
diff
changeset
|
90 String river = access.getRiver(); |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
91 layerinfo.setSrid(RiverUtils.getRiverDGMSrid(river)); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
92 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
93 String name = MS_LAYER_PREFIX + wms.getName(); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
94 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
95 Template template = getTemplateByName(WSPLGEN_LAYER_TEMPLATE); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
96 if (template == null) { |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
97 logger.warn("Template '" + WSPLGEN_LAYER_TEMPLATE + "' found."); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
98 return; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
99 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
100 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
101 try { |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
102 File dir = new File(getShapefileBaseDir(), flys.identifier()); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
103 writeLayer(layerinfo, new File(dir, name), template); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
104 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
105 catch (FileNotFoundException fnfe) { |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
106 logger.error(fnfe, fnfe); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
107 logger.warn("Unable to write layer: " + name); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
108 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
109 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
110 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
111 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
112 /** |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
113 * Creates a layer file used for Mapserver's mapfile which represents the |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
114 * shape files uploaded by the user. |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
115 * |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5865
diff
changeset
|
116 * @param flys The D4EArtifact that owns <i>wms</i>. |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
117 * @param wms The WMSLayerFacet that contains information for the layer. |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
118 */ |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
119 public void createUserShapeLayer(D4EArtifact flys, WMSLayerFacet wms) |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
120 throws FileNotFoundException, IOException |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
121 { |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
122 logger.debug("createUserShapeLayer"); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
123 |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
124 String uuid = flys.identifier(); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
125 File dir = new File(getShapefileBaseDir(), uuid); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
126 File test = new File(dir, WSPLGEN_USER_SHAPE); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
127 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
128 if (!test.exists() || !test.canRead()) { |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
129 logger.debug("No user layer existing."); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
130 return; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
131 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
132 |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
133 File userShape = new File(dir, WSPLGEN_USER_SHAPE); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
134 ShpFiles sf = new ShpFiles(userShape); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
135 ShapefileReader sfr = new ShapefileReader(sf, true, false, null); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
136 ShapefileHeader sfh = sfr.getHeader(); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
137 |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
138 String group = uuid + MS_USERSHAPE_PREFIX; |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
139 String groupTitle = "I18N_USER_SHAPE_TITLE"; |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
140 |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
141 LayerInfo info = new LayerInfo(); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
142 info.setName(MS_USERSHAPE_PREFIX + uuid); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
143 if (sfh.getShapeType().isLineType()) { |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
144 info.setType("LINE"); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
145 } |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
146 else if (sfh.getShapeType().isPolygonType()) { |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
147 info.setType("POLYGON"); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
148 } |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
149 else { |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
150 return; |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
151 } |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
152 info.setDirectory(uuid); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
153 info.setData(WSPLGEN_USER_SHAPE); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
154 info.setTitle("I18N_USER_SHAPE"); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
155 info.setGroup(group); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
156 info.setGroupTitle(groupTitle); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
157 info.setSrid(wms.getSrid()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
158 |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
159 String nameUser = MS_LAYER_PREFIX + wms.getName(); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
160 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
161 Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
162 if (tpl == null) { |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
163 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found."); |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
164 return; |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
165 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
166 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
167 try { |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
168 writeLayer(info, new File(dir, nameUser), tpl); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
169 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
170 catch (FileNotFoundException fnfe) { |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
171 logger.error(fnfe, fnfe); |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
172 logger.warn("Unable to write layer: " + nameUser); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
173 } |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
174 |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
175 } |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
176 |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
177 |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
178 /** |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
179 * Creates a layer file used for Mapserver's mapfile which represents |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
180 * geometries from database. |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
181 * |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
182 * @param flys The D4EArtifact that owns <i>wms</i>. |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
183 * @param wms The WMSLayerFacet that contains information for the layer. |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
184 */ |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
185 public void createDatabaseLayer( |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
186 D4EArtifact flys, |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
187 WMSDBLayerFacet wms, |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
188 String style |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
189 ) |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
190 throws FileNotFoundException, IOException |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
191 { |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
192 logger.debug("createDatabaseLayer"); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
193 |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
194 LayerInfo layerinfo = new LayerInfo(); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
195 layerinfo.setName(wms.getName() + "-" + flys.identifier()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
196 layerinfo.setType(wms.getGeometryType()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
197 layerinfo.setFilter(wms.getFilter()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
198 layerinfo.setData(wms.getData()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
199 layerinfo.setTitle(wms.getDescription()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
200 layerinfo.setStyle(style); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
201 if(wms.getExtent() != null) { |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
202 layerinfo.setExtent(GeometryUtils.jtsBoundsToOLBounds(wms.getExtent())); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
203 } |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
204 layerinfo.setConnection(wms.getConnection()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
205 layerinfo.setConnectionType(wms.getConnectionType()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
206 layerinfo.setLabelItem(wms.getLabelItem()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
207 layerinfo.setSrid(wms.getSrid()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
208 |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
209 String name = MS_LAYER_PREFIX + wms.getName(); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
210 |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
211 Template template = getTemplateByName(DB_LAYER_TEMPLATE); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
212 if (template == null) { |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
213 logger.warn("Template '" + DB_LAYER_TEMPLATE + "' found."); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
214 return; |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
215 } |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
216 |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
217 try { |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
218 File dir = new File(getShapefileBaseDir(), flys.identifier()); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
219 writeLayer(layerinfo, new File(dir, name), template); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
220 } |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
221 catch (FileNotFoundException fnfe) { |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
222 logger.error(fnfe, fnfe); |
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
223 logger.warn("Unable to write layer: " + name); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
224 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
225 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
226 |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
227 @Override |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
228 protected String getMapfilePath() { |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
229 return RiverUtils.getXPathString(RiverUtils.XPATH_FLOODMAP_MAPFILE_PATH); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
230 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
231 |
6332
f5bb53106ae8
Remove createBarriersLayer and createBarriers
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
232 @Override |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
233 protected String getMapfileTemplate() { |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
234 return RiverUtils.getXPathString(RiverUtils.XPATH_FLOODMAP_MAPFILE_TEMPLATE); |
4702
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
235 } |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
236 |
13abfb1bcb75
Fix typo in class names and correct file path in floodmap.xml.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
237 } |