geovisor

29
Programación de interfaces Juan C Soto Orjuela Cod. 20141094025 Evaluación y creación de un geo visor Septiembre 19 de 2014 Introducción Basado en el documento Geovisor.pdf, proporcionado en clase por el docente, se desarrolla un Geovisor básico, siguiendo las pautas establecidas en el documento antes mencionado. Resultados El resultado de aplicar y seguir las instrucciones en las primeras 4 secciones (Introducción, Requerimientos, Configuración, Diseño de Interfaz y los primeros 4 puntos de la sección Adición de datos) se pueden observar en el archivo pom.xml (que se muestra como un anexo de este documento) configurado correctamente y en hecho de que los puntos subsiguientes funcionan adecuadamente Los resultados que se muestran a continuación corresponden, como se mencionó anteriormente a los puntos asociados a la sección Adición de datos. 5.- Despliegue de las Manzanas File shpManz = new File("datos\\Manz.shp"); FileDataStore fdsManz = FileDataStoreFinder.getDataStore(shpManz); SimpleFeatureSource sfsManz = fdsManz.getFeatureSource(); org.geotools.styling.Style stlManz = SLD.createSimpleStyle(sfsManz.getSchema()); Layer lyrManz = new FeatureLayer(sfsManz, stlManz); cont.addLayer(lyrManz);

description

Evaluación y creación de un geovisor

Transcript of geovisor

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    Introduccin Basado en el documento Geovisor.pdf, proporcionado en clase por el docente, se desarrolla un Geovisor bsico, siguiendo las pautas establecidas en el documento antes mencionado.

    Resultados El resultado de aplicar y seguir las instrucciones en las primeras 4 secciones (Introduccin, Requerimientos, Configuracin, Diseo de Interfaz y los primeros 4 puntos de la seccin Adicin de datos) se pueden observar en el archivo pom.xml (que se muestra como un anexo de este documento) configurado correctamente y en hecho de que los puntos subsiguientes funcionan adecuadamente Los resultados que se muestran a continuacin corresponden, como se mencion anteriormente a los puntos asociados a la seccin Adicin de datos. 5.- Despliegue de las Manzanas File shpManz = new File("datos\\Manz.shp"); FileDataStore fdsManz = FileDataStoreFinder.getDataStore(shpManz); SimpleFeatureSource sfsManz = fdsManz.getFeatureSource(); org.geotools.styling.Style stlManz = SLD.createSimpleStyle(sfsManz.getSchema()); Layer lyrManz = new FeatureLayer(sfsManz, stlManz); cont.addLayer(lyrManz);

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    6.- Usabilidad: para lo que se tiene de manera inicial, los botones muestran metforas adecuadas. Quizs sean algo grandes, desperdiciando espacio. NO hay un botn para salir, no se pueden adicionar, por interfaz ms capas, no hay forma de adicionar capas desde bases de datos

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    7.- Adicionar capas de drenaje y vas // Capa Drenaje File shpDren = new File("datos\\Dren.shp"); FileDataStore fdsDren = FileDataStoreFinder.getDataStore(shpDren); SimpleFeatureSource sfsDren = fdsDren.getFeatureSource(); org.geotools.styling.Style stlDren = SLD.createSimpleStyle(sfsDren.getSchema()); Layer lyrDren = new FeatureLayer(sfsDren, stlDren); cont.addLayer(lyrDren); // Capa Malla Vial Integral File shpMVI = new File("datos\\MVI.shp"); FileDataStore fdsMVI = FileDataStoreFinder.getDataStore(shpMVI); SimpleFeatureSource sfsMVI = fdsMVI.getFeatureSource(); org.geotools.styling.Style stlMVI = SLD.createSimpleStyle(sfsMVI.getSchema()); Layer lyrMVI = new FeatureLayer(sfsMVI, stlMVI); cont.addLayer(lyrMVI);

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    8.- Adicionar bsqueda de shape /* Trabajar con cualquier shape */ // display a data store file chooser dialog for shapefiles File shpGeneric = JFileDataStoreChooser.showOpenFile("shp", null); if (shpGeneric == null) { return; } FileDataStore fdsGeneric = FileDataStoreFinder.getDataStore(shpGeneric); SimpleFeatureSource sfsGeneric = fdsGeneric.getFeatureSource(); org.geotools.styling.Style stlGeneric = SLD.createSimpleStyle(sfsGeneric.getSchema()); Layer lyrGeneric = new FeatureLayer(sfsGeneric, stlGeneric); cont.addLayer(lyrGeneric);

    Adicionar botn /* Adicionar un boton a la barra de herramientas*/ JToolBar toolBar = map.getToolBar(); //JButton btn = new JButton("Select"); Icon btnIcon = new ImageIcon("imgs\\AddLayer.jpg"); JButton btn = new JButton(btnIcon); toolBar.addSeparator(); toolBar.add(btn);

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    9.- Implemente un botn para agregar capas //Boton para adicionar nuevas capas Icon btnIcon = new ImageIcon("imgs\\AddLayer30.jpg"); final JButton btn = new JButton(btnIcon); btn.setToolTipText("Adicionar capa"); toolBar.add(btn); map.setVisible(true); // Tareas del boton btn.addActionListener ( new ActionListener () { @SuppressWarnings("empty-statement") @Override public void actionPerformed (ActionEvent ae) { try { File shpGenerico = JFileDataStoreChooser.showOpenFile ("shp", null); if (shpGenerico == null) { return; } FileDataStore fdsGenerico = FileDataStoreFinder.getDataStore (shpGenerico); SimpleFeatureSource sfsGenerico = fdsGenerico.getFeatureSource (); org.geotools.styling.Style stlGenerico = SLD.createSimpleStyle(sfsGenerico.getSchema()); Layer lyrGenerico = new FeatureLayer (sfsGenerico, stlGenerico); cont.addLayer(lyrGenerico); } catch (IOException e){System.out.println("e");}; } } );

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    10.- Cargue las localidades en la base de datos postgreSQL

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    11.- Adicionar gt-jdbc-postgis al pom.xml y resolver dependencias Adicionar una nueva dependecia en al archivo pom.xml org.geotools.jdbc gt-jdbc-postgis ${geotools.version} Cargar dependencias declaradas

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    12.- Parmetros Map params = new HashMap(); params.put("dbtype", "postgis"); params.put("host", "localhost"); params.put("port", 5432 ); params.put("schema", "public"); params.put("database", "Bogota"); params.put("user", "postgres"); params.put("passwd", "postgres2014");

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    13.- Mostrar capa leyendo desde PostGres // Add the layer Localidades from PostGres DataStore dsPG = DataStoreFinder.getDataStore(params); FeatureSource fsLoc = dsPG.getFeatureSource("localidades"); org.geotools.styling.Style stlLoc = SLD.createSimpleStyle(fsLoc.getSchema()); Layer lyrLoc = new FeatureLayer(fsLoc, stlLoc); cont.addLayer(lyrLoc); map.setVisible(true);

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    14.- Crear botn para cargar localidades desde Postgres

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    En la ventana padre (colibr.java) /* main class */ import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JOptionPane; import javax.swing.JToolBar; import org.geotools.data.DataStore; import org.geotools.data.DataStoreFinder; import org.geotools.data.FeatureSource; import org.geotools.data.FileDataStore; import org.geotools.data.FileDataStoreFinder; import static org.geotools.data.Parameter.CRS; import org.geotools.data.simple.SimpleFeatureSource; import org.geotools.map.FeatureLayer; import org.geotools.map.Layer;

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    import org.geotools.map.MapContent; import org.geotools.styling.SLD; import org.geotools.swing.JMapFrame; import org.geotools.swing.data.JFileDataStoreChooser; import org.opengis.referencing.FactoryException; import org.opengis.referencing.crs.CoordinateReferenceSystem; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author Juan Carlos Soto */ public class colibri { public static int myPath = 0; public static String pblDataBase = "Bogota"; public static String pblDbType = "postgis"; public static String pblHost = "localhost"; public static String pblPasswd = "colibri"; public static String pblPort = "5432"; public static String pblSchema = "public"; public static String pblUser = "postgres"; public static String pblLayer = "localidades"; /** * @param args the command line arguments * @throws java.io.IOException */ public static void main(String[] args) throws IOException { // Manejo de las capas final MapContent cont=new MapContent(); JMapFrame map=new JMapFrame(cont); /*objeto java*/ /* Adicion de componentes */ map.enableToolBar(true); map.enableStatusBar(true); map.enableLayerTable(true); map.setSize(700, 500); map.setTitle("GEOVISOR UD-jcsotoo"); /* Adicionar un boton a la barra de herramientas*/ JToolBar toolBar = map.getToolBar();

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    //Botn para adicionar nuevas capas Icon btnIcon = new ImageIcon("imgs\\AddLayer30.jpg"); final JButton btn = new JButton(btnIcon); btn.setToolTipText("Add layer from Shape"); // Botn para cargar informacion desde una base de datos Postgres Icon btnIconPS = new ImageIcon("imgs\\PostGis25.jpg"); final JButton btnPostGis = new JButton(btnIconPS); btnPostGis.setToolTipText("Add layer from PostGis"); // Botn para Salir Icon btnIconExit = new ImageIcon("imgs\\Exit25.png"); final JButton btnExit = new JButton(btnIconExit); btnExit.setToolTipText("Exit"); // Adicionar botones a la barra de botones toolBar.addSeparator(); toolBar.add(btn); toolBar.add(btnPostGis); toolBar.addSeparator(); toolBar.add(btnExit); // Mostrar visor map.setVisible(true); // Tareas asociadas al boton de adicionar capas btn.addActionListener ( new ActionListener () { @SuppressWarnings("empty-statement") @Override public void actionPerformed (ActionEvent ae) { try { File shpGenerico = JFileDataStoreChooser.showOpenFile ("shp", null); if (shpGenerico == null) { return; } FileDataStore fdsGenerico = FileDataStoreFinder.getDataStore (shpGenerico); SimpleFeatureSource sfsGenerico = fdsGenerico.getFeatureSource ();

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    org.geotools.styling.Style stlGenerico = SLD.createSimpleStyle(sfsGenerico.getSchema()); Layer lyrGenerico = new FeatureLayer (sfsGenerico, stlGenerico); cont.addLayer(lyrGenerico); } catch (IOException e){System.out.println("e");}; } } ); // Tareas asociadas al boton de cargar datos desde una base de datos Postgres btnPostGis.addActionListener ( new ActionListener () { @SuppressWarnings("empty-statement") @Override public void actionPerformed (ActionEvent ae) { try { ParaPostGis dialog = new ParaPostGis(new javax.swing.JFrame(), true); dialog.setVisible(true); // Parametros de conexion a PostGreSQL if (myPath==1) { Map params = new HashMap(); params.put("dbtype", pblDbType); //"postgis"); params.put("host", pblHost); //"localhost"); params.put("port", pblPort); //5432 ); params.put("schema", pblSchema); // "public"); params.put("database", pblDataBase); // "Bogota"); params.put("user", pblUser); //"postgres"); params.put("passwd", pblPasswd); //"colibri"); // Add the layer Localidades from PostGres DataStore dsPG = DataStoreFinder.getDataStore(params); FeatureSource fsLoc = dsPG.getFeatureSource(pblLayer); //"localidades"); org.geotools.styling.Style stlLoc = SLD.createSimpleStyle(fsLoc.getSchema()); Layer lyrLoc = new FeatureLayer(fsLoc, stlLoc); cont.addLayer(lyrLoc); } } catch (IOException e){System.out.println("e");}; } }

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    ); // Tareas asociadas al botn de adicionar salir del programa btnExit.addActionListener ( new ActionListener () { @SuppressWarnings("empty-statement") @Override public void actionPerformed (ActionEvent ae) { if(ae.getSource() == btnExit) System.exit(0); } } ); /* Asignar valor de archivo a mostrar fijo */ // Mostrar capa Drenaje File shpDren = new File("datos\\Dren.shp"); FileDataStore fdsDren = FileDataStoreFinder.getDataStore(shpDren); SimpleFeatureSource sfsDren = fdsDren.getFeatureSource(); org.geotools.styling.Style stlDren = SLD.createLineStyle(Color.BLUE, 2, null, null); Layer lyrDren = new FeatureLayer(sfsDren, stlDren); cont.addLayer(lyrDren); // Mostrar capa Malla Vial Integral File shpMVI = new File("datos\\MVI.shp"); FileDataStore fdsMVI = FileDataStoreFinder.getDataStore(shpMVI); SimpleFeatureSource sfsMVI = fdsMVI.getFeatureSource(); org.geotools.styling.Style stlMVI = SLD.createLineStyle(Color.ORANGE, 2, null, null); Layer lyrMVI = new FeatureLayer(sfsMVI, stlMVI); cont.addLayer(lyrMVI); // Mostrar capa Manzanas File shpManz = new File("datos\\Manz.shp"); FileDataStore fdsManz = FileDataStoreFinder.getDataStore(shpManz); SimpleFeatureSource sfsManz = fdsManz.getFeatureSource(); org.geotools.styling.Style stlManz = SLD.createSimpleStyle(sfsManz.getSchema()); Layer lyrManz = new FeatureLayer(sfsManz, stlManz); cont.addLayer(lyrManz); // Mostrar cualquier capa File shpGeneric = JFileDataStoreChooser.showOpenFile("shp", null); if (shpGeneric == null) { return; }

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    FileDataStore fdsGeneric = FileDataStoreFinder.getDataStore(shpGeneric); SimpleFeatureSource sfsGeneric = fdsGeneric.getFeatureSource(); org.geotools.styling.Style stlGeneric = SLD.createSimpleStyle(sfsGeneric.getSchema()); Layer lyrGeneric = new FeatureLayer(sfsGeneric, stlGeneric); cont.addLayer(lyrGeneric); } } En la ventana hija (ParaPostGis.java) import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.JTextField; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author Juan Carlos Soto O */ public class ParaPostGis extends javax.swing.JDialog { /** * Creates new form ParaPostGis * @param parent * @param modal */ public ParaPostGis(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); OnlyNumber(myPort); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // private void initComponents() { lblDbType = new javax.swing.JLabel();

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    lblHost = new javax.swing.JLabel(); lblPort = new javax.swing.JLabel(); lblDataBase = new javax.swing.JLabel(); lblSchema = new javax.swing.JLabel(); lblUser = new javax.swing.JLabel(); lblmyPasswd = new javax.swing.JLabel(); myDbType = new javax.swing.JTextField(); myHost = new javax.swing.JTextField(); myPort = new javax.swing.JTextField(); myDataBase = new javax.swing.JTextField(); mySchema = new javax.swing.JTextField(); myUser = new javax.swing.JTextField(); myPasswd = new javax.swing.JTextField(); btn2OK = new javax.swing.JButton(); btn2Cancel = new javax.swing.JButton(); lblLayer = new javax.swing.JLabel(); myLayer = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("PostgreSQL: parametros de conexion"); setAlwaysOnTop(true); lblDbType.setText("Tip BBDD:"); lblHost.setText("Maquina:"); lblPort.setText("Puerto: "); lblDataBase.setText("Base de datos:"); lblSchema.setText("Esquema: "); lblUser.setText("Usuario: "); lblmyPasswd.setText("Clave de acceso: "); myDbType.setText("postgis"); myHost.setText("localhost"); myHost.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { myHostActionPerformed(evt); } }); myPort.setText("5432");

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    myPort.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { myPortActionPerformed(evt); } }); myDataBase.setText("Bogota"); myDataBase.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { myDataBaseActionPerformed(evt); } }); mySchema.setText("public"); mySchema.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mySchemaActionPerformed(evt); } }); myUser.setText("postgres"); myPasswd.setText("colibri"); myPasswd.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { myPasswdActionPerformed(evt); } }); btn2OK.setText("Aceptar"); btn2OK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btn2OKActionPerformed(evt); } }); btn2Cancel.setText("Cancelar"); btn2Cancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btn2CancelActionPerformed(evt); } }); lblLayer.setText("Capa: "); myLayer.setText("localidades");

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap(54, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(lblDbType) .addGroup(layout.createSequentialGroup() .addComponent(btn2OK) .addGap(18, 18, 18) .addComponent(btn2Cancel)) .addComponent(lblHost) .addComponent(lblPort) .addGroup(layout.createSequentialGroup() .addGap(90, 90, 90) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(myHost, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(myDbType, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(lblmyPasswd) .addComponent(lblLayer)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(myPasswd, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addComponent(myLayer) .addGap(10, 10, 10)))) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addGroup(layout.createSequentialGroup() .addGap(90, 90, 90) .addComponent(myPort)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(lblDataBase) .addComponent(lblSchema)

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    .addComponent(lblUser)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(mySchema, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(myDataBase, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(myUser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))) .addContainerGap(14, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblDbType) .addComponent(myDbType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblHost) .addComponent(myHost, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblPort) .addComponent(myPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblDataBase) .addComponent(myDataBase, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblSchema) .addComponent(mySchema, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblUser) .addComponent(myUser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18)

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblmyPasswd) .addComponent(myPasswd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblLayer) .addComponent(myLayer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 11, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btn2OK) .addComponent(btn2Cancel)) .addGap(27, 27, 27)) ); pack(); }// private void myHostActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void myPortActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void myDataBaseActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void mySchemaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void myPasswdActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void btn2OKActionPerformed(java.awt.event.ActionEvent evt) { // Si se presiona aceptar, cargar capa, myPath=1 colibri.myPath = 1; colibri.pblDataBase = myDataBase.getText(); colibri.pblDbType = myDbType.getText(); colibri.pblHost = myHost.getText();

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    colibri.pblPasswd = myPasswd.getText(); colibri.pblPort = myPort.getText(); colibri.pblSchema = mySchema.getText(); colibri.pblUser = myUser.getText(); colibri.pblLayer = myLayer.getText(); dispose(); } private void btn2CancelActionPerformed(java.awt.event.ActionEvent evt) { // Si se presiona Cancelar, no hacer nada, myPath=0 colibri.myPath = 0; dispose(); } public final void OnlyChar(JTextField a) { a.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent e) { char c=e.getKeyChar(); if(Character.isDigit(c)) { getToolkit().beep(); e.consume(); } } }); } public final void OnlyNumber(JTextField a) { a.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent e) { char c=e.getKeyChar(); if(!Character.isDigit(c)) { getToolkit().beep(); e.consume(); } } }); }

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ // /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(ParaPostGis.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(ParaPostGis.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(ParaPostGis.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(ParaPostGis.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } // /* Create and display the dialog */ java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { ParaPostGis dialog = new ParaPostGis(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); }

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    }); dialog.setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton btn2Cancel; private javax.swing.JButton btn2OK; private javax.swing.JLabel lblDataBase; private javax.swing.JLabel lblDbType; private javax.swing.JLabel lblHost; private javax.swing.JLabel lblLayer; private javax.swing.JLabel lblPort; private javax.swing.JLabel lblSchema; private javax.swing.JLabel lblUser; private javax.swing.JLabel lblmyPasswd; private javax.swing.JTextField myDataBase; private javax.swing.JTextField myDbType; private javax.swing.JTextField myHost; private javax.swing.JTextField myLayer; private javax.swing.JTextField myPasswd; private javax.swing.JTextField myPort; private javax.swing.JTextField mySchema; private javax.swing.JTextField myUser; // End of variables declaration }

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    Conclusiones

    Geotools como API para desarrollar aplicaciones de manera rpida, acorde al conocimiento

    que de la librera se tenga

    Se siguieron las instrucciones planteadas en el documento gua, con algunas aclaraciones

    como la ubicacin de los fragmentos de cdigo a adicionar en cada paso dentro del cdigo

    principal, url para carga de la librera gt-jdbc-postgis y la declaracin de variable public static

    Para mejorar la usabilidad se adicion un botn para Salir de la aplicacin, validacin de solo

    nmeros para el campo Puerto, uso de metforas en los iconos de los botones adicionados

    (Add Layer, Add Layer from Database y Exit) y finalmente uso de texto de ayuda acorde al

    contexto en los botones para reforzar la funcionalidad proporcionada por cada botn

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    Anexo 1. Archivo pom.xml 4.0.0 colibri.edu.co colibri 1.0-SNAPSHOT jar UTF-8 1.7 1.7 13-SNAPSHOT junit junit 3.8.1 org.geotools gt-swing ${geotools.version} org.geotools gt-shapefile ${geotools.version} org.geotools.jdbc gt-jdbc-postgis ${geotools.version} Maven Repositorio Maven

  • Programacin de interfaces Juan C Soto Orjuela Cod. 20141094025

    Evaluacin y creacin de un geo visor Septiembre 19 de 2014

    http://repo.maven.apache.org/maven2/ Boundlessgeo Repositorio Boundlessgeo http://repo.boundlessgeo.com/main/ true