Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/mapserver/ArtifactMapfileGenerator.java @ 5076:cc50e1b9fc60 mapgenfix
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Wed, 20 Feb 2013 21:00:33 +0100 |
parents | 1da61095040c |
children | cbfdd7376009 |
rev | line source |
---|---|
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.mapserver; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
2 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
3 import de.intevation.artifacts.CallContext; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
4 import de.intevation.flys.artifacts.FLYSArtifact; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
5 import de.intevation.flys.artifacts.access.RiverAccess; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
6 import de.intevation.flys.artifacts.model.LayerInfo; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
7 import de.intevation.flys.artifacts.model.map.WMSDBLayerFacet; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
8 import de.intevation.flys.artifacts.model.map.WMSLayerFacet; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
9 import de.intevation.flys.artifacts.model.map.WSPLGENLayerFacet; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
10 import de.intevation.flys.artifacts.resources.Resources; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
11 import de.intevation.flys.utils.FLYSUtils; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.flys.utils.GeometryUtils; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
13 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
14 import java.io.File; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
15 import java.io.FileNotFoundException; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
16 import java.io.IOException; |
5023
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
17 import java.util.ArrayList; |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
18 import java.util.List; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
19 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
20 import org.apache.log4j.Logger; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
21 import org.apache.velocity.Template; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
22 import org.geotools.data.shapefile.ShpFiles; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
23 import org.geotools.data.shapefile.shp.ShapefileHeader; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
24 import org.geotools.data.shapefile.shp.ShapefileReader; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
25 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
26 public class ArtifactMapfileGenerator extends MapfileGenerator { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
27 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
28 private static Logger logger = Logger.getLogger(ArtifactMapfileGenerator.class); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
29 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
30 @Override |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
31 protected String getVelocityLogfile() { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
32 return FLYSUtils.getXPathString(FLYSUtils.XPATH_FLOODMAP_VELOCITY_LOGFILE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
33 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
34 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
35 @Override |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
36 protected String getMapserverTemplatePath() { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
37 return FLYSUtils.getXPathString(FLYSUtils.XPATH_FLOODMAP_MAPSERVER_TEMPLATE_PATH); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
38 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
39 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
40 @Override |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
41 protected String getMapserverUrl() { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
42 return FLYSUtils.getXPathString(FLYSUtils.XPATH_FLOODMAP_MAPSERVER_URL); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
43 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
44 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
45 /** |
5023
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
46 * Generates flys.map file that contains layers of all |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
47 * projects and types (floodmap, user defined, barriers). |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
48 */ |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
49 @Override |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
50 public void generate() throws IOException |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
51 { |
5023
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
52 // Get all directories below "shapefiles/" |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
53 File[] prjDirs = getProjectDirs(); |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
54 |
5023
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
55 // Look for appropriate shapefiles that we can use as layers |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
56 List<File> layerShapes = searchForLayerShapes(prjDirs); |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
57 |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
58 List<String> layerSnippets = new ArrayList<String>(); |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
59 |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
60 // Generate layer snippet for each shapefile |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
61 for (File layerShape : layerShapes) { |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
62 String fileName = layerShape.getName(); |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
63 if (fileName.startsWith(MS_PREFIX_BARRIERS)) { |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
64 |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
65 } |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
66 else if (fileName.startsWith(MS_PREFIX_USER)) { |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
67 createUserShapeLayer(layerShape); |
5023
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
68 } |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
69 else if (fileName.startsWith(MS_PREFIX_WSPLGEN)) { |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
70 |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
71 } |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
72 } |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
73 |
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
74 writeMapfile(layerSnippets); |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
75 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
76 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
77 /** |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
78 * Creates a layer file used for Mapserver's mapfile which represents the |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
79 * floodmap. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
80 * |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
81 * @param flys The FLYSArtifact that owns <i>wms</i>. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
82 * @param wms The WMSLayerFacet that contains information for the layer. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
83 */ |
5023
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
84 protected void createUeskLayer( |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
85 FLYSArtifact flys, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
86 WSPLGENLayerFacet wms, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
87 String style, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
88 CallContext context |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
89 ) throws FileNotFoundException, IOException |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
90 { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
91 logger.debug("createUeskLayer"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
92 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
93 LayerInfo layerinfo = new LayerInfo(); |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
94 layerinfo.setName(MS_PREFIX_WSPLGEN + flys.identifier()); |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
95 layerinfo.setType("POLYGON"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
96 layerinfo.setDirectory(flys.identifier()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
97 layerinfo.setData(WSPLGEN_RESULT_SHAPE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
98 layerinfo.setTitle(Resources.getMsg(Resources.getLocale(context.getMeta()), |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
99 "floodmap.uesk", |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
100 "Floodmap")); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
101 layerinfo.setStyle(style); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
102 RiverAccess access = new RiverAccess(flys); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
103 String river = access.getRiver(); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
104 layerinfo.setSrid(FLYSUtils.getRiverDGMSrid(river)); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
105 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
106 String name = MS_LAYER_PREFIX + wms.getName(); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
107 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
108 Template template = getTemplateByName(WSPLGEN_LAYER_TEMPLATE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
109 if (template == null) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
110 logger.warn("Template '" + WSPLGEN_LAYER_TEMPLATE + "' found."); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
111 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
112 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
113 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
114 try { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
115 File dir = new File(getShapefileBaseDir(), flys.identifier()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
116 writeLayer(layerinfo, new File(dir, name), template); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
117 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
118 catch (FileNotFoundException fnfe) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
119 logger.error(fnfe, fnfe); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
120 logger.warn("Unable to write layer: " + name); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
121 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
122 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
123 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
124 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
125 /** |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
126 * Creates a layer file used for Mapserver's mapfile which represents the |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
127 * user defined barriers. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
128 * |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
129 * @param flys The FLYSArtifact that owns <i>wms</i>. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
130 * @param wms The WMSLayerFacet that contains information for the layer. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
131 */ |
5023
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
132 protected void createBarriersLayer(FLYSArtifact flys, WMSLayerFacet wms) |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
133 throws FileNotFoundException, IOException |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
134 { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
135 logger.debug("createBarriersLayer"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
136 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
137 //String uuid = flys.identifier(); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
138 //File dir = new File(getShapefileBaseDir(), uuid); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
139 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
140 createBarriersLineLayer(flys, wms); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
141 createBarriersPolygonLayer(flys, wms); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
142 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
143 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
144 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
145 protected void createBarriersLineLayer( |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
146 FLYSArtifact flys, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
147 WMSLayerFacet wms |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
148 ) |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
149 throws FileNotFoundException, IOException |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
150 { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
151 String uuid = flys.identifier(); |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
152 String group = MS_PREFIX_BARRIERS + uuid; |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
153 String groupTitle = "I18N_BARRIERS_TITLE"; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
154 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
155 File dir = new File(getShapefileBaseDir(), uuid); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
156 File test = new File(dir, WSPLGEN_LINES_SHAPE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
157 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
158 if (!test.exists() || !test.canRead()) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
159 logger.debug("No barrier line layer existing."); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
160 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
161 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
162 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
163 LayerInfo lineInfo = new LayerInfo(); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
164 lineInfo.setName(MS_LINE_PREFIX + uuid); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
165 lineInfo.setType("LINE"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
166 lineInfo.setDirectory(uuid); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
167 lineInfo.setData(WSPLGEN_LINES_SHAPE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
168 lineInfo.setTitle("I18N_LINE_SHAPE"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
169 lineInfo.setGroup(group); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
170 lineInfo.setGroupTitle(groupTitle); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
171 lineInfo.setSrid(wms.getSrid()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
172 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
173 String nameLines = MS_LAYER_PREFIX + wms.getName() + "-lines"; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
174 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
175 Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
176 if (tpl == null) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
177 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found."); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
178 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
179 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
180 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
181 try { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
182 writeLayer(lineInfo, new File(dir, nameLines), tpl); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
183 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
184 catch (FileNotFoundException fnfe) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
185 logger.error(fnfe, fnfe); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
186 logger.warn("Unable to write layer: " + nameLines); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
187 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
188 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
189 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
190 protected void createBarriersPolygonLayer( |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
191 FLYSArtifact flys, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
192 WMSLayerFacet wms |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
193 ) |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
194 throws FileNotFoundException, IOException |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
195 { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
196 String uuid = flys.identifier(); |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
197 String group = uuid + MS_PREFIX_BARRIERS; |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
198 String groupTitle = "I18N_BARRIERS_TITLE"; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
199 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
200 File dir = new File(getShapefileBaseDir(), uuid); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
201 File test = new File(dir, WSPLGEN_POLYGONS_SHAPE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
202 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
203 if (!test.exists() || !test.canRead()) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
204 logger.debug("No barrier line layer existing."); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
205 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
206 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
207 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
208 LayerInfo polygonInfo = new LayerInfo(); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
209 polygonInfo.setName(MS_POLYGONS_PREFIX + uuid); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
210 polygonInfo.setType("POLYGON"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
211 polygonInfo.setDirectory(uuid); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
212 polygonInfo.setData(WSPLGEN_POLYGONS_SHAPE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
213 polygonInfo.setTitle("I18N_POLYGON_SHAPE"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
214 polygonInfo.setGroup(group); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
215 polygonInfo.setGroupTitle(groupTitle); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
216 polygonInfo.setSrid(wms.getSrid()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
217 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
218 String namePolygons = MS_LAYER_PREFIX + wms.getName() + "-polygons"; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
219 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
220 Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
221 if (tpl == null) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
222 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found."); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
223 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
224 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
225 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
226 try { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
227 writeLayer(polygonInfo, new File(dir, namePolygons), tpl); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
228 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
229 catch (FileNotFoundException fnfe) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
230 logger.error(fnfe, fnfe); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
231 logger.warn("Unable to write layer: " + namePolygons); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
232 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
233 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
234 |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
235 protected String uuidFromPath(String path) { |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
236 logger.debug("uuidFromPath(" + path + ")"); |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
237 int i1 = 0; |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
238 int i2 = 0; |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
239 |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
240 for(;;) { |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
241 int i = path.indexOf('/', i2 + 1); |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
242 if (i == -1) { |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
243 return path.substring(i1 + 1, i2); |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
244 } |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
245 else { |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
246 i1 = i2; |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
247 i2 = i; |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
248 } |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
249 } |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
250 } |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
251 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
252 /** |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
253 * Creates a layer file used for Mapserver's mapfile which represents the |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
254 * shape files uploaded by the user. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
255 */ |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
256 protected void createUserShapeLayer(File file) |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
257 throws FileNotFoundException, IOException |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
258 { |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
259 String uuid = uuidFromPath(file.getAbsolutePath()); |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
260 logger.debug("createUserShapeLayer(): uuid=" + uuid); |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
261 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
262 File dir = new File(getShapefileBaseDir(), uuid); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
263 File test = new File(dir, WSPLGEN_USER_SHAPE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
264 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
265 if (!test.exists() || !test.canRead()) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
266 logger.debug("No user layer existing."); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
267 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
268 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
269 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
270 File userShape = new File(dir, WSPLGEN_USER_SHAPE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
271 ShpFiles sf = new ShpFiles(userShape); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
272 ShapefileReader sfr = new ShapefileReader(sf, true, false, null); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
273 ShapefileHeader sfh = sfr.getHeader(); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
274 |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
275 String group = uuid + MS_PREFIX_USER; |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
276 String groupTitle = "I18N_USER_SHAPE_TITLE"; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
277 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
278 LayerInfo info = new LayerInfo(); |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
279 info.setName(MS_PREFIX_USER + uuid); |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
280 if (sfh.getShapeType().isLineType()) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
281 info.setType("LINE"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
282 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
283 else if (sfh.getShapeType().isPolygonType()) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
284 info.setType("POLYGON"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
285 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
286 else { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
287 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
288 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
289 info.setDirectory(uuid); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
290 info.setData(WSPLGEN_USER_SHAPE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
291 info.setTitle("I18N_USER_SHAPE"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
292 info.setGroup(group); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
293 info.setGroupTitle(groupTitle); |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
294 //info.setSrid(wms.getSrid()); // FIXME: Required? |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
295 |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
296 String nameUser = "user.layer"; //MS_LAYER_PREFIX + wms.getName(); |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
297 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
298 Template tpl = getTemplateByName(SHP_LAYER_TEMPLATE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
299 if (tpl == null) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
300 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found."); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
301 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
302 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
303 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
304 try { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
305 writeLayer(info, new File(dir, nameUser), tpl); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
306 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
307 catch (FileNotFoundException fnfe) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
308 logger.error(fnfe, fnfe); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
309 logger.warn("Unable to write layer: " + nameUser); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
310 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
311 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
312 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
313 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
314 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
315 /** |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
316 * Creates a layer file used for Mapserver's mapfile which represents |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
317 * geometries from database. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
318 * |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
319 * @param flys The FLYSArtifact that owns <i>wms</i>. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
320 * @param wms The WMSLayerFacet that contains information for the layer. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
321 */ |
5023
1da61095040c
Renaming methods and fields. Start refactoring with ArtifactMapfileGenerator.generate() which should be the main entry point.
Christian Lins <christian.lins@intevation.de>
parents:
5022
diff
changeset
|
322 protected void createDatabaseLayer( |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
323 FLYSArtifact flys, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
324 WMSDBLayerFacet wms, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
325 String style |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
326 ) |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
327 throws FileNotFoundException, IOException |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
328 { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
329 logger.debug("createDatabaseLayer"); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
330 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
331 LayerInfo layerinfo = new LayerInfo(); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
332 layerinfo.setName(wms.getName() + "-" + flys.identifier()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
333 layerinfo.setType(wms.getGeometryType()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
334 layerinfo.setFilter(wms.getFilter()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
335 layerinfo.setData(wms.getData()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
336 layerinfo.setTitle(wms.getDescription()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
337 layerinfo.setStyle(style); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
338 if(wms.getExtent() != null) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
339 layerinfo.setExtent(GeometryUtils.jtsBoundsToOLBounds(wms.getExtent())); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
340 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
341 layerinfo.setConnection(wms.getConnection()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
342 layerinfo.setConnectionType(wms.getConnectionType()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
343 layerinfo.setLabelItem(wms.getLabelItem()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
344 layerinfo.setSrid(wms.getSrid()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
345 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
346 String name = MS_LAYER_PREFIX + wms.getName(); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
347 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
348 Template template = getTemplateByName(DB_LAYER_TEMPLATE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
349 if (template == null) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
350 logger.warn("Template '" + DB_LAYER_TEMPLATE + "' found."); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
351 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
352 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
353 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
354 try { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
355 File dir = new File(getShapefileBaseDir(), flys.identifier()); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
356 writeLayer(layerinfo, new File(dir, name), template); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
357 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
358 catch (FileNotFoundException fnfe) { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
359 logger.error(fnfe, fnfe); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
360 logger.warn("Unable to write layer: " + name); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
361 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
362 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
363 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
364 @Override |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
365 protected String getMapfilePath() { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
366 return FLYSUtils.getXPathString(FLYSUtils.XPATH_FLOODMAP_MAPFILE_PATH); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
367 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
368 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
369 @Override |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
370 protected String getMapfileTemplate() { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
371 return FLYSUtils.getXPathString(FLYSUtils.XPATH_FLOODMAP_MAPFILE_TEMPLATE); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
372 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
373 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
374 } |