Package org.geoserver.wms.map

Examples of org.geoserver.wms.map.XMLTransformerMap


        // TODO: use GeoServer.isVerbose() to determine if we should indent?
        transformer.setIndentation(3);
        Charset encoding = wms.getCharSet();
        transformer.setEncoding(encoding);

        XMLTransformerMap map = new XMLTransformerMap(mapContext, transformer, mapContext,
                MIME_TYPE);
        map.setContentDispositionHeader(mapContext, ".kml");
        return map;
    }
View Full Code Here


        }

        Charset encoding = wms.getCharSet();
        tx.setEncoding(encoding);

        XMLTransformerMap result = new XMLTransformerMap(map, tx, map, getMimeType());

        // REVISIT: is was setting "inline; filename=geoserver.xml", now it's gonna be the requested
        // layer names, is it ok?
        result.setContentDispositionHeader(map, ".xml");
        return result;
    }
View Full Code Here

            transformer.setEncoding(encoding);
            transformer.setEncodeAsRegion(superoverlay);
            transformer.setCachedMode("cached".equals(KMLUtils.getSuperoverlayMode(request, wmsConfiguration)));

            String mimeType = request.getFormat();
            wmsResponse = new XMLTransformerMap(null, transformer, request, mimeType);
        }
       
        filename.setLength(filename.length() - 1);
        String contentDisposition = "attachment; filename=" + filename.toString() + formatExtension;
        wmsResponse.setResponseHeader("Content-Disposition", contentDisposition);
View Full Code Here

        }

        Charset encoding = wms.getCharSet();
        tx.setEncoding(encoding);

        XMLTransformerMap result = new XMLTransformerMap(mapContext, tx, mapContext, getMimeType());
        return result;
    }
View Full Code Here

    @Override
    public void write(Object value, OutputStream output, Operation operation) throws IOException,
            ServiceException {
        Assert.isInstanceOf(XMLTransformerMap.class, value);

        final XMLTransformerMap map = (XMLTransformerMap) value;
        try {
            final KMLTransformer transformer = (KMLTransformer) map.getTransformer();
            final WMSMapContext mapContext = (WMSMapContext) map.getTransformerSubject();

            // wrap the output stream in a zipped one
            ZipOutputStream zip = new ZipOutputStream(output);

            // first create an entry for the kml
            ZipEntry entry = new ZipEntry("wms.kml");
            zip.putNextEntry(entry);

            try {
                transformer.transform(mapContext, zip);
                zip.closeEntry();
            } catch (TransformerException e) {
                throw (IOException) new IOException().initCause(e);
            }

            final RenderedImageMapOutputFormat pngProducer = new RenderedImageMapOutputFormat(
                    "image/png", wms);
            final PNGMapResponse pngEncoder = new PNGMapResponse(wms);

            ZipEntry images = new ZipEntry("images/");
            zip.putNextEntry(images);
           
            // write the images
            for (int i = 0; i < mapContext.getLayerCount(); i++) {
                MapLayer mapLayer = mapContext.getLayer(i);

                // create a context for this single layer
                WMSMapContext subContext = new WMSMapContext();
                subContext.addLayer(mapLayer);
                subContext.setRequest(mapContext.getRequest());
                subContext.setMapHeight(mapContext.getMapHeight());
                subContext.setMapWidth(mapContext.getMapWidth());
                subContext.setAreaOfInterest(mapContext.getAreaOfInterest());
                subContext.setBgColor(mapContext.getBgColor());
                subContext.setBuffer(mapContext.getBuffer());
                subContext.setContactInformation(mapContext.getContactInformation());
                subContext.setKeywords(mapContext.getKeywords());
                subContext.setAbstract(mapContext.getAbstract());
                subContext.setTransparent(true);

                // render the map
                RenderedImageMap imageMap;
                try {
                    imageMap = pngProducer.produceMap(subContext);
                } finally {
                    subContext.dispose();
                }

                // write it to the zip stream
                entry = new ZipEntry("images/layer_" + i + ".png");
                zip.putNextEntry(entry);
                pngEncoder.write(imageMap, zip, operation);
                zip.closeEntry();
            }
            zip.closeEntry();// close the images/ folder

            zip.finish();
            zip.flush();
        } finally {
            map.dispose();
        }
       
    }
View Full Code Here

        GetMapRequest request = mapContent.getRequest();
        boolean cachedMode = "cached".equals(KMLUtils.getSuperoverlayMode(request, wms));
        transformer.setCachedMode(cachedMode);

        String mimeType = request.getFormat();
        XMLTransformerMap wmsResponse = new XMLTransformerMap(mapContent, transformer, mapContent,
                mimeType);
        return wmsResponse;
    }
View Full Code Here

        // TODO: use GeoServer.isVerbose() to determine if we should indent?
        transformer.setIndentation(3);
        Charset encoding = wms.getCharSet();
        transformer.setEncoding(encoding);

        XMLTransformerMap map = new XMLTransformerMap(mapContent, transformer, mapContent,
                MIME_TYPE);
        map.setContentDispositionHeader(mapContent, ".kml");
        return map;
    }
View Full Code Here

        }

        Charset encoding = wms.getCharSet();
        tx.setEncoding(encoding);

        XMLTransformerMap result = new XMLTransformerMap(mapContent, tx, mapContent, getMimeType());
        return result;
    }
View Full Code Here

        }

        Charset encoding = wms.getCharSet();
        tx.setEncoding(encoding);

        XMLTransformerMap result = new XMLTransformerMap(map, tx, map, getMimeType());

        // REVISIT: is was setting "inline; filename=geoserver.xml", now it's gonna be the requested
        // layer names, is it ok?
        result.setContentDispositionHeader(map, ".xml");
        return result;
    }
View Full Code Here

    @Override
    public void write(Object value, OutputStream output, Operation operation) throws IOException,
            ServiceException {
        Assert.isInstanceOf(XMLTransformerMap.class, value);

        final XMLTransformerMap map = (XMLTransformerMap) value;
        try {
            final KMLTransformer transformer = (KMLTransformer) map.getTransformer();
            final WMSMapContent mapContent = (WMSMapContent) map.getTransformerSubject();

            // wrap the output stream in a zipped one
            ZipOutputStream zip = new ZipOutputStream(output);

            // first create an entry for the kml
            ZipEntry entry = new ZipEntry("wms.kml");
            zip.putNextEntry(entry);

            try {
                transformer.transform(mapContent, zip);
                zip.closeEntry();
            } catch (TransformerException e) {
                throw (IOException) new IOException().initCause(e);
            }

            final RenderedImageMapOutputFormat pngProducer = new RenderedImageMapOutputFormat(
                    "image/png", wms);
            final PNGMapResponse pngEncoder = new PNGMapResponse(wms);

            ZipEntry images = new ZipEntry("images/");
            zip.putNextEntry(images);
           
            // write the images
            List<Layer> layers = mapContent.layers();
            for (int i = 0; i < layers.size(); i++) {
                Layer mapLayer = layers.get(i);

                // create a context for this single layer
                WMSMapContent subContext = new WMSMapContent();
                subContext.addLayer(mapLayer);
                subContext.setRequest(mapContent.getRequest());
                subContext.setMapHeight(mapContent.getMapHeight());
                subContext.setMapWidth(mapContent.getMapWidth());
                subContext.getViewport().setBounds(mapContent.getRenderingArea());
                subContext.setBgColor(mapContent.getBgColor());
                subContext.setBuffer(mapContent.getBuffer());
                subContext.setContactInformation(mapContent.getContactInformation());
                subContext.setKeywords(mapContent.getKeywords());
                subContext.setAbstract(mapContent.getAbstract());
                subContext.setTransparent(true);

                // render the map
                RenderedImageMap imageMap;
                try {
                    imageMap = pngProducer.produceMap(subContext);
                } finally {
                    subContext.dispose();
                }

                // write it to the zip stream
                entry = new ZipEntry("images/layer_" + i + ".png");
                zip.putNextEntry(entry);
                pngEncoder.write(imageMap, zip, operation);
                zip.closeEntry();
            }
            zip.closeEntry();// close the images/ folder
           
            Map<String, Style> embeddedIcons = transformer.getEmbeddedIcons();
            ZipEntry icons = new ZipEntry("icons/");
            zip.putNextEntry(icons);
            for (Map.Entry<String, Style> namedStyle : embeddedIcons.entrySet()) {
                final String name = namedStyle.getKey();
                final Style style = namedStyle.getValue();
                BufferedImage icon = IconRenderer.renderIcon(style);
                entry = new ZipEntry("icons/" + name + ".png");
                zip.putNextEntry(entry);
                ImageIO.write(icon, "PNG", zip);
            }
            zip.closeEntry();

            zip.finish();
            zip.flush();
        } finally {
            map.dispose();
        }
       
    }
View Full Code Here

TOP

Related Classes of org.geoserver.wms.map.XMLTransformerMap

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.