private GetMap createGetMap( List<LayerRef> layers, List<StyleRef> styles, ICRS crs, Envelope envelope, Output output, Map<String, String> parameterMap, Map<String, List<?>> dimensions ) { int width = output.width; int height = output.height; String format = output.format; boolean transparent = output.transparent; Color color = output.bgcolor; return new GetMap( layers, styles, width, height, envelope, crs, format, transparent, color, parameterMap, dimensions ); }
protected void getMap( Map<String, String> map, HttpResponseBuffer response, Version version ) throws OWSException, IOException, MissingDimensionValue, InvalidDimensionValue { org.deegree.protocol.wms.ops.GetMap gm2 = new org.deegree.protocol.wms.ops.GetMap( map, version, service.getExtensions() ); doGetMap( map, response, version, gm2 ); }
private static Pair<SimpleRaster, String> getMapAsSimpleRaster( WMSClient client, List<String> layers, int width, int height, Envelope bbox, ICRS srs, String format, boolean transparent, boolean errorsInImage, int timeout ) throws IOException { GetMap gm = new GetMap( layers, width, height, bbox, srs, format, transparent ); Pair<BufferedImage, String> imageResponse = client.getMap( gm, null, timeout, errorsInImage ); Pair<SimpleRaster, String> response = new Pair<SimpleRaster, String>(); if ( imageResponse.first != null ) { BufferedImage img = imageResponse.first; RasterData rasterData = RasterFactory.rasterDataFromImage( img ); RasterGeoReference rasterEnv = RasterGeoReference.create( OriginLocation.OUTER, bbox, img.getWidth(), img.getHeight() ); SimpleRaster raster = new SimpleRaster( rasterData, bbox, rasterEnv, null ); response.first = raster; } else { response.second = imageResponse.second; } return response; }
@Override public RemoteWMSLayerData mapQuery( LayerQuery query, List<String> headers ) { Map<String, String> extraParams = new HashMap<String, String>(); replaceParameters( extraParams, query.getParameters(), defaultParametersGetMap, hardParametersGetMap ); ICRS crs = this.crs; if ( !alwaysUseDefaultCrs ) { ICRS envCrs = query.getEnvelope().getCoordinateSystem(); if ( client.getCoordinateSystems( originalName ).contains( envCrs.getAlias() ) ) { crs = envCrs; } } GetMap gm = new GetMap( singletonList( originalName ), query.getWidth(), query.getHeight(), query.getEnvelope(), crs, format, transparent ); return new RemoteWMSLayerData( client, gm, extraParams ); }
@Override public Tile getTile( long x, long y ) { if ( metadata.getNumTilesX() <= x || metadata.getNumTilesY() <= y || x < 0 || y < 0 ) { return null; } double width = metadata.getTileWidth(); double height = metadata.getTileHeight(); Envelope env = metadata.getSpatialMetadata().getEnvelope(); double minx = width * x + env.getMin().get0(); double miny = env.getMax().get1() - height * y; Envelope envelope = fac.createEnvelope( minx, miny - height, minx + width, miny, env.getCoordinateSystem() ); ICRS crs = this.crs; if ( crs == null ) { crs = envelope.getCoordinateSystem(); } Map<String, String> overriddenParameters = new HashMap<String, String>(); RequestUtils.replaceParameters( overriddenParameters, RequestUtils.getCurrentThreadRequestParameters().get(), defaultGetMap, hardGetMap ); GetMap gm = new GetMap( layers, styles, (int) tileSizeX, (int) tileSizeY, envelope, crs, format, true, overriddenParameters ); return new RemoteWMSTile( client, gm, recodedOutputFormat, defaultGetFeatureInfo, hardGetFeatureInfo ); }