comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/FloodMapState.java @ 6710:ffc9cb39cea7

Remove duplicate code for mapfile generation. ID problem still not fixed (#657).
author Christian Lins <christian.lins@intevation.de>
date Tue, 30 Jul 2013 16:09:40 +0200
parents 36dc11244ec3
children 93e7f947f6fa
comparison
equal deleted inserted replaced
6709:fe496c477173 6710:ffc9cb39cea7
6 * documentation coming with Dive4Elements River for details. 6 * documentation coming with Dive4Elements River for details.
7 */ 7 */
8 8
9 package org.dive4elements.river.artifacts.states; 9 package org.dive4elements.river.artifacts.states;
10 10
11 import com.vividsolutions.jts.geom.Coordinate;
12 import com.vividsolutions.jts.geom.Geometry;
13 import com.vividsolutions.jts.geom.LineString;
14 import com.vividsolutions.jts.geom.Polygon;
15
11 import java.io.File; 16 import java.io.File;
12 import java.io.FileNotFoundException; 17 import java.io.FileNotFoundException;
13 import java.io.FileOutputStream; 18 import java.io.FileOutputStream;
14 import java.io.IOException; 19 import java.io.IOException;
15
16 import java.util.ArrayList; 20 import java.util.ArrayList;
17 import java.util.Arrays; 21 import java.util.Arrays;
18 import java.util.List; 22 import java.util.List;
19 23
20 import org.apache.log4j.Logger; 24 import org.apache.log4j.Logger;
21
22 import org.apache.velocity.Template; 25 import org.apache.velocity.Template;
23
24 import org.geotools.feature.FeatureCollection;
25 import org.geotools.feature.FeatureCollections;
26
27 import org.geotools.feature.simple.SimpleFeatureBuilder;
28
29 import org.hibernate.HibernateException;
30
31 import org.opengis.feature.simple.SimpleFeature;
32 import org.opengis.feature.simple.SimpleFeatureType;
33
34 import com.vividsolutions.jts.geom.Coordinate;
35 import com.vividsolutions.jts.geom.Geometry;
36 import com.vividsolutions.jts.geom.LineString;
37 import com.vividsolutions.jts.geom.Polygon;
38
39 import org.dive4elements.artifactdatabase.state.Facet; 26 import org.dive4elements.artifactdatabase.state.Facet;
40
41 import org.dive4elements.artifacts.Artifact; 27 import org.dive4elements.artifacts.Artifact;
42 import org.dive4elements.artifacts.CallContext; 28 import org.dive4elements.artifacts.CallContext;
43 import org.dive4elements.artifacts.CallMeta; 29 import org.dive4elements.artifacts.CallMeta;
44 import org.dive4elements.artifacts.GlobalContext; 30 import org.dive4elements.artifacts.GlobalContext;
45
46 import org.dive4elements.artifacts.common.utils.FileTools; 31 import org.dive4elements.artifacts.common.utils.FileTools;
47
48 import org.dive4elements.river.artifacts.D4EArtifact; 32 import org.dive4elements.river.artifacts.D4EArtifact;
49
50 import org.dive4elements.river.artifacts.access.RangeAccess; 33 import org.dive4elements.river.artifacts.access.RangeAccess;
51
52 import org.dive4elements.river.artifacts.context.RiverContext; 34 import org.dive4elements.river.artifacts.context.RiverContext;
53
54 import org.dive4elements.river.artifacts.model.CalculationMessage; 35 import org.dive4elements.river.artifacts.model.CalculationMessage;
55 import org.dive4elements.river.artifacts.model.CalculationResult; 36 import org.dive4elements.river.artifacts.model.CalculationResult;
56 import org.dive4elements.river.artifacts.model.FacetTypes; 37 import org.dive4elements.river.artifacts.model.FacetTypes;
57 import org.dive4elements.river.artifacts.model.LayerInfo; 38 import org.dive4elements.river.artifacts.model.LayerInfo;
58 import org.dive4elements.river.artifacts.model.WQKms; 39 import org.dive4elements.river.artifacts.model.WQKms;
59
60 import org.dive4elements.river.artifacts.model.map.HWS; 40 import org.dive4elements.river.artifacts.model.map.HWS;
61 import org.dive4elements.river.artifacts.model.map.HWSContainer; 41 import org.dive4elements.river.artifacts.model.map.HWSContainer;
62 import org.dive4elements.river.artifacts.model.map.HWSFactory; 42 import org.dive4elements.river.artifacts.model.map.HWSFactory;
63 import org.dive4elements.river.artifacts.model.map.WMSLayerFacet; 43 import org.dive4elements.river.artifacts.model.map.WMSLayerFacet;
64 import org.dive4elements.river.artifacts.model.map.WSPLGENCalculation; 44 import org.dive4elements.river.artifacts.model.map.WSPLGENCalculation;
65 import org.dive4elements.river.artifacts.model.map.WSPLGENJob; 45 import org.dive4elements.river.artifacts.model.map.WSPLGENJob;
66 import org.dive4elements.river.artifacts.model.map.WSPLGENReportFacet; 46 import org.dive4elements.river.artifacts.model.map.WSPLGENReportFacet;
67
68 import org.dive4elements.river.artifacts.resources.Resources; 47 import org.dive4elements.river.artifacts.resources.Resources;
69
70 import org.dive4elements.river.exports.WstWriter; 48 import org.dive4elements.river.exports.WstWriter;
71
72 import org.dive4elements.river.model.CrossSectionTrack; 49 import org.dive4elements.river.model.CrossSectionTrack;
73 import org.dive4elements.river.model.DGM; 50 import org.dive4elements.river.model.DGM;
74 import org.dive4elements.river.model.Floodplain; 51 import org.dive4elements.river.model.Floodplain;
75 import org.dive4elements.river.model.RiverAxis; 52 import org.dive4elements.river.model.RiverAxis;
76
77 import org.dive4elements.river.utils.ArtifactMapfileGenerator; 53 import org.dive4elements.river.utils.ArtifactMapfileGenerator;
78 import org.dive4elements.river.utils.RiverUtils;
79 import org.dive4elements.river.utils.GeometryUtils; 54 import org.dive4elements.river.utils.GeometryUtils;
80 import org.dive4elements.river.utils.MapfileGenerator; 55 import org.dive4elements.river.utils.MapfileGenerator;
81 56 import org.dive4elements.river.utils.RiverUtils;
82 import org.dive4elements.river.wsplgen.FacetCreator; 57 import org.dive4elements.river.wsplgen.FacetCreator;
83 import org.dive4elements.river.wsplgen.JobObserver; 58 import org.dive4elements.river.wsplgen.JobObserver;
84 import org.dive4elements.river.wsplgen.Scheduler; 59 import org.dive4elements.river.wsplgen.Scheduler;
60 import org.geotools.feature.FeatureCollection;
61 import org.geotools.feature.FeatureCollections;
62 import org.geotools.feature.simple.SimpleFeatureBuilder;
63 import org.hibernate.HibernateException;
64 import org.opengis.feature.simple.SimpleFeature;
65 import org.opengis.feature.simple.SimpleFeatureType;
85 66
86 public class FloodMapState 67 public class FloodMapState
87 extends DefaultState 68 extends DefaultState
88 implements FacetTypes 69 implements FacetTypes
89 { 70 {
107 public static final String WSPLGEN_AXIS = "axis.shp"; 88 public static final String WSPLGEN_AXIS = "axis.shp";
108 public static final String WSPLGEN_QPS = "qps.shp"; 89 public static final String WSPLGEN_QPS = "qps.shp";
109 public static final String WSPLGEN_FLOODPLAIN = "talaue.shp"; 90 public static final String WSPLGEN_FLOODPLAIN = "talaue.shp";
110 public static final String WSPLGEN_WSP_FILE = "waterlevel.wst"; 91 public static final String WSPLGEN_WSP_FILE = "waterlevel.wst";
111 public static final String WSPLGEN_OUTPUT_FILE = "wsplgen.shp"; 92 public static final String WSPLGEN_OUTPUT_FILE = "wsplgen.shp";
112 public static final String WSPLGEN_USER_SHAPE = "user-rgd.shp"; 93 public static final String WSPLGEN_USER_RGD_SHAPE = "user-rgd.shp";
113 public static final String WSPLGEN_USER_ZIP = "user-rgd.zip"; 94 public static final String WSPLGEN_USER_RGD_ZIP = "user-rgd.zip";
114 public static final String WSPLGEN_USER_FILENAME = "user-rgd"; 95 public static final String WSPLGEN_USER_RGD = "user-rgd";
115 96
116 public static final String WSPLGEN_QPS_NAME = "qps"; 97 public static final String WSPLGEN_QPS_NAME = "qps";
117 98
118 public static final int WSPLGEN_DEFAULT_OUTPUT = 0; 99 public static final int WSPLGEN_DEFAULT_OUTPUT = 0;
119 100
426 } 407 }
427 if (successLines) { 408 if (successLines) {
428 createMapfile( 409 createMapfile(
429 artifact, 410 artifact,
430 artifactDir, 411 artifactDir,
431 MapfileGenerator.MS_LAYER_PREFIX + "hws-lines", 412 MapfileGenerator.MS_LAYER_PREFIX + HWS_LINES,
432 HWS_LINES_SHAPE, 413 HWS_LINES_SHAPE,
433 "LINE", 414 "LINE",
434 "31467", 415 "31467",
435 "hws"); 416 "hws");
436 job.addLin(artifactDir + "/" + HWS_LINES_SHAPE); 417 job.addLin(artifactDir + "/" + HWS_LINES_SHAPE);
439 FLOODMAP_HWS_LINES,2); 420 FLOODMAP_HWS_LINES,2);
440 } 421 }
441 } 422 }
442 423
443 424
444 private void createMapfile( 425 public static void createMapfile(
445 D4EArtifact artifact, 426 D4EArtifact artifact,
446 File artifactDir, 427 File artifactDir,
447 String name, 428 String name,
448 String hwsShapefile, 429 String hwsShapefile,
449 String type, 430 String type,
648 D4EArtifact artifact, 629 D4EArtifact artifact,
649 FacetCreator facetCreator, 630 FacetCreator facetCreator,
650 File dir, 631 File dir,
651 WSPLGENJob job 632 WSPLGENJob job
652 ) { 633 ) {
653 File archive = new File(dir, WSPLGEN_USER_SHAPE); 634 File archive = new File(dir, WSPLGEN_USER_RGD_SHAPE);
654 boolean exists = archive.exists(); 635 boolean exists = archive.exists();
655 logger.debug("shp file exists: " + exists); 636 logger.debug("shp file exists: " + exists);
656 if (exists) { 637 if (exists) {
657 job.addLin(dir + "/" + WSPLGEN_USER_SHAPE); 638 job.addLin(dir + "/" + WSPLGEN_USER_RGD_SHAPE);
658 facetCreator.createShapeFacet(FacetCreator.I18N_USERSHAPE, 639 facetCreator.createShapeFacet(FacetCreator.I18N_USERSHAPE,
659 MapfileGenerator.MS_LAYER_PREFIX + "user-rgd", 640 MapfileGenerator.MS_LAYER_PREFIX + WSPLGEN_USER_RGD,
660 FLOODMAP_USERSHAPE, 641 FLOODMAP_USERSHAPE,
661 4); 642 4);
662 } 643 }
663 } 644 }
664 645

http://dive4elements.wald.intevation.org