Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/mapserver/ArtifactMapfileGenerator.java @ 5087:cbfdd7376009 mapgenfix
ArtifactMapfileGenerator can now generate user shape mapfiles again.
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Mon, 25 Feb 2013 11:51:17 +0100 |
parents | cc50e1b9fc60 |
children | cfc5540a4eec |
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)) { |
5087
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
67 File userLayer = createUserShapeLayer(layerShape); |
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
68 if (userLayer != null) { |
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
69 layerSnippets.add(userLayer.getCanonicalPath()); |
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
70 } |
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
|
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 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
|
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 } |
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
|
75 } |
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
|
76 |
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
|
77 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
|
78 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
79 |
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 * 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
|
82 * floodmap. |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
83 * |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
84 * @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
|
85 * @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
|
86 */ |
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
|
87 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
|
88 FLYSArtifact flys, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
89 WSPLGENLayerFacet wms, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
90 String style, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
91 CallContext context |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
92 ) 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
|
93 { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
94 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
|
95 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
96 LayerInfo layerinfo = new LayerInfo(); |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
97 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
|
98 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
|
99 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
|
100 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
|
101 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
|
102 "floodmap.uesk", |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
103 "Floodmap")); |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
104 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
|
105 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
|
106 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
|
107 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
|
108 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
109 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
|
110 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
111 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
|
112 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
|
113 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
|
114 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
115 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
116 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
117 try { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
118 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
|
119 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
|
120 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
121 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
|
122 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
|
123 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
|
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 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
127 |
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 * 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
|
130 * 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
|
131 * |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
132 * @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
|
133 * @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
|
134 */ |
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
|
135 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
|
136 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
|
137 { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
138 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
|
139 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
140 //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
|
141 //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
|
142 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
143 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
|
144 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
|
145 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
146 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
147 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
148 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
|
149 FLYSArtifact flys, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
150 WMSLayerFacet wms |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
151 ) |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
152 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
|
153 { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
154 String uuid = flys.identifier(); |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
155 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
|
156 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
|
157 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
158 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
|
159 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
|
160 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
161 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
|
162 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
|
163 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
164 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
165 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
166 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
|
167 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
|
168 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
|
169 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
|
170 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
|
171 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
|
172 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
|
173 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
|
174 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
|
175 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
176 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
|
177 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
178 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
|
179 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
|
180 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
|
181 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
182 } |
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 try { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
185 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
|
186 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
187 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
|
188 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
|
189 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
|
190 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
191 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
192 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
193 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
|
194 FLYSArtifact flys, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
195 WMSLayerFacet wms |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
196 ) |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
197 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
|
198 { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
199 String uuid = flys.identifier(); |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
200 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
|
201 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
|
202 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
203 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
|
204 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
|
205 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
206 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
|
207 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
|
208 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
209 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
210 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
211 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
|
212 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
|
213 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
|
214 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
|
215 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
|
216 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
|
217 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
|
218 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
|
219 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
|
220 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
221 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
|
222 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
223 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
|
224 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
|
225 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
|
226 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
227 } |
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 try { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
230 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
|
231 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
232 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
|
233 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
|
234 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
|
235 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
236 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
237 |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
238 protected String uuidFromPath(String path) { |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
239 logger.debug("uuidFromPath(" + path + ")"); |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
240 int i1 = 0; |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
241 int i2 = 0; |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
242 |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
243 for(;;) { |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
244 int i = path.indexOf('/', i2 + 1); |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
245 if (i == -1) { |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
246 return path.substring(i1 + 1, i2); |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
247 } |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
248 else { |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
249 i1 = i2; |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
250 i2 = i; |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
251 } |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
252 } |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
253 } |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
254 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
255 /** |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
256 * 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
|
257 * 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
|
258 */ |
5087
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
259 protected File 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
|
260 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
|
261 { |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
262 String uuid = uuidFromPath(file.getAbsolutePath()); |
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
263 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
|
264 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
265 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
|
266 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
|
267 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
268 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
|
269 logger.debug("No user layer existing."); |
5087
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
270 return null; |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
271 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
272 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
273 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
|
274 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
|
275 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
|
276 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
|
277 |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
278 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
|
279 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
|
280 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
281 LayerInfo info = new LayerInfo(); |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
282 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
|
283 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
|
284 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
|
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 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
|
287 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
|
288 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
289 else { |
5087
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
290 logger.debug("createUserShapeLayer(): unexpected geometry type"); |
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
291 return null; |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
292 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
293 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
|
294 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
|
295 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
|
296 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
|
297 info.setGroupTitle(groupTitle); |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
298 //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
|
299 |
5076
cc50e1b9fc60
Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents:
5023
diff
changeset
|
300 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
|
301 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
302 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
|
303 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
|
304 logger.warn("Template '" + SHP_LAYER_TEMPLATE + "' found."); |
5087
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
305 return null; |
5022
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 |
5087
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
308 File layerFile = new File(dir, nameUser); |
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
309 |
5022
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
310 try { |
5087
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
311 writeLayer(info, layerFile, tpl); |
5022
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 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
|
314 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
|
315 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
|
316 } |
5087
cbfdd7376009
ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents:
5076
diff
changeset
|
317 return layerFile; |
5022
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 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
320 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
321 /** |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
322 * 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
|
323 * 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
|
324 * |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
325 * @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
|
326 * @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
|
327 */ |
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
|
328 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
|
329 FLYSArtifact flys, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
330 WMSDBLayerFacet wms, |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
331 String style |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
332 ) |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
333 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
|
334 { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
335 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
|
336 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
337 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
|
338 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
|
339 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
|
340 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
|
341 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
|
342 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
|
343 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
|
344 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
|
345 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
|
346 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
347 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
|
348 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
|
349 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
|
350 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
|
351 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
352 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
|
353 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
354 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
|
355 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
|
356 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
|
357 return; |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
358 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
359 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
360 try { |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
361 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
|
362 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
|
363 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
364 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
|
365 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
|
366 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
|
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 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
370 @Override |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
371 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
|
372 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
|
373 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
374 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
375 @Override |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
376 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
|
377 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
|
378 } |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
379 |
a9243df307b1
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
380 } |