/*
Copyright (C) 2001, 2006 United States Government
as represented by the Administrator of the
National Aeronautics and Space Administration.
All Rights Reserved.
*/
package gov.nasa.worldwind.layers.Earth;

import gov.nasa.worldwind.avlist.*;
import gov.nasa.worldwind.geom.*;
import gov.nasa.worldwind.layers.BasicTiledImageLayer;
import gov.nasa.worldwind.util.*;

import java.net.*;
import java.util.GregorianCalendar;

/**
 */
public class Sec_48 extends BasicTiledImageLayer
{
    public Sec_48()
    {
        super(makeLevels(new URLBuilder()));
//        this.setMaxActiveAltitude(8e7d);//
        this.setUseTransparentTextures(true);
    	this.setName("Sec_48");
    }

    private static LevelSet makeLevels(URLBuilder urlBuilder)
    {
        AVList params = new AVListImpl();

        params.setValue(AVKey.TILE_WIDTH, 512);
        params.setValue(AVKey.TILE_HEIGHT, 512);
        
        params.setValue(AVKey.DATA_CACHE_NAME, "Earth/FAA/Sectionals/48States/");
//        params.setValue(AVKey.SERVICE, "http://localhost/serv/WWJ/FAA");
        params.setValue(AVKey.SERVICE, "http://nlneilson.com/serv/FAA");
        params.setValue(AVKey.DATASET_NAME, "48States");
        params.setValue(AVKey.FORMAT_SUFFIX, ".dds");
        params.setValue(AVKey.NUM_LEVELS, 6);
        params.setValue(AVKey.NUM_EMPTY_LEVELS, 0);

        Angle levelZeroDelta = Angle.fromDegrees(10.0);
        params.setValue(AVKey.LEVEL_ZERO_TILE_DELTA, new LatLon(levelZeroDelta, levelZeroDelta));

        params.setValue(AVKey.SECTOR, new Sector(Angle.fromDegrees(23.0), Angle.fromDegrees(49.5),
                Angle.fromDegrees(-127.0), Angle.fromDegrees(-60.50)));
      
        
       
        params.setValue(AVKey.TILE_URL_BUILDER, urlBuilder);
//        params.setValue(AVKey.EXPIRY_TIME, new GregorianCalendar(2007, 7, 6).getTimeInMillis());

        return new LevelSet(params);
    }

    private static class URLBuilder implements TileUrlBuilder
    {
        public URL getURL(Tile tile, String imageFormat) throws MalformedURLException
        {
            StringBuffer sb = new StringBuffer(tile.getLevel().getService());
            if (sb.lastIndexOf("/") != sb.length() - 1)
                sb.append("/");
            sb.append(tile.getLevel().getDataset());
            sb.append("/");
            sb.append(tile.getLevelNumber());
            sb.append("/");
            sb.append(tile.getRow());
            sb.append("/");
            sb.append(tile.getRow());
            sb.append("_");
            sb.append(tile.getColumn());

            sb.append(".jpg");

            return new java.net.URL(sb.toString());
        }
    }

/*    @Override
    public String toString()
    {
        return Logging.getMessage("layers.Earth.FAA_AK.Name");
    }
*/    
}
