Package org.geowebcache.storage

Source Code of org.geowebcache.storage.RasterMaskTestUtils

/**
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU Lesser General Public License
*  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*
* @author Gabriel Roldan (OpenGeo) 2010
*/
package org.geowebcache.storage;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

import org.geowebcache.grid.GridSubset;
import org.geowebcache.layer.TileLayer;

import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.io.ParseException;
import com.vividsolutions.jts.io.WKTReader;

public class RasterMaskTestUtils {

    public static boolean debugToDisk;

    public static GeometryRasterMaskBuilder buildSampleFilterMatrix(final TileLayer layer,
            final String gridsetId) throws Exception {
        return buildSampleFilterMatrix(layer, gridsetId, 10);
    }

    public static GeometryRasterMaskBuilder buildSampleFilterMatrix(final TileLayer layer,
            final String gridsetId, final int maxMaskLevel) throws Exception {

        final Geometry entries[] = createSampleEntries();

        final GridSubset gridSubset = layer.getGridSubset(layer.getGridSubsets().keySet()
                .iterator().next());
        final int[] metaTilingFactors = layer.getMetaTilingFactors();
        GeometryRasterMaskBuilder matrix = new GeometryRasterMaskBuilder(gridSubset,
                metaTilingFactors, maxMaskLevel);

        try {
            for (Geometry geom : entries) {
                matrix.setMasksForGeometry(geom);
            }
        } finally {
            matrix.disposeGraphics();
        }

        logImages(new File("target"), matrix);

        return matrix;
    }

    public static void logImages(final File target, final GeometryRasterMaskBuilder matrix)
            throws IOException {
        if (debugToDisk) {
            BufferedImage[] byLevelMasks = matrix.getByLevelMasks();

            for (int i = 0; i < byLevelMasks.length; i++) {
                File output = new File(target, "level_" + i + ".tiff");
                System.out.println("--- writing " + output.getAbsolutePath() + "---");
                ImageIO.write(byLevelMasks[i], "TIFF", output);
            }
        }
    }

    /**
     * Creates three sample georss feed entries in WGS84
     * <p>
     * <ul>
     * <li>A Polygon covering the lower right quadrant of the world
     * <li>A Point at {@code 0, 45}
     * <li>A LineString at {@code -90 -45, -90 45}
     * </ul>
     * </p>
     *
     * @return
     */
    private static Geometry[] createSampleEntries() throws Exception {
        Geometry[] entries = {//
        entry("POLYGON ((0 0, 0 -90, 180 -90, 180 0, 0 0))"),//
                entry("POINT(0 45)"),//
                entry("LINESTRING(-90 -45, 90 45)") };
        return entries;
    }

    private static Geometry entry(final String wkt) throws ParseException {
        Geometry geometry = new WKTReader().read(wkt);
        return geometry;
    }

}
TOP

Related Classes of org.geowebcache.storage.RasterMaskTestUtils

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.