Package org.geotools.map

Examples of org.geotools.map.Layer


        TableViewerColumn col = createTableViewerColumn(titles[0], bounds[0], 0);
        col.setLabelProvider(new ColumnLabelProvider(){
            @Override
            public Image getImage( Object element ) {
                if (element instanceof Layer) {
                    Layer p = (Layer) element;
                    if (Utils.isGridLayer(p)) {
                        return ImageCache.getInstance().getImage(ImageCache.GRID);
                    }
                    return ImageCache.getInstance().getImage(ImageCache.FEATURE);
                }
                return null;
            }

            @Override
            public String getText( Object element ) {
                if (element instanceof Layer) {
                    Layer p = (Layer) element;
                    String title = p.getTitle();
                    if (title == null || title.length() == 0) {
                        @SuppressWarnings("rawtypes")
                        FeatureSource featureSource = p.getFeatureSource();
                        if (featureSource != null) {
                            title = featureSource.getName().getLocalPart().toString();
                        }
                    }
                    return title;
                }
                return null;
            }
        });

        col = createTableViewerColumn(titles[1], bounds[1], 1);
        col.setLabelProvider(new ColumnLabelProvider(){
            @Override
            public Image getImage( Object element ) {
                if (element instanceof Layer) {
                    Layer p = (Layer) element;
                    if (p.isVisible()) {
                        return ImageCache.getInstance().getImage(ImageCache.CHECKED);
                    }
                    return ImageCache.getInstance().getImage(ImageCache.UNCHECKED);
                }
                return null;
View Full Code Here


    protected void triggerEditorActivationEvent( ColumnViewerEditorActivationEvent event ) {
        super.triggerEditorActivationEvent(event);
        ViewerCell source = (ViewerCell) event.getSource();
        int columnIndex = source.getColumnIndex();
        if (columnIndex == 1) {
            Layer element = (Layer) source.getElement();
            element.setVisible(!element.isVisible());
            refresh();
            pane.redraw();
        } else if (columnIndex == 2) {
            Layer element = (Layer) source.getElement();
            try {
                doSetStyle(element);
            } catch (IOException e) {
                e.printStackTrace();
            }
View Full Code Here

     * @throws IOException if the feature source for the layer cannot be accessed
     */
    public SimpleFeatureCollection getInfo( DirectPosition2D pos, Object... params ) throws IOException {

        SimpleFeatureCollection collection = null;
        Layer layer = layerRef.get();

        if (layer != null) {
            Filter filter = null;
            if (isPolygonGeometry) {
                /*
                 * Polygon features - use an intersects filter
                 */
                Geometry posGeom = createSearchPos(pos);
                filter = filterFactory.intersects(filterFactory.property(attrName), filterFactory.literal(posGeom));

            } else {
                /*
                 * Line or point features - use a bounding box filter
                 */
                double radius = ((Number) params[0]).doubleValue();
                ReferencedEnvelope env = createSearchEnv(pos, radius);
                filter = filterFactory.bbox(filterFactory.property(attrName), env);
            }

            Query query = new Query(null, filter);
            query.setCoordinateSystemReproject(getMapContent().getCoordinateReferenceSystem());
            collection = (SimpleFeatureCollection) layer.getFeatureSource().getFeatures(query);
        }

        return collection;
    }
View Full Code Here

        int item = list.locationToIndex(ev.getPoint());

        if (item >= 0) {
            Rectangle r = list.getCellBounds(item, item);
            if (r.contains(ev.getPoint())) {
                Layer layer = listModel.getElementAt(item);
                Point p = new Point(ev.getPoint().x, ev.getPoint().y - r.y);

                if (MapLayerTableCellRenderer.hitSelectionLabel(p)) {
                    layer.setSelected(!layer.isSelected());

                } else if (MapLayerTableCellRenderer.hitVisibilityLabel(p)) {
                    layer.setVisible(!layer.isVisible());

                } else if (MapLayerTableCellRenderer.hitStyleLabel(p)) {
                    doSetStyle(layer);
               
                } else if (MapLayerTableCellRenderer.hitRemoveLabel(p)) {
View Full Code Here

     * @param ev the event
     */
    private void onReorderLayers(ListDataEvent ev) {
        ((JComponent) mapPane).setIgnoreRepaint(true);
        for (int pos = ev.getIndex0(); pos <= ev.getIndex1(); pos++) {
            Layer layer = listModel.getElementAt(pos);

            /*
             * MapLayerTable stores layers in the reverse order to
             * the MapContent layer list
             */
 
View Full Code Here

            }

            // for every layer specified in the request
            for (int i = 0; i < layers.size(); i++) {
                // layer and info
                Layer layer = layers.get(i);

                // was a super overlay requested?
                Boolean superoverlay = (Boolean) mapContent.getRequest().getFormatOptions()
                        .get("superoverlay");
                superoverlay = (superoverlay == null ? Boolean.FALSE : superoverlay);
                if (superoverlay) {
                    // encode as super overlay
                    encodeSuperOverlayLayer(mapContent, layer);
                } else {
                    // figure out which type of layer this is, raster or vector
                    if (layer instanceof FeatureLayer) {
                        // vector
                        encodeVectorLayer(mapContent, layer, lookAtOpts);
                    } else if(layer instanceof RasterLayer){
                        // encode as normal ground overlay
                        encodeRasterLayer(mapContent, layer, lookAtOpts);
                    }
                }
            }

            // legend suppoer
            if (legend != null && legend.booleanValue()) {
                // for every layer specified in the request
                for (int i = 0; i < layers.size(); i++) {
                    // layer and info
                    Layer layer = layers.get(i);
                    encodeLegend(mapContent, layer);
                }
            }

            if (group) {
View Full Code Here

        public KMLRasterTranslator(ContentHandler handler) {
            super(handler);
        }

        public void encode(Object o) throws IllegalArgumentException {
            Layer layer = (Layer) o;
            int mapLayerOrder = mapContent.layers().indexOf(layer);

            if (isStandAlone()) {
                start("kml");
            }

            //get the lat lon bbox
            ReferencedEnvelope box = new ReferencedEnvelope(mapContent.getRenderingArea());
            boolean reprojectBBox = (box.getCoordinateReferenceSystem() != null)
                    && !CRS.equalsIgnoreMetadata(box.getCoordinateReferenceSystem(),
                            DefaultGeographicCRS.WGS84);
            if (reprojectBBox) {
                try {
                    box = box.transform(DefaultGeographicCRS.WGS84, true);
                } catch (Exception e) {
                    throw new ServiceException("Could not transform bbox to WGS84", e,
                            "ReprojectionError", "");
                }
            }
           
            // start("Document");
            // element("name", Layer.getTitle());

            // start the folder naming it 'layer_<mapLayerOrder>', this is
            // necessary for a GroundOverlay
            start("Folder");
            String kmltitle = (String) mapContent.getRequest().getFormatOptions().get("kmltitle");
            element("name", (kmltitle != null && mapContent.layers().size() <= 1 ? kmltitle : "layer_" + mapLayerOrder));
            element("description", layer.getTitle());

            if (lookAtOpts != null) {
                if (box != null) {
                    KMLLookAtTransformer tx;
                    tx = new KMLLookAtTransformer(box, getIndentation(), getEncoding());
                    Translator translator = tx.createTranslator(contentHandler);
                    translator.encode(lookAtOpts);
                }
            }
           
            start("GroundOverlay");
            // element( "name", feature.getID() );
            element("name", layer.getTitle());
            element("drawOrder", Integer.toString(mapLayerOrder));

            // encode the icon
            start("Icon");

            encodeHref(layer);

            element("viewRefreshMode", "never");
            element("viewBoundScale", "0.75");
            end("Icon");

            // encde the bounding box
            start("LatLonBox");
            element("north", Double.toString(box.getMaxY()));
            element("south", Double.toString(box.getMinY()));
            element("east", Double.toString(box.getMaxX()));
            element("west", Double.toString(box.getMinX()));
            end("LatLonBox");

            end("GroundOverlay");

            // if the kmplacemark format option is true, add placemarks to the output
            boolean kmplacemark = KMLUtils.getKmplacemark(mapContent.getRequest(), wms);
            if (kmplacemark) {
                SimpleFeatureCollection features = null;
                try {
                    features = KMLUtils.loadFeatureCollection(
                            (SimpleFeatureSource) layer.getFeatureSource(), layer,
                            mapContent, wms, scaleDenominator);
                } catch (Exception ex) {
                    String msg = "Error getting features.";
                    LOGGER.log(Level.WARNING, msg, ex);
                }

                if (features != null && features.size() > 0) {
                    Geometry geom = null;
                    Geometry centroidGeom = null;

                    // get geometry of the area of interest
                    Envelope aoi = mapContent.getRenderingArea();
                    GeometryFactory factory = new GeometryFactory();
                    Geometry displayGeom = factory.toGeometry(new Envelope(aoi.getMinX(), aoi
                            .getMaxX(), aoi.getMinY(), aoi.getMaxY()));

                    // get the styles for this feature
                    SimpleFeatureType featureType = features.getSchema();
                    FeatureTypeStyle[] fts = KMLUtils.filterFeatureTypeStyles(layer.getStyle(),
                            featureType);

                    SimpleFeatureIterator iter = features.features();
                    try {
                        while (iter.hasNext()) {
                            SimpleFeature ftr = iter.next();
                            geom = (Geometry) ftr.getDefaultGeometry();
   
                            List<Symbolizer> symbolizers = filterSymbolizers(ftr, fts);
                            if (symbolizers.size() != 0)
                                encodeStyle(ftr, layer.getStyle(), symbolizers);
   
                            // if this is a multipolygon, get the largest polygon
                            // that intersects the AOI
                            if (geom instanceof MultiPolygon) {
                                double maxSize = -1;
                                int numGeoms = geom.getNumGeometries();
                                for (int i = 0; i < numGeoms; i++) {
                                    Polygon poly = (Polygon) geom.getGeometryN(i);
                                    if (poly.getArea() > maxSize) {
                                        if (displayGeom.intersects(poly)) {
                                            geom = poly;
                                            maxSize = poly.getArea();
                                        }
                                    }
                                }
                            }
                            Geometry g1 = displayGeom.intersection(geom);
                            // skip if the geometry is not in the AOI
                            if (g1.isEmpty())
                                continue;
                            centroidGeom = g1.getCentroid();
                            encodePlacemark(ftr, layer.getStyle(), symbolizers, centroidGeom, lookAtOpts);
                        }
                    }
                    finally {
                        iter.close();
                    }
View Full Code Here

        /**
         * Encodes a KML ScreenOverlay wihch depicts the legend of a map.
         */
        public void encode(Object o) throws IllegalArgumentException {
            Layer Layer = (Layer) o;

            if ( isStandAlone() ) {
                start( "kml" );
            }
           
View Full Code Here

            aggregatedBounds.setToNull();

            final List<Layer> mapLayers = context.layers();
            final List<MapLayerInfo> layerInfos = context.getRequest().getLayers();
            for (int i = 0; i < mapLayers.size(); i++) {
                final Layer Layer = mapLayers.get(i);
                final MapLayerInfo layerInfo = layerInfos.get(i);

                ReferencedEnvelope layerLatLongBbox;
                layerLatLongBbox = computeLayerBounds(Layer, layerInfo, computeQueryBounds);
                try {
View Full Code Here

        public KMLSuperOverlayerTranslator(ContentHandler contentHandler) {
            super(contentHandler);
        }

        public void encode(Object o) throws IllegalArgumentException {
            Layer Layer = (Layer) o;

            // calculate closest resolution
            ReferencedEnvelope extent = mapContent.getRenderingArea();

            // zoom out until the entire bounds requested is covered by a
            // single tile
            Envelope top = KMLUtils.expandToTile(extent);
            int zoomLevel = KMLUtils.findZoomLevel(extent);

            LOGGER.fine("request = " + extent);
            LOGGER.fine("top level = " + top);

            // start document
            if (isStandAlone()) {
                start("kml");
            }

            start("Document");
            if (isStandAlone()) {
                String kmltitle = (String) mapContent.getRequest().getFormatOptions().get("kmltitle");
                element("name", (kmltitle != null && mapContent.layers().size() <= 1 ? kmltitle : Layer.getTitle()));
            }

            if ("cached".equals(KMLUtils.getSuperoverlayMode(mapContent.getRequest(), wms))) {
                if (KMLUtils.isRequestGWCCompatible(mapContent, Layer, wms)) {
                    encodeGWCLink(Layer);
View Full Code Here

TOP

Related Classes of org.geotools.map.Layer

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.