Examples of Tile


Examples of org.locationtech.udig.catalog.wmsc.server.Tile

            if (testing) {
                System.out.println("BLOCKED: "+thisid); //$NON-NLS-1$
                System.out.println("waiting on: " + notRenderedTiles.size()+" tiles"); //$NON-NLS-1$ //$NON-NLS-2$
            }
           
            Tile tile = null;
            try {
                Object element = null;
               
                /* get the next tile that is ready to render,
                 * check after 1 sec if the rendering was canceled
                 */
                while ((element = tilesToDraw_queue.poll(1000, TimeUnit.MILLISECONDS)) == null) {
                    checkCancelState(monitor, thisid, true);
                }
               
                tile = (Tile) element;

                if (testing) {
                    System.out.println("removed from queue: "+tile.getId()); //$NON-NLS-1$
                }
            } catch (InterruptedException ex) {
                if (testing) {
                    System.out.println("InterruptedException trying to take: "+ex); //$NON-NLS-1$
                }
            }
           
            if (testing) {
                System.out.println("UNBLOCKED!!!: "+thisid); //$NON-NLS-1$
            }
           
            // check that the rendering is not canceled again after block
            checkCancelState(monitor, thisid, true);
           
            // check that the tile's bounds are within the current
            // context's bounds (if it's not, don't bother drawing it) and also
            // only draw tiles that haven't already been drawn (panning fast
            // can result in listeners being notified the same tile is ready multiple
            // times but we don't want to draw it more than once per render cycle)
            //ReferencedEnvelope viewbounds = getContext().getViewportModel().getBounds();           
           
            ReferencedEnvelope viewbounds = renderJob.projectMapToTileCrs(
                    context.getViewportModel().getBounds());
           
            if (tile != null && tile.getBufferedImage() != null &&
                    viewbounds != null &&
                    viewbounds.intersects(tile.getBounds()) &&
                    !renderedTiles.contains(tile.getId()) &&
                    notRenderedTiles.contains(tile.getId())) {
                try {
                    renderedTiles.add(tile.getId());
                    renderTile(destination, (WMTTile) tile, style, renderJob);
                   
                } catch(Exception exc) {
                    WMTPlugin.log("[BasicWMTRender.render] renderTile failed (2): " + tile.getId(), exc); //$NON-NLS-1$
                }
                monitor.worked(tileWorth)// inc the monitor work by 1 tile
                setState(RENDERING); // tell renderer new data is ready               
            }
           
            // remove the tile from the not rendered list regardless
            // of whether it was actually drawn (this is to prevent
            // this render cycle from blocking endlessly waiting for tiles
            // that either didn't return or had some error)
            notRenderedTiles.remove(tile.getId());
        }
    }
View Full Code Here

Examples of org.locationtech.udig.catalog.wmsc.server.Tile

            Map<String, Tile> tiles, Set<String> notRenderedTiles, Set<String> renderedTiles )
            throws Exception {
        for (String key : tiles.keySet()) {
            checkCancelState(monitor, thisid, false);
           
            Tile tile = tiles.get(key);
            if (tile != null && tile.getBufferedImage() != null && tile.getTileState() != WMSTile.INERROR) {
                try {
                    renderedTiles.add(key);
                    renderTile(destination, (WMTTile) tile, style, renderJob);
                } catch(Exception exc) {
                    WMTPlugin.log("[BasicWMTRender.render] renderTile failed (1): " + tile.getId(), exc); //$NON-NLS-1$
                }
                monitor.worked(tileWorth)// inc the monitor work by 1 tile
            }
            else {
                // set the tile blank (removing any previous content) and add it
View Full Code Here

Examples of org.locationtech.udig.project.render.Tile

        Collection<ReferencedEnvelope> tileBounds = computeTileBounds(areaOfInterest, resolution);

        for( Iterator<ReferencedEnvelope> iterator = tileBounds.iterator(); iterator.hasNext(); ) {
            ReferencedEnvelope referencedEnvelope = (ReferencedEnvelope) iterator.next();

            Tile tile = getOrCreateTile(referencedEnvelope);

            RenderExecutorComposite re = tile.getRenderExecutor();
            if (tile.getRenderState() == Tile.RenderState.INVALID) {
                re.setRenderBounds(tile.getReferencedEnvelope());
                re.getRenderer().setState(IRenderer.RENDER_REQUEST);
                re.render();
            } else {
                //kick the renderer to refresh the image
               re.getRenderer().setState(IRenderer.DONE);
            }
            tile.setRenderState(Tile.RenderState.RENDERED);
        }
    }
View Full Code Here

Examples of org.locationtech.udig.project.render.Tile

     * Disposes all tiles
     */
    private void disposeAllTiles(){
        for( Iterator<Object> iterator = tileCache.getKeys().iterator(); iterator.hasNext(); ) {
            ReferencedEnvelope key = (ReferencedEnvelope) iterator.next();
            Tile t = (Tile)tileCache.get(key);
            if (t != null){
                removeAdapters(t.getRenderExecutor());
                t.dispose();
            }
        }   
    }
View Full Code Here

Examples of org.locationtech.udig.project.render.Tile

        //they are the same; so they are related
        if (layer == contained) return true;
       
       
        Tile t = null;
        Iterator<Object> keys = tileCache.getKeys().iterator();
        while( t == null && keys.hasNext()){
            t = (Tile)tileCache.get((ReferencedEnvelope)keys.next());
        }
        if (t == null){
            //no tile found
            return false;
        }

        RenderExecutorComposite parent  = t.getRenderExecutor();
        Collection<TiledCompositeRendererImpl.RenderInfo>  kids = ((TiledCompositeRendererImpl)parent.getRenderer()).getChildren();
       
        for( Iterator<TiledCompositeRendererImpl.RenderInfo> iterator = kids.iterator(); iterator.hasNext(); ) {
            TiledCompositeRendererImpl.RenderInfo kid = iterator.next();
            IRenderContext childcontext = kid.getRenderer().getContext()
View Full Code Here

Examples of org.locationtech.udig.project.render.Tile

        try {
            for( Iterator<ReferencedEnvelope> iterator = bounds.iterator(); iterator.hasNext(); ) {
                ReferencedEnvelope env = (ReferencedEnvelope) iterator.next();

                // get the tile
                Tile tile = getOrCreateTile(env);
                tile.setScreenState(Tile.ScreenState.ONSCREEN);
                if (tile.getRenderState() == Tile.RenderState.INVALID){
                    tile.getRenderExecutor().setRenderBounds(tile.getReferencedEnvelope());
                    tile.getRenderExecutor().setState(IRenderer.RENDER_REQUEST);
                }
                newTiles.put(env, tile);
            }
           
            //update the other tiles to an offscreen state
            for( Iterator<Object> iterator = tileCache.getKeys().iterator(); iterator.hasNext(); ) {
                ReferencedEnvelope referencedEnvelope = (ReferencedEnvelope) iterator.next();
                Tile t = (Tile)tileCache.get(referencedEnvelope);
                if (t != null && !newTiles.containsKey(referencedEnvelope)){
                    t.setScreenState(Tile.ScreenState.OFFSCREEN);
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
View Full Code Here

Examples of org.locationtech.udig.project.render.Tile

     *
     */
    private void invalidateAllTilesRenderState(){
        for( Iterator<Object> iterator = tileCache.getKeys().iterator(); iterator.hasNext(); ) {
            ReferencedEnvelope key = (ReferencedEnvelope)iterator.next();
            Tile t = (Tile)tileCache.get(key);
            if (t != null){
                t.setRenderState(Tile.RenderState.INVALID);
            }
        }
    }
View Full Code Here

Examples of org.locationtech.udig.project.render.Tile

     * and modifications made as necessary.
     */
    private void invalidateAllTileContext(){
        for( Iterator<Object> iterator = tileCache.getKeys().iterator(); iterator.hasNext(); ) {
            ReferencedEnvelope key = (ReferencedEnvelope)iterator.next();
            Tile t = (Tile)tileCache.get(key);
            if (t != null){
                t.setContextState(Tile.ContextState.INVALID);
            }
        }
    }
View Full Code Here

Examples of org.locationtech.udig.project.render.Tile

        g.clearRect(0,0, getMapDisplay().getWidth(), getMapDisplay().getHeight());
       
        //update screen tile states
        for( Iterator<Object> iterator = tileCache.getKeys().iterator(); iterator.hasNext(); ) {
            ReferencedEnvelope referencedEnvelope = (ReferencedEnvelope) iterator.next();
            Tile t = (Tile)tileCache.get(referencedEnvelope);
            if (t != null && !tileBounds.contains(referencedEnvelope)){
                t.setScreenState(Tile.ScreenState.OFFSCREEN);
            }
        }
       
        try {
            for( Iterator<ReferencedEnvelope> iterator = tileBounds.iterator(); iterator.hasNext(); ) {
                ReferencedEnvelope env = (ReferencedEnvelope) iterator.next();

                // get the tile image
                Tile tile = getOrCreateTile(env);
                tile.setScreenState(Tile.ScreenState.ONSCREEN);
               
                BufferedImage tileimage = tile.getBufferedImage();

                //write the image to the screen image
                Point a = getViewportModelInternal().worldToPixel(new Coordinate(env.getMinX(), env.getMinY()));
                Point b = getViewportModelInternal().worldToPixel(new Coordinate(env.getMaxX(), env.getMaxY()));
               
View Full Code Here

Examples of org.locationtech.udig.project.render.Tile

        double resolution = viewportbounds.getWidth() / getMapDisplay().getWidth();
        Collection<ReferencedEnvelope> tileBounds = computeTileBounds(areaOfInterest, resolution);
       
        for( Iterator<Object> iterator = tileCache.getKeys().iterator(); iterator.hasNext(); ) {
            ReferencedEnvelope key = (ReferencedEnvelope)iterator.next();
            Tile t = (Tile)tileCache.get(key);
            if (!tileBounds.contains(key)){
                //we can't assume that all layers have been rendered outside of the current tile bounds
                //really we only need to do this when tiles are made visible...
                t.setRenderState(Tile.RenderState.INVALID);
            }
        }
    }
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.