# HG changeset patch # User Raimund Renkert # Date 1360922168 -3600 # Node ID 63617e142dfecf3afaa8cb3e469747fe94731bec # Parent eee722bc85dac349c0a249d5fcfecf9430d43012 Quick-fix for floodmaps. Use the correct projection for DGM. * Added projection for DGM to floodmap.xml. * Use DGM projection to create axis.shp and qps.shp. * Write DGM projection to wsplgen layer mapfile. diff -r eee722bc85da -r 63617e142dfe flys-artifacts/doc/conf/floodmap.xml --- a/flys-artifacts/doc/conf/floodmap.xml Thu Feb 14 11:05:23 2013 +0100 +++ b/flys-artifacts/doc/conf/floodmap.xml Fri Feb 15 10:56:08 2013 +0100 @@ -14,16 +14,19 @@ + + + diff -r eee722bc85da -r 63617e142dfe flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java Thu Feb 14 11:05:23 2013 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java Fri Feb 15 10:56:08 2013 +0100 @@ -610,9 +610,9 @@ protected void setAxis(FLYSArtifact artifact, File dir, WSPLGENJob job) { String river = artifact.getDataAsString("river"); - String srid = FLYSUtils.getRiverSrid(artifact); + String srid = FLYSUtils.getRiverDGMSrid(river); String srs = "EPSG:" + srid; - +logger.debug("srs: " + srs); List axes = RiverAxis.getRiverAxis(river); if (axes == null || axes.isEmpty()) { logger.warn("Could not find river axis for: '" + river + "'"); @@ -649,7 +649,7 @@ protected void setPro(FLYSArtifact artifact, File dir, WSPLGENJob job) { String river = artifact.getDataAsString("river"); - String srid = FLYSUtils.getRiverSrid(artifact); + String srid = FLYSUtils.getRiverDGMSrid(river); String srs = "EPSG:" + srid; List cst = diff -r eee722bc85da -r 63617e142dfe flys-artifacts/src/main/java/de/intevation/flys/utils/ArtifactMapfileGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/utils/ArtifactMapfileGenerator.java Thu Feb 14 11:05:23 2013 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/utils/ArtifactMapfileGenerator.java Fri Feb 15 10:56:08 2013 +0100 @@ -2,6 +2,7 @@ import de.intevation.artifacts.CallContext; import de.intevation.flys.artifacts.FLYSArtifact; +import de.intevation.flys.artifacts.access.RiverAccess; import de.intevation.flys.artifacts.model.LayerInfo; import de.intevation.flys.artifacts.model.map.WMSDBLayerFacet; import de.intevation.flys.artifacts.model.map.WMSLayerFacet; @@ -77,7 +78,9 @@ "floodmap.uesk", "Floodmap")); layerinfo.setStyle(style); - layerinfo.setSrid(wms.getSrid()); + RiverAccess access = new RiverAccess(flys); + String river = access.getRiver(); + layerinfo.setSrid(FLYSUtils.getRiverDGMSrid(river)); String name = MS_LAYER_PREFIX + wms.getName(); diff -r eee722bc85da -r 63617e142dfe flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java --- a/flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java Thu Feb 14 11:05:23 2013 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java Fri Feb 15 10:56:08 2013 +0100 @@ -72,6 +72,9 @@ public static final String XPATH_FLOODMAP_RIVER_PROJECTION = "/artifact-database/floodmap/river[@name=$name]/srid/@value"; + public static final String XPATH_FLOODMAP_DGM_PROJECTION = + "/artifact-database/floodmap/river[@name=$name]/dgm-srid/@value"; + public static final String XPATH_FLOODMAP_SHAPEFILE_DIR = "/artifact-database/floodmap/shapefile-path/@value"; @@ -416,6 +419,23 @@ variables); } + public static String getRiverDGMSrid(String rivername) { + Map variables = new HashMap(1); + variables.put("name", rivername); + + Document cfg = Config.getConfig(); + + String dgm = (String) XMLUtils.xpath( + cfg, + XPATH_FLOODMAP_DGM_PROJECTION, + XPathConstants.STRING, + null, + variables); + if (logger.isDebugEnabled()) { + logger.debug("Use EPSG:" + dgm + " for DGM"); + } + return dgm; + } /** * Return the (first) Gauge corresponding to the given location(s) of