Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/wsplgen/FacetCreator.java @ 1797:5eec623db50a
Polygon2D: moved 2D vector operation to separate class.
flys-artifacts/trunk@3120 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 31 Oct 2011 10:03:32 +0000 |
parents | 49ad801076e4 |
children | 71139016cd0f |
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( artifact.identifier() + MapfileGenerator.MS_WSPLGEN_POSTFIX); 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( artifact.identifier() + MapfileGenerator.MS_BARRIERS_POSTFIX); barriers.setSrid(getSrid()); barriers.setExtent(getBounds()); tmpFacets.add(barriers); } public void finish() { facets.addAll(getFacets()); } } // end of FacetCreator