Package org.geotools.geometry.jts

Examples of org.geotools.geometry.jts.ReferencedEnvelope


            Coordinate center = getCenter();
            DirectPosition2D position = new DirectPosition2D(oldCRS, center.x, center.y);
            try {
                eSetDeliver(false);
                cRS = newCRS;
                bounds = new ReferencedEnvelope(bounds, cRS);
                if (oldCRS != DefaultEngineeringCRS.GENERIC_2D
                        && oldCRS != DefaultEngineeringCRS.GENERIC_3D
                        && oldCRS != DefaultEngineeringCRS.CARTESIAN_2D
                        && oldCRS != DefaultEngineeringCRS.CARTESIAN_3D) {
                    MathTransform transform = CRS.findMathTransform(oldCRS, newCRS, true);
View Full Code Here


    public void setBoundsInternal(Envelope newBounds, boolean forceContainBBoxZoom) {
        Envelope finalBounds = newBounds;
        if (getDefaultPreferredScaleDenominators() != getPreferredScaleDenominators()
                && validState()) {
            IMapDisplay mapDisplay = getRenderManagerInternal().getMapDisplay();
            ReferencedEnvelope referenced;
            if (newBounds instanceof ReferencedEnvelope) {
                referenced = (ReferencedEnvelope) newBounds;
            } else {
                referenced = new ReferencedEnvelope(newBounds, getCRS());
            }
            double scale = ScaleUtils.calculateScaleDenominator(referenced,
                    mapDisplay.getDisplaySize(), mapDisplay.getDPI());
            scale = ScaleUtils.calculateClosestScale(getPreferredScaleDenominators(), scale,
                    ScaleUtils.zoomClosenessPreference());

            finalBounds = ScaleUtils.calculateBoundsFromScale(scale, mapDisplay.getDisplaySize(),
                    mapDisplay.getDPI(), referenced);
            if (forceContainBBoxZoom && !finalBounds.contains(newBounds)) {
                Iterator<Double> tail = getPreferredScaleDenominators().tailSet(scale).iterator();
                // the tail will include scale because scale is one of the elements in the set.  So drop that
                tail.next();
                Double nextLargest = tail.next();
                if (nextLargest != null) {
                    finalBounds = ScaleUtils.calculateBoundsFromScale(nextLargest,
                            mapDisplay.getDisplaySize(), mapDisplay.getDPI(), referenced);
                }
            }
        }

        Envelope oldBounds = bounds == null ? new Envelope() : bounds;
        if (!getBounds().isNull() && !Double.isNaN(getAspectRatio())
                && !Double.isNaN(finalBounds.getWidth()) && !Double.isNaN(finalBounds.getHeight())) {
            double nRatio = finalBounds.getWidth() / finalBounds.getHeight();
            if (Double.isNaN(nRatio))
                nRatio = 0.0;
            double dRatio = getAspectRatio();
            if (validState() && Math.abs(nRatio - dRatio) > ACCURACY) {
                // Returning the same newBounds box is ok, but sometimes causes an infinite loop if
                // zoomToBox's calculations don't affect the size. Making this arbitrary change to
                // the
                // x-axis solves the problem.
                final double arbitraryChange = 2 * 0.0000001;
                finalBounds.init(finalBounds.getMinX() - (arbitraryChange),
                        (finalBounds.getMaxX() + arbitraryChange), finalBounds.getMinY(),
                        finalBounds.getMaxY());

                zoomToBox(finalBounds);
                return;
            }
        }
        bounds = new ReferencedEnvelope(finalBounds, getCRS());
        fireNotification(oldBounds);
    }
View Full Code Here

            fixedPoint = getCenter();
        }
        double effectiveZoom = zoom;
        AffineTransform transformer = ScaleUtils.createScaleTransformWithFixedPoint(effectiveZoom,
                fixedPoint);
        ReferencedEnvelope srcEnvelope = getBounds();
        Envelope transformedEnvelope = ScaleUtils.transformEnvelope(srcEnvelope, transformer);
        setBounds(transformedEnvelope);
        return this;
    }
View Full Code Here

    public void zoomToExtent() {
        try {
            if (!validState())
                return;

            ReferencedEnvelope bounds2 = new ReferencedEnvelope(getCRS());

            // check the limit service
            IAOIService aOIService = PlatformGIS.getAOIService();
            ReferencedEnvelope extent = aOIService.getExtent();

            if (extent != null && !extent.isNull() && !extent.isEmpty()) {
                bounds2 = new ReferencedEnvelope(extent);
            } else {
                boolean hasVisibleLayer = false;
                // search the map for visible layers and construct a bounds from those layers.
                // otherwise default to what the map's extent is.
                List<ILayer> layers = getMap().getMapLayers();
                for (ILayer layer : layers) {
                    ReferencedEnvelope layerBounds = layer.getBounds(ProgressManager.instance()
                            .get(), getCRS());
                    if (layer.isVisible() && !layerBounds.isNull()) {
                        hasVisibleLayer = true;
                        // consider zooming in (or zooming out) to a scale the layer is visible
                        ReferencedEnvelope fitted = ScaleUtils.fitToMinAndMax(layerBounds, layer);
                        if (fitted.getCoordinateReferenceSystem() == bounds2
                                .getCoordinateReferenceSystem()) {
                            bounds2.expandToInclude(fitted);
                        } else if (bounds2.getCoordinateReferenceSystem() == layerBounds
                                .getCoordinateReferenceSystem()) {
                            // We have a small problem here? Should do the fitting
View Full Code Here

            filter = null; // please ignore the user they want it all
        }
        if( isAoiFilter() ){
            try {
                IAOIService aoiService = PlatformGIS.getAOIService();
                ReferencedEnvelope extent = aoiService.getExtent();
                if( extent != null ){
                    CoordinateReferenceSystem crs = extent.getCoordinateReferenceSystem();
                    Geometry geometry = aoiService.getGeometry();
                    CoordinateReferenceSystem dataCRS = schema.getCoordinateReferenceSystem();
                    if (!CRS.equalsIgnoreMetadata(crs,dataCRS)) {
                        MathTransform transform = CRS.findMathTransform(crs, dataCRS);
                        geometry = JTS.transform(geometry, transform);
View Full Code Here

        double oldYscale = getHeight() / event.getOldSize().height;
        double minx = oldBounds.getMinX();
        double maxy = oldBounds.getMaxY();
        double maxx = minx + (event.getSize().width * oldXscale);
        double miny = maxy - (event.getSize().height * oldYscale);
        this.bounds = new ReferencedEnvelope(minx, maxx, miny, maxy, getCRS());
    }
View Full Code Here

    public double getScaleDenominator() {
        if (!validState()) {
            return -1;
        }
        RenderManager renderManager = getRenderManagerInternal();
        ReferencedEnvelope bounds2 = getBounds();
        if (renderManager == null || renderManager.getMapDisplay() == null)
            return -1;

        IMapDisplay display = renderManager.getMapDisplay();
        return ScaleUtils.calculateScaleDenominator(bounds2, display.getDisplaySize(),
View Full Code Here

     * the current RenderManager.
     */
    public void setScale(double scaleDenominator) {
        RenderManager rm = getRenderManagerInternal();
        IMapDisplay display = rm.getMapDisplay();
        ReferencedEnvelope newExtents = ScaleUtils.calculateBoundsFromScale(scaleDenominator,
                display.getDisplaySize(), display.getDPI(), getBounds());
        setWidth(newExtents.getWidth());
    }
View Full Code Here

    /**
     * Calculates new map bounds according to the given scale, DPI, and display dimensions
     */
    public void setScale(double scaleDenominator, int dpi, int displayWidth, int displayHeight) {

        ReferencedEnvelope newExtents = ScaleUtils.calculateBoundsFromScale(scaleDenominator,
                new Dimension(displayWidth, displayHeight), dpi, getBounds());
        setWidth(newExtents.getWidth());
    }
View Full Code Here

        GridCoverage coverage = convertToGridCoverage(map.getViewportModel(), image);
        writer.write(coverage, null);
    }

    private GridCoverage convertToGridCoverage( IViewportModel viewportModel, BufferedImage image ) {
        ReferencedEnvelope env = viewportModel.getBounds();

        GridCoverageFactory factory = new GridCoverageFactory();

        GridCoverage2D gc = (GridCoverage2D) factory.create("GridCoverage", image, env); //$NON-NLS-1$
        return gc;
View Full Code Here

TOP

Related Classes of org.geotools.geometry.jts.ReferencedEnvelope

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.