Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/wsplgen/FacetCreator.java @ 2089:0da8874bd378
Added initial state to map artifact to be able to advance and step back.
The map artifact overrides describe() to have the complete UI information in the
describe response document.
flys-artifacts/trunk@3613 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 06 Jan 2012 12:02:10 +0000 |
parents | a5f87f8dbe57 |
children | 5d158f8ad080 |
line wrap: on
line source
package de.intevation.flys.wsplgen; import java.util.ArrayList; import java.util.List; import com.vividsolutions.jts.geom.Envelope; import de.intevation.artifacts.CallContext; import de.intevation.artifactdatabase.state.Facet; import de.intevation.flys.model.CrossSectionTrack; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.WMSLayerFacet; import de.intevation.flys.artifacts.resources.Resources; import de.intevation.flys.artifacts.states.DefaultState.ComputeType; import de.intevation.flys.utils.FLYSUtils; import de.intevation.flys.utils.GeometryUtils; import de.intevation.flys.utils.MapfileGenerator; public class FacetCreator implements FacetTypes { public static final String I18N_WSPLGEN_RESULT = "floodmap.uesk"; public static final String I18N_WSPLGEN_DEFAULT = "floodmap.uesk"; public static final String I18N_BARRIERS = "floodmap.barriers"; public static final String I18N_BARRIERS_DEFAULT = "floodmap.barriers"; protected FLYSArtifact artifact; protected CallContext cc; protected List<Facet> facets; protected List<Facet> tmpFacets; protected String url; protected String hash; protected String stateId; public FacetCreator( FLYSArtifact artifact, CallContext cc, String hash, String sId, List<Facet> facets ) { this.tmpFacets = new ArrayList<Facet>(2); this.facets = facets; this.artifact = artifact; this.cc = cc; this.hash = hash; this.stateId = sId; } protected String getRiver() { return artifact.getDataAsString("river"); } protected String getUrl() { return FLYSUtils.getUserWMSUrl(artifact.identifier()); } protected String getSrid() { return FLYSUtils.getRiverSrid(artifact); } protected Envelope getWSPLGENBounds() { String river = getRiver(); double kms[] = FLYSUtils.getKmRange(artifact); CrossSectionTrack a = CrossSectionTrack.getCrossSectionTrack(river, kms[0]); CrossSectionTrack b = CrossSectionTrack.getCrossSectionTrack(river, kms[1]); if (a == null || b == null) { return null; } Envelope envA = a.getGeom().getEnvelopeInternal(); Envelope envB = b.getGeom().getEnvelopeInternal(); envA.expandToInclude(envB); return envA; } protected Envelope getBounds() { return GeometryUtils.getRiverBoundary(getRiver()); } public List<Facet> getFacets() { return tmpFacets; } public void createWSPLGENFacet() { WMSLayerFacet wsplgen = new WMSLayerFacet( 0, FLOODMAP_WSPLGEN, Resources.getMsg( cc.getMeta(), I18N_WSPLGEN_RESULT, I18N_WSPLGEN_DEFAULT), ComputeType.ADVANCE, stateId, hash, getUrl()); Envelope bounds = getWSPLGENBounds(); if (bounds == null) { bounds = getBounds(); } wsplgen.addLayer( MapfileGenerator.MS_WSPLGEN_PREFIX + artifact.identifier()); wsplgen.setSrid(getSrid()); wsplgen.setExtent(bounds); tmpFacets.add(wsplgen); } public void createBarrierFacet() { WMSLayerFacet barriers = new WMSLayerFacet( 1, FLOODMAP_BARRIERS, Resources.getMsg( cc.getMeta(), I18N_BARRIERS, I18N_BARRIERS_DEFAULT), ComputeType.ADVANCE, stateId, hash, getUrl()); barriers.addLayer( MapfileGenerator.MS_BARRIERS_PREFIX + artifact.identifier()); barriers.setSrid(getSrid()); barriers.setExtent(getBounds()); tmpFacets.add(barriers); } public void finish() { facets.addAll(getFacets()); } } // end of FacetCreator