List<Style> getMapStyles = request.getGetMapRequest().getStyles(); List<Style> styles = new ArrayList<Style>(); List<MapLayerInfo> getMapLayers = request.getGetMapRequest().getLayers();
public static GetMapRequest autoSetMissingProperties(GetMapRequest getMap) { // set the defaults if (getMap.getFormat() == null) { getMap.setFormat(FORMAT); } if ((getMap.getStyles() == null) || getMap.getStyles().isEmpty()) { // set styles to be the defaults for the specified layers // TODO: should this be part of core WMS logic? is so lets throw // this // into the GetMapKvpRequestReader if ((getMap.getLayers() != null) && (getMap.getLayers().size() > 0)) { ArrayList<Style> styles = new ArrayList<Style>(getMap.getLayers().size()); for (int i = 0; i < getMap.getLayers().size(); i++) { styles.add(getMap.getLayers().get(i).getDefaultStyle()); } getMap.setStyles(styles); } else { getMap.setStyles(STYLES); } } // auto-magic missing info configuration autoSetBoundsAndSize(getMap); return getMap; }
Style s = (Style) req.getStyles().get(0);
public void testResolveStylesForLayerGroup() throws Exception { GetMapRequest request = (GetMapRequest) reader.createRequest(); BufferedReader input = getResourceInputStream("WMSPostLayerGroupNonDefaultStyle.xml"); request = (GetMapRequest) reader.read(request, input, new HashMap()); String layer = MockData.BASIC_POLYGONS.getLocalPart(); assertEquals(1, request.getLayers().size()); assertTrue(request.getLayers().get(0).getName().endsWith(layer)); assertEquals(1, request.getStyles().size()); Style expected = getCatalog().getStyleByName("polygon").getStyle(); Style style = request.getStyles().get(0); assertEquals(expected, style); }
public void testResolveLayersForStyleGroup() throws Exception { WMS wms = new WMS(getGeoServer()); GetMapXmlReader reader = new GetMapXmlReader(wms); GetMapRequest request = reader.createRequest(); InputStream resourceStream = getClass().getResource("WMSPostLayerGroupWithStyleGroup.xml").openStream(); BufferedReader input = new BufferedReader(new InputStreamReader(resourceStream)); request = (GetMapRequest) reader.read(request, input, new HashMap()); String layer = MockData.BASIC_POLYGONS.getLocalPart(); assertEquals(1, request.getLayers().size()); assertTrue(request.getLayers().get(0).getName().endsWith(layer)); assertEquals(1, request.getStyles().size()); Style expected = getCatalog().getStyleByName("BasicStyleGroup").getStyle(); Style style = request.getStyles().get(0); assertEquals(expected, style); }
public void testDefaultStyle() throws Exception { HashMap raw = new HashMap(); raw.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart() + "," + MockData.BUILDINGS.getPrefix() + ":" + MockData.BUILDINGS.getLocalPart()); raw.put("styles", ","); raw.put("format", "image/jpeg"); raw.put("srs", "epsg:3003"); raw.put("bbox", "-10,-10,10,10"); raw.put("height", "600"); raw.put("width", "800"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(raw), caseInsensitiveKvp(raw)); assertEquals(2, request.getStyles().size()); LayerInfo basicPolygons = getCatalog().getLayerByName(MockData.BASIC_POLYGONS.getLocalPart()); LayerInfo buildings = getCatalog().getLayerByName(MockData.BUILDINGS.getLocalPart()); assertEquals(basicPolygons.getDefaultStyle().getStyle(), request.getStyles().get(0)); assertEquals(buildings.getDefaultStyle().getStyle(), request.getStyles().get(1)); }
public void testSldNamed() throws Exception { // style name matching one in the sld HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReader.class.getResource("BasicPolygonsLibraryNoDefault.sld"); String decoded = URLDecoder.decode(url.toExternalForm(), "UTF-8"); kvp.put("sld", decoded); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); kvp.put("styles", "TheLibraryModeStyle"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getSld()); assertEquals(URLKvpParser.fixURL(decoded), request.getSld().toExternalForm()); final Style style = (Style) request.getStyles().get(0); assertNotNull(style); assertEquals("TheLibraryModeStyle", style.getName()); }
public void testGroupInSLD() throws Exception { // see GEOS-1818 final HashMap kvp = new HashMap(); kvp.put("srs", "epsg:4326"); kvp.put( "bbox", "124.38035938267053,-58.45445933799711,169.29632161732948,-24.767487662002893"); kvp.put("width", "640"); kvp.put("height", "480"); kvp.put("format", "image/png"); final URL url = GetMapKvpRequestReader.class.getResource("BaseMapGroup.sld"); // URLDecoder.decode fixes GEOS-3709 kvp.put("sld", URLDecoder.decode(url.toString(), "UTF-8")); kvp.put("version", "1.1.1"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), kvp); assertEquals(1, request.getLayers().size()); assertEquals(1, request.getStyles().size()); assertEquals(getLayerId(MockData.BASIC_POLYGONS), request.getLayers().get(0).getName()); Style expectedStyle = getCatalog().getStyleByName("polygon").getStyle(); assertEquals(expectedStyle, request.getStyles().get(0)); }
public void testSldDefault() throws Exception { // no style name, but the sld has a default for that layer HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReader.class.getResource("BasicPolygonsLibraryDefault.sld"); String decoded = URLDecoder.decode(url.toExternalForm(), "UTF-8"); kvp.put("sld", decoded); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getSld()); assertEquals(URLKvpParser.fixURL(decoded), request.getSld().toExternalForm()); final Style style = (Style) request.getStyles().get(0); assertNotNull(style); assertEquals("TheLibraryModeStyle", style.getName()); }
Style requestedStyle = request.getStyles().get(layerIndex); Style defaultStyle = request.getLayers().get(layerIndex).getDefaultStyle(); if (!defaultStyle.equals(requestedStyle)) {
if (request.getStyles().size() == 0) { throw new ServiceException("No styles have been requested", "StyleNotDefined");
public void testSldNoDefault() throws Exception { // no style name, no default, we should fall back on the server default HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReader.class.getResource("BasicPolygonsLibraryNoDefault.sld"); // the kvp should be already in decoded form String decoded = URLDecoder.decode(url.toExternalForm(), "UTF-8"); kvp.put("sld", decoded); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); GetMapRequest request = (GetMapRequest) reader.createRequest(); reader.setLaxStyleMatchAllowed(false); request = (GetMapRequest) reader.read(request, parseKvp(kvp), caseInsensitiveKvp(kvp)); assertNotNull(request.getSld()); assertEquals(URLKvpParser.fixURL(decoded), request.getSld().toExternalForm()); final Style style = (Style) request.getStyles().get(0); assertNotNull(style); assertEquals("BasicPolygons", style.getName()); }
final List<Style> styles = request.getStyles(); for (int i = 0; i < layers.size(); i++) { MapLayerInfo layerInfo = layers.get(i);
@Test public void testStyleGroup() throws Exception { WMS wms = new WMS(getGeoServer()); GetMapKvpRequestReader reader = new GetMapKvpRequestReader(wms); // asserts the a layerGroup can be created with null layer and a styleGroup sld HashMap kvp = new HashMap(); kvp.put("layers", "BasicStyleGroup"); kvp.put("styles", ""); GetMapRequest request = reader.createRequest(); request = reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getLayers()); assertNotNull(request.getStyles()); }
public void testSldLibraryFeatureTypeConstraints() throws Exception { // no styles, no layer, the full definition is in the sld HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReader.class.getResource("BasicPolygonsFeatureTypeConstaint.sld"); String decoded = URLDecoder.decode(url.toExternalForm(), "UTF-8"); kvp.put("sld", decoded); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); kvp.put("styles", "TheLibraryModeStyle"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getSld()); assertEquals(URLKvpParser.fixURL(decoded), request.getSld().toExternalForm()); // check the style final Style style = (Style) request.getStyles().get(0); assertNotNull(style); assertEquals("TheLibraryModeStyle", style.getName()); // check the layer assertEquals(1, request.getLayers().size()); MapLayerInfo layer = request.getLayers().get(0); assertEquals(getLayerId(MockData.BASIC_POLYGONS), layer.getName()); // check the filter imposed in the feature type constraint FilterFactory ff = CommonFactoryFinder.getFilterFactory(null); assertEquals(1, layer.getLayerFeatureConstraints().length); assertEquals( ff.equals(ff.property("ID"), ff.literal("xyz")), layer.getLayerFeatureConstraints()[0].getFilter()); }
getMap.getStyles().set(i, style); } catch (IOException e) { throw new ServiceException(
getMap.getStyles().set(i, style); } catch (IOException e) { throw new ServiceException(
final List<Map<String, String>> viewParams = request.getViewParams(); final Style[] styles = request.getStyles().toArray(new Style[] {}); final Filter[] filters = buildLayersFilters(request.getFilter(), layers); final List<SortBy[]> sorts = request.getSortByArrays();
public void testSldFeatureTypeConstraints() throws Exception { // no styles, no layer, the full definition is in the sld HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReader.class.getResource("BasicPolygonsFeatureTypeConstaint.sld"); String decoded = URLDecoder.decode(url.toExternalForm(), "UTF-8"); kvp.put("sld", decoded); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getSld()); assertEquals(URLKvpParser.fixURL(decoded), request.getSld().toExternalForm()); // check the style final Style style = (Style) request.getStyles().get(0); assertNotNull(style); assertEquals("TheLibraryModeStyle", style.getName()); // check the layer assertEquals(1, request.getLayers().size()); MapLayerInfo layer = request.getLayers().get(0); assertEquals(getLayerId(MockData.BASIC_POLYGONS), layer.getName()); // check the filter imposed in the feature type constraint FilterFactory ff = CommonFactoryFinder.getFilterFactory(null); assertEquals(1, layer.getLayerFeatureConstraints().length); assertEquals( ff.equals(ff.property("ID"), ff.literal("xyz")), layer.getLayerFeatureConstraints()[0].getFilter()); }