Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/utils/RiverMapfileGenerator.java @ 4709:e50d78334246
Documentation.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 19 Dec 2012 11:40:56 +0100 |
parents | 38ec171544de |
children | d93748043cbc |
line wrap: on
line source
package de.intevation.flys.utils; import de.intevation.flys.artifacts.model.LayerInfo; import de.intevation.flys.artifacts.model.RiverFactory; import de.intevation.flys.model.River; import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.apache.velocity.Template; public class RiverMapfileGenerator extends MapfileGenerator { public static final String XPATH_RIVERMAP_RIVER_PROJECTION = "/artifact-database/rivermap/river[@name=$name]/srid/@value"; public static final String XPATH_RIVERMAP_SHAPEFILE_DIR = "/artifact-database/rivermap/shapefile-path/@value"; public static final String XPATH_RIVERMAP_VELOCITY_LOGFILE = "/artifact-database/rivermap/velocity/logfile/@path"; public static final String XPATH_RIVERMAP_MAPSERVER_URL = "/artifact-database/rivermap/mapserver/server/@path"; public static final String XPATH_RIVERMAP_MAPFILE_PATH = "/artifact-database/rivermap/mapserver/mapfile/@path"; public static final String XPATH_RIVERMAP_MAPFILE_TEMPLATE = "/artifact-database/rivermap/mapserver/map-template/@path"; public static final String XPATH_RIVERMAP_MAPSERVER_TEMPLATE_PATH = "/artifact-database/rivermap/mapserver/templates/@path"; private static Logger logger = Logger.getLogger(RiverMapfileGenerator.class); /** * Generate river axis mapfile. */ @Override public void generate() { logger.debug("generate()"); List<River> rivers = RiverFactory.getRivers(); List<String> riverFiles = new ArrayList<String>(); for (River river : rivers) { createRiverAxisLayer( river.getName(), river.getId(), "41677", "100,100,100,100"); riverFiles.add("river-" + river.getName() + ".map"); } writeMapfile(riverFiles); } protected void createRiverAxisLayer(String riverName, int riverID, String srid, String extend) { LayerInfo layerInfo = new LayerInfo(); layerInfo.setName(riverName); layerInfo.setSrid(srid); layerInfo.setExtent(extend); layerInfo.setConnectionType(FLYSUtils.isUsingOracle() ? "oraclespatial" : "postgis"); File layerFile = new File("river-" + riverName + ".map"); Template template = getTemplateByName(DB_LAYER_TEMPLATE); if (template == null) { logger.warn("Template '" + DB_LAYER_TEMPLATE + "' not found."); return; } try { writeLayer(layerInfo, layerFile, template); } catch (FileNotFoundException e) { logger.warn(e.getLocalizedMessage(), e); } } @Override protected String getVelocityLogfile() { return FLYSUtils.getXPathString(XPATH_RIVERMAP_VELOCITY_LOGFILE); } @Override protected String getMapserverTemplatePath() { return FLYSUtils.getXPathString(XPATH_RIVERMAP_MAPSERVER_TEMPLATE_PATH); } @Override protected String getMapserverUrl() { return FLYSUtils.getXPathString(XPATH_RIVERMAP_MAPSERVER_URL); } @Override protected String getMapfilePath() { return FLYSUtils.getXPathString(XPATH_RIVERMAP_MAPFILE_PATH); } @Override protected String getMapfileTemplate() { return FLYSUtils.getXPathString(XPATH_RIVERMAP_MAPFILE_TEMPLATE); } }