annotate flys-artifacts/src/main/java/de/intevation/flys/mapserver/ArtifactMapfileGenerator.java @ 5175:cfc5540a4eec mapgenfix

Re-add layer generation for floodmap layers (somewhat buggy though).
author Christian Lins <christian.lins@intevation.de>
date Wed, 06 Mar 2013 14:14:15 +0100
parents cbfdd7376009
children
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.resources.Resources;
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.utils.FLYSUtils;
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.GeometryUtils;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
12
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
13 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
14 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
15 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
16 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
17 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
18
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
19 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
20 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
21 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
22 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
23 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
24
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
25 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
26
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
27 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
28
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
29 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
30 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
31 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
32 }
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 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
35 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
36 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
37 }
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 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
40 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
41 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
42 }
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 /**
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
45 * 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
46 * 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
47 */
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
48 public void generate(String style, CallContext context, FLYSArtifact flys) throws IOException
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
49 {
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
50 // 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
51 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
52
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
53 // 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
54 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
55
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<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
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 // 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
59 for (File layerShape : layerShapes) {
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
60 String fileName = layerShape.getName();
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
61 File layerFile = null;
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
62
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
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)) {
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
67 layerFile = 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 }
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
69 else if (fileName.startsWith(MS_PREFIX_WSPLGEN) &&
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
70 style != null && context != null && flys != null) {
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
71 layerFile = createFloodmapLayer(layerShape, style, context, flys);
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
72 }
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
73
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
74 if (layerFile != null) {
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
75 layerSnippets.add(layerFile.getCanonicalPath());
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
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 }
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
78
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
79 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
80 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
81
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
82 @Override
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
83 public void generate() throws IOException {
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
84 generate(null, null, null);
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
85 }
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
86
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
87 /**
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
88 * 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
89 * floodmap.
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
90 */
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
91 protected File createFloodmapLayer(File file, String style, CallContext context, FLYSArtifact flys)
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
92 throws FileNotFoundException, IOException
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
93 {
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
94 String uuid = uuidFromPath(file.getAbsolutePath());
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
95 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
96
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
97 LayerInfo layerinfo = new LayerInfo();
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
98 layerinfo.setName(MS_PREFIX_WSPLGEN + "-" + uuid);
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
99 layerinfo.setType("POLYGON");
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
100 layerinfo.setDirectory(uuid);
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
101 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
102 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
103 "floodmap.uesk",
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
104 "Floodmap"));
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
105 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
106 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
107 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
108 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
109
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
110 String name = "floodmap.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
111
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
112 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
113 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
114 logger.warn("Template '" + WSPLGEN_LAYER_TEMPLATE + "' found.");
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
115 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
116 }
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 try {
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
119 File dir = new File(getShapefileBaseDir(), uuid);
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
120 File layerFile = new File(dir, name);
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
121 writeLayer(layerinfo, layerFile, template);
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
122 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
123 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
124 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
125 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
126 logger.warn("Unable to write layer: " + name);
5175
cfc5540a4eec Re-add layer generation for floodmap layers (somewhat buggy though).
Christian Lins <christian.lins@intevation.de>
parents: 5087
diff changeset
127 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
128 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
129 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
130
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 /**
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
133 * 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
134 * 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
135 *
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
136 * @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
137 * @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
138 */
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
139 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
140 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
141 {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
142 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
143
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
144 //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
145 //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
146
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
147 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
148 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
149 }
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
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
152 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
153 FLYSArtifact flys,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
154 WMSLayerFacet wms
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
155 )
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
156 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
157 {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
158 String uuid = flys.identifier();
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
159 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
160 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
161
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
162 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
163 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
164
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
165 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
166 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
167 return;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
168 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
169
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
170 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
171 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
172 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
173 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
174 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
175 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
176 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
177 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
178 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
179
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
180 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
181
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
182 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
183 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
184 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
185 return;
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
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
188 try {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
189 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
190 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
191 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
192 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
193 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
194 }
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
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
197 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
198 FLYSArtifact flys,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
199 WMSLayerFacet wms
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
200 )
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
201 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
202 {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
203 String uuid = flys.identifier();
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
204 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
205 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
206
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
207 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
208 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
209
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
210 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
211 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
212 return;
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
213 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
214
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
215 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
216 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
217 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
218 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
219 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
220 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
221 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
222 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
223 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
224
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
225 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
226
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
227 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
228 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
229 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
230 return;
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
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
233 try {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
234 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
235 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
236 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
237 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
238 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
239 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
240 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
241
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
242 protected String uuidFromPath(String path) {
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
243 logger.debug("uuidFromPath(" + path + ")");
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
244 int i1 = 0;
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
245 int i2 = 0;
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
246
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
247 for(;;) {
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
248 int i = path.indexOf('/', i2 + 1);
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
249 if (i == -1) {
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
250 return path.substring(i1 + 1, i2);
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 else {
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
253 i1 = i2;
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
254 i2 = i;
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
255 }
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
256 }
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
257 }
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
258
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
259 /**
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
260 * 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
261 * 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
262 */
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
263 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
264 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
265 {
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
266 String uuid = uuidFromPath(file.getAbsolutePath());
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
267 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
268
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
269 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
270 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
271
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
272 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
273 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
274 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
275 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
276
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
277 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
278 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
279 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
280 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
281
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
282 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
283 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
284
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
285 LayerInfo info = new LayerInfo();
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
286 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
287 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
288 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
289 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
290 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
291 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
292 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
293 else {
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
294 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
295 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
296 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
297 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
298 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
299 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
300 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
301 info.setGroupTitle(groupTitle);
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
302 //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
303
5076
cc50e1b9fc60 Work on ArtifactMapfileGenerator.createUserShapefileLayer()
Christian Lins <christian.lins@intevation.de>
parents: 5023
diff changeset
304 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
305
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
306 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
307 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
308 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
309 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
310 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
311
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
312 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
313
5022
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
314 try {
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
315 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
316 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
317 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
318 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
319 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
320 }
5087
cbfdd7376009 ArtifactMapfileGenerator can now generate user shape mapfiles again.
Christian Lins <christian.lins@intevation.de>
parents: 5076
diff changeset
321 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
322 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
323
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 /**
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
326 * 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
327 * 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
328 *
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
329 * @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
330 * @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
331 */
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
332 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
333 FLYSArtifact flys,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
334 WMSDBLayerFacet wms,
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
335 String style
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 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
338 {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
339 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
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 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
342 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
343 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
344 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
345 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
346 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
347 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
348 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
349 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
350 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
351 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
352 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
353 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
354 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
355
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
356 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
357
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
358 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
359 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
360 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
361 return;
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 try {
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
365 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
366 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
367 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
368 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
369 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
370 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
371 }
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 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
375 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
376 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
377 }
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 @Override
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
380 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
381 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
382 }
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
383
a9243df307b1 Move all classes of mapfile generation to de.intevation.flys.mapserver package.
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
384 }

http://dive4elements.wald.intevation.org