Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/exports/MapGenerator.java @ 1792:49ad801076e4
Enabled the MapGenerator to create WMS layers with database datastore - riveraxis is the first layer that is no longer fetched from static WMS service but from user specific one.
flys-artifacts/trunk@3115 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 28 Oct 2011 13:48:02 +0000 |
parents | ef2300b450bf |
children | 1636686070f7 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/MapGenerator.java Fri Oct 28 13:39:37 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/MapGenerator.java Fri Oct 28 13:48:02 2011 +0000 @@ -1,5 +1,6 @@ package de.intevation.flys.exports; +import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStream; @@ -24,6 +25,7 @@ import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.model.FacetTypes; +import de.intevation.flys.artifacts.model.WMSDBLayerFacet; import de.intevation.flys.artifacts.model.WMSLayerFacet; import de.intevation.flys.utils.GeometryUtils; import de.intevation.flys.utils.MapfileGenerator; @@ -106,6 +108,9 @@ else if (FLOODMAP_BARRIERS.equals(name)) { createBarriersLayer(flys, wms); } + else { + createDatabaseLayer(flys, wms); + } } else { logger.warn("Facet not supported: " + nativeFacet.getClass()); @@ -139,6 +144,36 @@ } + protected void createDatabaseLayer(FLYSArtifact flys, WMSLayerFacet wms) { + logger.debug("createDatabaseLayer for facet: " + wms.getName()); + + MapfileGenerator mfg = MapfileGenerator.getInstance(); + + try { + File baseDir = mfg.getShapefileBaseDir(); + File artDir = new File(baseDir, flys.identifier()); + + if (artDir != null && !artDir.exists()) { + logger.debug("Create new directory: " + artDir.getPath()); + artDir.mkdir(); + } + + if (wms instanceof WMSDBLayerFacet) { + mfg.createDatabaseLayer(flys, (WMSDBLayerFacet) wms); + } + else { + logger.warn("Cannot create DB layer from: " + wms.getClass()); + } + } + catch (FileNotFoundException fnfe) { + logger.error(fnfe, fnfe); + } + catch (IOException ioe) { + logger.error(ioe, ioe); + } + } + + @Override public void generate() throws IOException