comparison flys-artifacts/src/main/java/de/intevation/flys/utils/RiverMapfileGenerator.java @ 4703:38ec171544de

Work on rivers.map Generator.
author Christian Lins <christian.lins@intevation.de>
date Tue, 18 Dec 2012 15:46:36 +0100
parents 13abfb1bcb75
children d93748043cbc
comparison
equal deleted inserted replaced
4702:13abfb1bcb75 4703:38ec171544de
12 import org.apache.log4j.Logger; 12 import org.apache.log4j.Logger;
13 import org.apache.velocity.Template; 13 import org.apache.velocity.Template;
14 14
15 public class RiverMapfileGenerator extends MapfileGenerator { 15 public class RiverMapfileGenerator extends MapfileGenerator {
16 16
17 public static final String XPATH_RIVERMAP_RIVER_PROJECTION =
18 "/artifact-database/rivermap/river[@name=$name]/srid/@value";
19
20 public static final String XPATH_RIVERMAP_SHAPEFILE_DIR =
21 "/artifact-database/rivermap/shapefile-path/@value";
22
23 public static final String XPATH_RIVERMAP_VELOCITY_LOGFILE =
24 "/artifact-database/rivermap/velocity/logfile/@path";
25
26 public static final String XPATH_RIVERMAP_MAPSERVER_URL =
27 "/artifact-database/rivermap/mapserver/server/@path";
28
29 public static final String XPATH_RIVERMAP_MAPFILE_PATH =
30 "/artifact-database/rivermap/mapserver/mapfile/@path";
31
32 public static final String XPATH_RIVERMAP_MAPFILE_TEMPLATE =
33 "/artifact-database/rivermap/mapserver/map-template/@path";
34
35 public static final String XPATH_RIVERMAP_MAPSERVER_TEMPLATE_PATH =
36 "/artifact-database/rivermap/mapserver/templates/@path";
37
17 private static Logger logger = Logger.getLogger(RiverMapfileGenerator.class); 38 private static Logger logger = Logger.getLogger(RiverMapfileGenerator.class);
18 39
19 /** 40 /**
20 * Generate river axis mapfile. 41 * Generate river axis mapfile.
21 */ 42 */
22 @Override 43 @Override
23 public void generate() { 44 public void generate() {
24 logger.debug("generate()"); 45 logger.debug("generate()");
25 46
26 List<River> rivers = RiverFactory.getRivers(); 47 List<River> rivers = RiverFactory.getRivers();
27 List<String> riverNames = new ArrayList<String>(); 48 List<String> riverFiles = new ArrayList<String>();
28 49
29 for (River river : rivers) { 50 for (River river : rivers) {
30 /*createRiverAxisLayer( 51 createRiverAxisLayer(
31 river.getName(), 52 river.getName(),
32 river.getId(), 53 river.getId(),
33 "41677", 54 "41677",
34 "100,100,100,100");*/ 55 "100,100,100,100");
35 riverNames.add(river.getName()); 56 riverFiles.add("river-" + river.getName() + ".map");
36 } 57 }
37 writeMapfile(riverNames); 58 writeMapfile(riverFiles);
38 } 59 }
39 60
40 protected void createRiverAxisLayer(String riverName, int riverID, String srid, String extend) { 61 protected void createRiverAxisLayer(String riverName, int riverID, String srid, String extend) {
41 LayerInfo layerInfo = new LayerInfo(); 62 LayerInfo layerInfo = new LayerInfo();
42 layerInfo.setName(riverName); 63 layerInfo.setName(riverName);
43 layerInfo.setSrid(srid); 64 layerInfo.setSrid(srid);
44 layerInfo.setExtent(extend); 65 layerInfo.setExtent(extend);
66 layerInfo.setConnectionType(FLYSUtils.isUsingOracle() ? "oraclespatial" : "postgis");
45 67
46 File layerFile = new File(getMapfilePath()); 68 File layerFile = new File("river-" + riverName + ".map");
47 Template template = getTemplateByName(DB_LAYER_TEMPLATE); 69 Template template = getTemplateByName(DB_LAYER_TEMPLATE);
48 if (template == null) { 70 if (template == null) {
49 logger.warn("Template '" + DB_LAYER_TEMPLATE + "' found."); 71 logger.warn("Template '" + DB_LAYER_TEMPLATE + "' not found.");
50 return; 72 return;
51 } 73 }
52 74
53 try { 75 try {
54 writeLayer(layerInfo, layerFile, template); 76 writeLayer(layerInfo, layerFile, template);
58 } 80 }
59 } 81 }
60 82
61 @Override 83 @Override
62 protected String getVelocityLogfile() { 84 protected String getVelocityLogfile() {
63 return FLYSUtils.getXPathString(FLYSUtils.XPATH_RIVERMAP_VELOCITY_LOGFILE); 85 return FLYSUtils.getXPathString(XPATH_RIVERMAP_VELOCITY_LOGFILE);
64 } 86 }
65 87
66 @Override 88 @Override
67 protected String getMapserverTemplatePath() { 89 protected String getMapserverTemplatePath() {
68 return FLYSUtils.getXPathString(FLYSUtils.XPATH_RIVERMAP_MAPSERVER_TEMPLATE_PATH); 90 return FLYSUtils.getXPathString(XPATH_RIVERMAP_MAPSERVER_TEMPLATE_PATH);
69 } 91 }
70 92
71 @Override 93 @Override
72 protected String getMapserverUrl() { 94 protected String getMapserverUrl() {
73 return FLYSUtils.getXPathString(FLYSUtils.XPATH_RIVERMAP_MAPSERVER_URL); 95 return FLYSUtils.getXPathString(XPATH_RIVERMAP_MAPSERVER_URL);
74 } 96 }
75 97
76 @Override 98 @Override
77 protected String getMapfilePath() { 99 protected String getMapfilePath() {
78 return FLYSUtils.getXPathString(FLYSUtils.XPATH_RIVERMAP_MAPFILE_PATH); 100 return FLYSUtils.getXPathString(XPATH_RIVERMAP_MAPFILE_PATH);
79 } 101 }
80 102
81 @Override 103 @Override
82 protected String getMapfileTemplate() { 104 protected String getMapfileTemplate() {
83 return FLYSUtils.getXPathString(FLYSUtils.XPATH_RIVERMAP_MAPFILE_TEMPLATE); 105 return FLYSUtils.getXPathString(XPATH_RIVERMAP_MAPFILE_TEMPLATE);
84 } 106 }
85 } 107 }

http://dive4elements.wald.intevation.org