/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package usda.weru.gis;

import usda.weru.gis.gui.MapRenderLayer;
import com.vividsolutions.jts.geom.Coordinate;
import de.schlichtherle.io.File;
import java.awt.EventQueue;
import java.util.List;
import javax.measure.unit.NonSI;
import javax.swing.JFrame;
import org.jscience.geography.coordinates.LatLong;
import usda.weru.gis.data.CropManagementZone;
import usda.weru.gis.data.SoilMapUnit;
import usda.weru.gis.gui.MapPane;
import usda.weru.gis.gui.MapViewer;
import usda.weru.gis.util.Cligen2Shp;

/**
 *
 * @author Joseph A. Levin <joelevin@weru.ksu.edu>
 */
public class GISMain {

    /**
     * @param args the command line arguments
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        
        //viewerMain();
        //lookupMain();
        Cligen2Shp c2s = new Cligen2Shp(new File("C:/usr/joelevin/weru/weps1/weps.install/db/cligen/upd_US_cligen_stations.idx"));
        c2s.run();
    }

    private static void lookupMain() throws Exception{
        
        GISData data = GISData.getInstance();
        

       
        LatLong manhattanKansas = LatLong.valueOf(39.2, -96.6, NonSI.DEGREE_ANGLE);

        
        GISLookup <CropManagementZone> cmzLookup = data.getLookup(CropManagementZone.class);
        List<CropManagementZone> zones = null;
        if(cmzLookup != null){
//            zones = cmzLookup.lookup();
            zones = cmzLookup.lookup(manhattanKansas);
        }

        if(zones != null){
            for(CropManagementZone zone : zones){
                System.out.println(zone);
            }
        }
        else{
            System.out.println("No CMZ Data Found");
        }

        GISLookup <SoilMapUnit> muLookup = data.getLookup(SoilMapUnit.class);
        List<SoilMapUnit> mus = null;
        if(cmzLookup != null){
//            mus = muLookup.lookup();
            mus = muLookup.lookup(manhattanKansas);
        }

        if(mus != null){
            for(SoilMapUnit mu : mus){
                System.out.println(mu);
            }
        }
        else{
            System.out.println("No Soil Data Found");
        }


    }

    private static void viewerMain() throws Exception{        

        final MapViewer viewer = new MapViewer();
        MapPane pane = new MapPane();
        final MapRenderLayer layer = pane.getMapLayer();

        layer.setCenter(new Coordinate(-96.6, 39.2));
        layer.setZoomFactor(5);




        viewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        viewer.setLocation(0, 0);
        viewer.pack();

        EventQueue.invokeLater(new Runnable() {

            public void run() {
                viewer.setVisible(true);
            }
        });
    }
}
