Package org.locationtech.udig.tests.catalog.wmt

Source Code of org.locationtech.udig.tests.catalog.wmt.OSMSourceTest

/*
*    uDig - User Friendly Desktop Internet GIS client
*    http://udig.refractions.net
*    (C) 2012, Refractions Research Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* (http://www.eclipse.org/legal/epl-v10.html), and the Refractions BSD
* License v1.0 (http://udig.refractions.net/files/bsd3-v10.html).
*/
package org.locationtech.udig.tests.catalog.wmt;

import static org.junit.Assert.assertEquals;

import java.util.Map;

import org.locationtech.udig.catalog.internal.wmt.WMTRenderJob;
import org.locationtech.udig.catalog.internal.wmt.WMTScaleZoomLevelMatcher;
import org.locationtech.udig.catalog.internal.wmt.ui.properties.WMTLayerProperties;
import org.locationtech.udig.catalog.internal.wmt.wmtsource.OSMMapnikSource;
import org.locationtech.udig.catalog.internal.wmt.wmtsource.OSMOsmarenderSource;
import org.locationtech.udig.catalog.internal.wmt.wmtsource.OSMSource;
import org.locationtech.udig.catalog.internal.wmt.wmtsource.WMTSource;
import org.locationtech.udig.catalog.internal.wmt.wmtsource.WMTSourceFactory;
import org.locationtech.udig.catalog.wmsc.server.Tile;

import org.geotools.geometry.jts.ReferencedEnvelope;
import org.geotools.referencing.crs.DefaultGeographicCRS;
import org.junit.Ignore;
import org.junit.Test;

public class OSMSourceTest {
   
    private OSMSource source = (OSMMapnikSource) WMTSourceFactory.createSource(null, WMTSource.getRelatedServiceUrl(OSMMapnikSource.class), null, true);
    private OSMSource sourceOsmarender = (OSMOsmarenderSource) WMTSourceFactory.createSource(null, WMTSource.getRelatedServiceUrl(OSMOsmarenderSource.class), null, true);
      
    private ReferencedEnvelope world = new ReferencedEnvelope(-180, 180, -89.51, 89.51, DefaultGeographicCRS.WGS84);
    private WMTScaleZoomLevelMatcher getMatcher(WMTSource source, double scale) throws Exception {
        return WMTScaleZoomLevelMatcher.createMatcher(
                world,
                scale,
                source);
    }
   
    @Test
    public void testZoomLevelMappingScaleFactor50() throws Exception {
               
        // Tests for scale-factor = 50
        int scaleFactorMiddle = 50;
          
        assertEquals(18, source.getZoomLevelFromMapScale(
                getMatcher(source, 0), scaleFactorMiddle));
        assertEquals(18, source.getZoomLevelFromMapScale(
                getMatcher(source, 2200), scaleFactorMiddle));
        assertEquals(18, source.getZoomLevelFromMapScale(
                getMatcher(source, 2260), scaleFactorMiddle));

        assertEquals(17, source.getZoomLevelFromMapScale(
                getMatcher(source, 4450), scaleFactorMiddle));
        assertEquals(17, source.getZoomLevelFromMapScale(
                getMatcher(source, 4550), scaleFactorMiddle));
       
        assertEquals(16, source.getZoomLevelFromMapScale(
                getMatcher(source, 9000), scaleFactorMiddle));
       
        assertEquals(3, source.getZoomLevelFromMapScale(
                getMatcher(source, 68000000), scaleFactorMiddle));

        assertEquals(2, source.getZoomLevelFromMapScale(
                getMatcher(source, 120000000), scaleFactorMiddle));
        assertEquals(2, source.getZoomLevelFromMapScale(
                getMatcher(source, 150000000), scaleFactorMiddle));
       
        // Osmarender Tests
        assertEquals(17, sourceOsmarender.getZoomLevelFromMapScale(
                getMatcher(sourceOsmarender, 1000), scaleFactorMiddle));
        assertEquals(2, sourceOsmarender.getZoomLevelFromMapScale(
                getMatcher(sourceOsmarender, 150000000), scaleFactorMiddle));
    }
   
    @Ignore
    @Test
    public void testZoomLevelMappingScaleFactor0() throws Exception {   
        // Tests for scale-factor = 0 (always scale up tiles)
        int scaleFactorUp = 0;
       
        assertEquals(18, source.getZoomLevelFromMapScale(
                getMatcher(source, 0), scaleFactorUp));
        assertEquals(18, source.getZoomLevelFromMapScale(
                getMatcher(source, 2200), scaleFactorUp));
        assertEquals(17, source.getZoomLevelFromMapScale(
                getMatcher(source, 2250), scaleFactorUp));

        assertEquals(17, source.getZoomLevelFromMapScale(
                getMatcher(source, 4450), scaleFactorUp));  
        assertEquals(16, source.getZoomLevelFromMapScale(
                getMatcher(source, 4480), scaleFactorUp));
       
        assertEquals(16, source.getZoomLevelFromMapScale(
                getMatcher(source, 8000), scaleFactorUp));
       
        assertEquals(2, source.getZoomLevelFromMapScale(
                getMatcher(source, 80000000), scaleFactorUp));

        assertEquals(2, source.getZoomLevelFromMapScale(
                getMatcher(source, 100000000), scaleFactorUp));
        assertEquals(2, source.getZoomLevelFromMapScale(
                getMatcher(source, 130000000), scaleFactorUp));
       
        // Osmarender Tests
        assertEquals(17, sourceOsmarender.getZoomLevelFromMapScale(
                getMatcher(sourceOsmarender, 1000), scaleFactorUp));
        assertEquals(2, sourceOsmarender.getZoomLevelFromMapScale(
                getMatcher(sourceOsmarender, 130000000), scaleFactorUp));
    }
   
    @Ignore
    @Test
    public void testZoomLevelMappingScaleFactor100() throws Exception {
       
       
        // Tests for scale-factor = 100 (always scale down tiles)
        int scaleFactorDown = 100;
       
        assertEquals(18, source.getZoomLevelFromMapScale(
                getMatcher(source, 0), scaleFactorDown));
        assertEquals(18, source.getZoomLevelFromMapScale(
                getMatcher(source, 2200), scaleFactorDown));
        assertEquals(18, source.getZoomLevelFromMapScale(
                getMatcher(source, 2300), scaleFactorDown));

        assertEquals(18, source.getZoomLevelFromMapScale(
                getMatcher(source, 4400), scaleFactorDown));
        assertEquals(17, source.getZoomLevelFromMapScale(
                getMatcher(source, 4480), scaleFactorDown));
       
        assertEquals(17, source.getZoomLevelFromMapScale(
                getMatcher(source, 8000), scaleFactorDown));
       
        assertEquals(3, source.getZoomLevelFromMapScale(
                getMatcher(source, 74000000), scaleFactorDown));

        assertEquals(3, source.getZoomLevelFromMapScale(
                getMatcher(source, 120000000), scaleFactorDown));
        assertEquals(2, source.getZoomLevelFromMapScale(
                getMatcher(source, 150000000), scaleFactorDown))
       
        // Osmarender Tests
        assertEquals(17, sourceOsmarender.getZoomLevelFromMapScale(
                getMatcher(sourceOsmarender, 1000), scaleFactorDown));
        assertEquals(2, sourceOsmarender.getZoomLevelFromMapScale(
                getMatcher(sourceOsmarender, 150000000), scaleFactorDown));
       
    }
   
    @Test
    public void testCutExtentInTiles() throws Exception {
        WMTLayerProperties layerProp = new WMTLayerProperties(null);
       
        ReferencedEnvelope env = new ReferencedEnvelope(-200, 220, -90, 95, DefaultGeographicCRS.WGS84);
       
        WMTRenderJob renderJob1 = WMTRenderJob.createRenderJob(
                env,
                150000000,
                source);
       
        Map<String, Tile> tiles = source.cutExtentIntoTiles(renderJob1, 50, true, layerProp, 1000);
       
        assertEquals(16, tiles.size());
    }
   
}
TOP

Related Classes of org.locationtech.udig.tests.catalog.wmt.OSMSourceTest

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.