Package org.locationtech.udig.catalog.wmsc.server

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


            // Download and display tiles

            // look up the preference for caching tiles on-disk or in
            // memory and use the proper tilerange for that.
            TileRange range = createTileRange(wmtSource, renderJob, tileList);

            // create an empty raster symbolizer for rendering
            RasterSymbolizer style = styleBuilder.createRasterSymbolizer();

            // setup how much each tile is worth for the monitor work %
            int tileCount = range.getTileCount();
            int tileWorth = (tileCount / 100) * tileCount;

            int thisid = 0;
            if (testing) {
                staticid++;
                thisid = staticid;
            }

            // first render any tiles that are ready and render non-ready tiles with blank images
            Map<String, Tile> tiles = range.getTiles();
            Set<String> notRenderedTiles = new HashSet<String>();
            Set<String> renderedTiles = new HashSet<String>();

            renderReadyTiles(destination, monitor, renderJob, style, tileWorth, thisid, tiles,
                    notRenderedTiles, renderedTiles);
View Full Code Here


        }
    }

    private TileRange createTileRange( WMTSource wmtSource, WMTRenderJob renderJob,
            Map<String, Tile> tileList ) {
        TileRange range;
        TileSet tileset = new WMTTileSetWrapper(wmtSource);
   
        String value = CatalogPlugin.getDefault().getPreferenceStore().getString(PreferenceConstants.P_WMSCTILE_CACHING);
        if (value.equals(WMSCTileCaching.ONDISK.toString())) {
            String dir = CatalogPlugin.getDefault().getPreferenceStore().getString(PreferenceConstants.P_WMSCTILE_DISKDIR);
View Full Code Here

            Map<String, Tile> tilesInRange = tileset.getTilesFromViewportScale(bnds, scaleFactor);

            // look up the preference for caching tiles on-disk or in
            // memory and use the proper tilerange for that.
            TileRange range = null;
            String value = CatalogPlugin.getDefault().getPreferenceStore()
                    .getString(PreferenceConstants.P_WMSCTILE_CACHING);
            if (value.equals(WMSCTileCaching.ONDISK.toString())) {
                range = new TileRangeOnDisk(server, tileset, bnds, tilesInRange,
                        requestTileWorkQueue, writeTileWorkQueue);
            } else {
                range = new TileRangeInMemory(server, tileset, bnds, tilesInRange,
                        requestTileWorkQueue);
            }

            // create an empty raster symbolizer for rendering
            RasterSymbolizer style = styleBuilder.createRasterSymbolizer();

            // setup how much each tile is worth for the monitor work %
            int tileCount = range.getTileCount();
            int tileWorth = (tileCount / 100) * tileCount;

            int thisid = 0;
            if (testing) {
                staticid++;
                thisid = staticid;
            }

            // first render any tiles that are ready and render non-ready tiles with blank images
            Map<String, Tile> tiles = range.getTiles();
            Set<String> notRenderedTiles = new HashSet<String>();
            Set<String> renderedTiles = new HashSet<String>();

            for( String key : tiles.keySet() ) {
                if (monitor.isCanceled()) {
                    setState(CANCELLED);
                    if (testing) {
                        System.out.println("monitor CANCELED!!!: " + thisid); //$NON-NLS-1$
                    }
                    return;
                }
                Tile tile = tiles.get(key);
                if (tile != null && tile.getBufferedImage() != null
                        && tile.getTileState() != WMSTile.INERROR) {
                    renderTile(graphics, tile, tileset.getCoordinateReferenceSystem(), style);
                    renderedTiles.add(key);
                    monitor.worked(tileWorth); // inc the monitor work by 1 tile
                } else {
                    // set the tile blank (removing any previous content) and add it
                    // to be drawn later
                    renderBlankTile(graphics, tile, tileset.getCoordinateReferenceSystem());
                    notRenderedTiles.add(key);
                }
            }
            setState(RENDERING);

            // if the tilerange is not already completed, then load
            // the missing tiles
            if (!notRenderedTiles.isEmpty()) {
                if (monitor.isCanceled()) {
                    setState(CANCELLED);
                    if (testing) {
                        System.out.println("monitor CANCELED!!!: " + thisid); //$NON-NLS-1$
                    }
                    return;
                }

                // set the listener on the tile range
                range.addListener(listener);

                // load the missing tiles by sending requests for them
                range.loadTiles(monitor);

                // block until all the missing tiles have come through (and draw them
                // as they are added to the blocking queue
                while( !notRenderedTiles.isEmpty() ) {
                    // check that the rendering is not canceled
View Full Code Here

TOP

Related Classes of org.locationtech.udig.catalog.wmsc.server.TileRange

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.