LegendRawInfo legendRawInfo = new LegendRawInfo(); legendRawInfo.setStyle(reader.getAttribute("style")); while (reader.hasMoreChildren()) { reader.moveDown(); switch (reader.getNodeName()) { case "width": legendRawInfo.setWidth(toInteger(reader.getValue())); break; case "height": legendRawInfo.setHeight(toInteger(reader.getValue())); break; case "format": legendRawInfo.setFormat(reader.getValue()); break; case "url": legendRawInfo.setUrl(reader.getValue()); break; case "completeUrl": legendRawInfo.setCompleteUrl(reader.getValue()); break; case "minScale": legendRawInfo.setMinScale(toDouble(reader.getValue())); break; case "maxScale": legendRawInfo.setMaxScale(toDouble(reader.getValue())); break;
@Override public void marshal( Object source, HierarchicalStreamWriter writer, MarshallingContext context) { LegendsRawInfo legendsRawInfo = (LegendsRawInfo) source; // encode default values writer.addAttribute("defaultWidth", String.valueOf(legendsRawInfo.getDefaultWidth())); writer.addAttribute("defaultHeight", String.valueOf(legendsRawInfo.getDefaultHeight())); writer.addAttribute("defaultFormat", String.valueOf(legendsRawInfo.getDefaultFormat())); // encode legends information for (LegendRawInfo legendRawInfo : legendsRawInfo.getLegendsRawInfo()) { writer.startNode("legend"); writer.addAttribute("style", legendRawInfo.getStyle()); encodeAttribute(writer, "width", legendRawInfo.getWidth()); encodeAttribute(writer, "height", legendRawInfo.getHeight()); encodeAttribute(writer, "format", legendRawInfo.getFormat()); encodeAttribute(writer, "url", legendRawInfo.getUrl()); encodeAttribute(writer, "completeUrl", legendRawInfo.getCompleteUrl()); encodeAttribute(writer, "minScale", legendRawInfo.getMinScale()); encodeAttribute(writer, "maxScale", legendRawInfo.getMaxScale()); writer.endNode(); } }
/** Helper method that extracts from a legend url the width, height and format parameters. */ private LegendsRawInfo extractLegendsInfo(List<StyleImpl> styles) { LegendsRawInfo legendsRawInfo = new LegendsRawInfo(); // setting some acceptable default values legendsRawInfo.setDefaultWidth(20); legendsRawInfo.setDefaultHeight(20); legendsRawInfo.setDefaultFormat("image/png"); for (StyleImpl style : styles) { // extracting legend information from each style LegendRawInfo legendRawInfo = new LegendRawInfo(); legendRawInfo.setStyle(style.getName()); List legendUrls = style.getLegendURLs(); if (legendUrls != null && !legendUrls.isEmpty()) { String legendUrl = (String) legendUrls.get(0); // let's see if we can extract width, height and format from the style legend url legendRawInfo.setWidth(extractIntegerParameter(legendUrl, LEGEND_WIDTH_PATTERN)); legendRawInfo.setHeight(extractIntegerParameter(legendUrl, LEGEND_HEIGHT_PATTERN)); legendRawInfo.setFormat(extractParameter(legendUrl, LEGEND_FORMAT_PATTERN)); // setting the complete legend url legendRawInfo.setCompleteUrl(legendUrl); } legendsRawInfo.addLegendRawInfo(legendRawInfo); } return legendsRawInfo; }
legendsRawInfo.setDefaultHeight(100); legendsRawInfo.setDefaultFormat("image/png"); LegendRawInfo legendRawInfo1 = new LegendRawInfo(); legendRawInfo1.setStyle("style1"); legendRawInfo1.setUrl("htp://localhost:8080/geoserver"); LegendRawInfo legendRawInfo2 = new LegendRawInfo(); legendRawInfo2.setStyle("style2"); legendRawInfo2.setUrl("htp://localhost:8080/geoserver");
legendsRawInfo.setDefaultFormat("image/png"); LegendRawInfo legendRawInfoA = new LegendRawInfo(); legendRawInfoA.setStyle("polygon"); legendRawInfoA.setWidth(75); legendRawInfoA.setHeight(125); legendRawInfoA.setFormat("image/jpeg"); legendRawInfoA.setUrl("http://url"); legendRawInfoA.setMinScale(5000D); legendRawInfoA.setMaxScale(10000D); LegendRawInfo legendRawInfoB = new LegendRawInfo(); legendRawInfoB.setStyle("point"); legendRawInfoB.setCompleteUrl("http://url"); LegendRawInfo legendRawInfoC = new LegendRawInfo(); legendRawInfoC.setStyle("");
legendsRawInfo.setDefaultFormat("image/png"); LegendRawInfo legendRawInfoA = new LegendRawInfo(); legendRawInfoA.setStyle("polygon"); legendRawInfoA.setWidth(75); legendRawInfoA.setHeight(125); legendRawInfoA.setFormat("image/jpeg"); legendRawInfoA.setUrl("http://url"); legendRawInfoA.setMinScale(5000D); legendRawInfoA.setMaxScale(10000D); LegendRawInfo legendRawInfoB = new LegendRawInfo(); legendRawInfoB.setStyle("point"); legendRawInfoB.setCompleteUrl("http://url"); LegendRawInfo legendRawInfoC = new LegendRawInfo(); legendRawInfoC.setStyle("");