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

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

/*
*    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 org.locationtech.udig.catalog.internal.wmt.tile.NASATile;
import org.locationtech.udig.catalog.internal.wmt.tile.NASATile.NASATileName;
import org.locationtech.udig.catalog.internal.wmt.tile.NASATile.NASATileName.NASAZoomLevel;
import org.locationtech.udig.catalog.internal.wmt.tile.WMTTile.WMTTileFactory;
import org.locationtech.udig.catalog.internal.wmt.wmtsource.NASASource;
import org.locationtech.udig.catalog.internal.wmt.wmtsource.WMTSource;
import org.locationtech.udig.catalog.internal.wmt.wmtsource.WMTSourceFactory;

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


public class NASATileTest {
   
    private NASASource source;
    private NASASource sourceUSA;
   
    @Before
    public void setUp() throws Exception {
       
        String resourceId1 = "Global Mosaic, pan sharpened visual";       
        source = (NASASource) WMTSourceFactory.createSource(null, WMTSource.getRelatedServiceUrl(NASASource.class), resourceId1, true);
       
        String resourceId2 =  "Continental US Elevation";       
        sourceUSA = (NASASource) WMTSourceFactory.createSource(null, WMTSource.getRelatedServiceUrl(NASASource.class), resourceId2, true);
    }

    @Test
    public void testZoomLevel() {
       
        NASAZoomLevel zoomLevel = source.getZoomLevel(0);


        ReferencedEnvelope boundsFirstTile = new ReferencedEnvelope(-180, -116, -26, 90, DefaultGeographicCRS.WGS84);
        assertEquals("http://wms.jpl.nasa.gov/wms.cgi?request=GetMap&layers=global_mosaic&srs=EPSG:4326&format=image/jpeg&styles=visual&width=512&height=512&bbox=-180,-26,-116,90",
                zoomLevel.getTileUrl(boundsFirstTile));
               
        assertEquals(6, zoomLevel.calculateMaxTilePerRowNumber(0));
        assertEquals(3, zoomLevel.calculateMaxTilePerColNumber(0));
    }
   
    @Test
    public void testGetTileFromCoordinate() {
       
        NASAZoomLevel zoomLevel = source.getZoomLevel(0);
        WMTTileFactory tileFactory = source.getTileFactory();
       
        NASATile tile = (NASATile) tileFactory.getTileFromCoordinate(90, -180, zoomLevel, source);       
        assertEquals("Global Mosaic, pan sharpened visual_0_0_0", tile.getId());
       
        NASATile tile2 = (NASATile) tileFactory.getTileFromCoordinate(-90, -180, zoomLevel, source);       
        assertEquals("Global Mosaic, pan sharpened visual_0_0_2", tile2.getId());
       
        NASATile tile3 = (NASATile) tileFactory.getTileFromCoordinate(-90, -115, zoomLevel, source);       
        assertEquals("Global Mosaic, pan sharpened visual_0_1_2", tile3.getId());
    }
   
    @Test
    public void testGetTileFromCoordinateUSA() {
       
        NASAZoomLevel zoomLevel = sourceUSA.getZoomLevel(3);
        WMTTileFactory tileFactory = sourceUSA.getTileFactory();
       
        NASATile tile = (NASATile) tileFactory.getTileFromCoordinate(50, -125, zoomLevel, sourceUSA);       
        assertEquals("Continental US Elevation_3_0_0", tile.getId());
       
        NASATile tile2 = (NASATile) tileFactory.getTileFromCoordinate(39, -125, zoomLevel, sourceUSA);       
        assertEquals("Continental US Elevation_3_0_1", tile2.getId());
       
        NASATile tile3 = (NASATile) tileFactory.getTileFromCoordinate(39, -114, zoomLevel, sourceUSA);       
        assertEquals("Continental US Elevation_3_1_1", tile3.getId());
    }
   
    @Test
    public void testGetExtentFromTileName() {
        NASAZoomLevel zoomLevel = source.getZoomLevel(0);
       
        NASATileName tileName1 = new NASATileName(0, 0, zoomLevel, source);
       
        assertEquals("ReferencedEnvelope[-180.0 : -116.0, 26.0 : 90.0]",
                NASATile.getExtentFromTileName(tileName1).toString());
       
        assertEquals("ReferencedEnvelope[-180.0 : -116.0, -38.0 : 26.0]",
                NASATile.getExtentFromTileName(tileName1.getLowerNeighbour()).toString());
       
        assertEquals("ReferencedEnvelope[-116.0 : -52.0, 26.0 : 90.0]",
                NASATile.getExtentFromTileName(tileName1.getRightNeighbour()).toString());
    }
   
    @Test
    public void testGetExtentFromTileNameUSA() {
        NASAZoomLevel zoomLevel = sourceUSA.getZoomLevel(3);
       
        NASATileName tileName1 = new NASATileName(0, 0, zoomLevel, sourceUSA);
       
        equals(NASATile.getExtentFromTileName(tileName1),
                -125.0, -114.33333333, 39.33333333, 50.0);

        equals(NASATile.getExtentFromTileName(tileName1.getLowerNeighbour()),
                -125.0, -114.33333333, 28.66666666, 39.33333333);

        equals(NASATile.getExtentFromTileName(tileName1.getRightNeighbour()),
                -114.33333333,-103.66666666, 39.33333333, 50.0);        
    }
   
    private void equals(ReferencedEnvelope env, double xmin, double xmax, double ymin, double ymax) {
        double delta = 0.0000001;
       
        assertEquals(xmax, env.getMaxX(), delta);
        assertEquals(xmin, env.getMinX(), delta);
        assertEquals(ymax, env.getMaxY(), delta);
        assertEquals(ymin, env.getMinY(), delta);
    }
   
}
TOP

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

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.