Examples of ViewportModel


Examples of org.locationtech.udig.project.internal.render.ViewportModel

     * Applies the supplied scale on the map on the current type of paper.
     *
     * @param scale the scale to apply to the map.
     */
    private void applyNewScale( double scale ) {
        ViewportModel viewportModel = getMapBoxPrinter().getMap().getViewportModelInternal();
        // get page size in pixels and in mm
        Page page = getMapBoxPrinter().getBox().getPage();
        org.eclipse.draw2d.geometry.Dimension pageSize = page.getSize();
        org.eclipse.draw2d.geometry.Dimension paperSize = page.getPaperSize();
        // map box size in pixels
        org.eclipse.draw2d.geometry.Dimension mapSize = owner.getBoxPrinter().getBox().getSize();
        // map box size in points and then in meters on paper
        float mapPaperWidthPoints = (float) paperSize.width * (float) mapSize.width
                / (float) pageSize.width;
        float mapPaperWidthMeters = AbstractBoxPrinter.point2cm(mapPaperWidthPoints) / 100f;
        float mapPaperHeightPoints = (float) paperSize.height * (float) mapSize.height
                / (float) pageSize.height;
        float mapPaperHeightMeters = AbstractBoxPrinter.point2cm(mapPaperHeightPoints) / 100f;

        double mapWorldWidthMeters = scale * mapPaperWidthMeters;
        double mapWorldHeightMeters = scale * mapPaperHeightMeters;

        // current map bounds in meters
        ReferencedEnvelope mapEnvelope = (ReferencedEnvelope) viewportModel.getBounds();
        double centerX = (mapEnvelope.getMaxX() + mapEnvelope.getMinX()) / 2.0;
        double centerY = (mapEnvelope.getMaxY() + mapEnvelope.getMinY()) / 2.0;

        double minX = centerX - mapWorldWidthMeters / 2.0;
        double maxX = centerX + mapWorldWidthMeters / 2.0;
        double minY = centerY - mapWorldHeightMeters / 2.0;
        double maxY = centerY + mapWorldHeightMeters / 2.0;

        viewportModel.setBounds(minX, maxX, minY, maxY);
    }
View Full Code Here

Examples of org.locationtech.udig.project.internal.render.ViewportModel

            // SWT, draw all the tiles
            Set<ReferencedEnvelope> keySet = tiles.keySet();
              for (ReferencedEnvelope env : keySet) {
                Tile tile = tiles.get(env);
                //System.out.println("SWTImage: "+tile.getSWTImage());
                ViewportModel viewportModelInternal = tile.getRenderExecutor().getRenderer().getContext().getViewportModelInternal();
                java.awt.Point a = viewportModelInternal.worldToPixel(new Coordinate(env.getMinX(), env.getMinY()));
              java.awt.Point b = viewportModelInternal.worldToPixel(new Coordinate(env.getMaxX(), env.getMaxY()));
                    int width = b.x - a.x;
                    int height = a.y - b.y;
              synchronized (tile) {
                      //an exception can be thrown here if the image has been disposed of
                      //since it was retrieved or something else bad happens while drawing
                      //this is OK in our case because another paint event should be coming soon
                      //which will fix the issue; so for now we just catch the errors
                      //and don't worry about them.
                      try{
                          org.eclipse.swt.graphics.Image im = tile.getSWTImage();
                          gc.drawImage(im, 0, 0, im.getBounds().width, im.getBounds().height, a.x, b.y, width, height);
                      }catch (Exception ex){
                      }   
                    }
              if( TESTING ){
                    g.setColor(Color.BLUE);
                      g.drawLine(a.x, a.y, a.x, b.y);
                      g.drawLine(a.x, b.y, b.x, b.y);
                      g.drawLine(b.x, b.y, b.x, a.y);
                      g.drawLine(b.x, a.y, a.x, a.y);               
              }
              }  
            }
          else {
            // AWT, draw all the tiles
            Set<ReferencedEnvelope> keySet = tiles.keySet();
              for (ReferencedEnvelope env : keySet) {
                Tile tile = tiles.get(env);
                //System.out.println("BufferedImage: "+tile.getBufferedImage());
                ViewportModel viewportModelInternal = tile.getRenderExecutor().getRenderer().getContext().getViewportModelInternal();
                java.awt.Point a = viewportModelInternal.worldToPixel(new Coordinate(env.getMinX(), env.getMinY()));
                java.awt.Point b = viewportModelInternal.worldToPixel(new Coordinate(env.getMaxX(), env.getMaxY()));
                g.drawImage((RenderedImage)tile.getBufferedImage(), a.x, b.y);
                g.setColor(Color.BLUE);
                  g.drawLine(a.x, a.y, a.x, b.y);
                  g.drawLine(a.x, b.y, b.x, b.y);
                  g.drawLine(b.x, b.y, b.x, a.y);
View Full Code Here

Examples of org.locationtech.udig.project.internal.render.ViewportModel

            Layer layer ) {
        Map map = info.getLeft();
        Dimension size = info.getRight().getLeft();
        double scale = info.getRight().getRight();

        ViewportModel viewportModel = map.getViewportModelInternal();
        ReferencedEnvelope bounds = (ReferencedEnvelope) viewportModel.getBounds();
        BoundsStrategy boundsStrategy = new BoundsStrategy(scale);

        RenderContext context = null;
        if (inPreviewMode && !Float.isNaN(scaleFactor)) {
            float dpiFloat = (float) DEFAULTDPI * scaleFactor;
 
View Full Code Here

Examples of org.locationtech.udig.project.internal.render.ViewportModel

                Map copy = (Map) EcoreUtil.copy(map);

                // we need the original map and its box to correctly calculate the
                // scale so we must do it now
                Dimension size = new Dimension(box.getSize().width, box.getSize().height);
                ViewportModel viewportModel = map.getViewportModelInternal();

                ReferencedEnvelope bounds = (ReferencedEnvelope) viewportModel.getBounds();

                double scale = ScaleUtils.calculateScaleDenominator(bounds, size, 90);

                Pair<Dimension, Double> details = new Pair<Dimension, Double>(size, scale);
                return new Pair<Map, Pair<Dimension, Double>>(copy, details);
View Full Code Here

Examples of org.locationtech.udig.project.internal.render.ViewportModel

                                        .findEPSGCode(crs, monitor);
                                if (found == null) {
                                    return;
                                }

                                ViewportModel model = (ViewportModel) map.getViewportModel();
                                model.eSetDeliver(false);
                                try {
                                    model.setCRS(found);
                                    codes.addAll(CRSUtil.extractAuthorityCodes(found));
                                } finally {
                                    model.eSetDeliver(true);
                                }
                            }

                        });
                    } catch (InvocationTargetException e) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.