Documento Técnico
Documento Técnico
Documento Técnico
1. Libraries usadas.
Las libraries son un paquete de clases hechos por la corporacion JAVA que sirven para facilitar el
manejo del software, además de la inplementacion y creacion de programas. JDk es un paquete
que contiene estos elementos y permite el desarrollo de un programa, ya que estas clases que
se ejecutan y utilizan ya fueron creadas para simplificar las tareas del usuario. Las librerías que
utilizamos comúnmente se les denominan biblioteca estándar de java.
Las librerías que fueron usadas para este proyecto son las siguientes:
ActionEven: Activa en evento del botón para que al ser pulsado se ingrese a una determinada
accion.
b. java.io.File: Provee para la entrada y salida del sistema a través de los datos enviándonos al
sistema de archivos.
c. java.io.IOException: Este es similar al anterior, pero crea una excepción cuando existen
elementos ingresados por el usuario que no son correctos.
i. org.geotools.data.FileDataStore:
j. org.geotools.data.FileDataStoreFinder;
k. org.geotools.data.simple.SimpleFeatureSource;
l. org.geotools.map.DefaultMapContext;
m. org.geotools.map.MapContext
n. org.geotools.swing.JMapFrame
b. Se declaran los arreglos los cuales son conjunto de objetos de la misma clase.
El primero de ellos contera los objetos pertenecientes a las capas existentes debido a que el array
es un objeto nos permite almacenar elementos dinámicos podemos darle la dimensión de
deseemos, posterior mente se declarara la clase arraylist en la cual especificamos el tipo de datos
que contendrá.
static String Array[] = new String[5];//arreglos para el numero de shp que tenemos
d. Este metodo sirve para adicionar por medio del JFrame un ventana en la cual se
introducirán botones, en nuestro caso JMapFrame servirá para contener mapas que
podrán ser cargados por el usuario.
f. Se declara el método main a partir del atributo public static, donde void nos está
indicando que no retorna ningún valor y String args definirá los argunetos que recibe este
método, dentro del main se ejecutara la parte principal y mas significativa del código.
JMenuBar menuBar;
i. Este componente se crea para poder acceder a la barra de menú al complemento archivo
permitiendo así un acceso más fácil y organizado.
j. El J menuItem funciona para que al ser pulsado genere un evento el cual abre una
ventana y pide los datos de dicho evento, este elemento es muy útil para acceder a las
acciones del programa de una forma rápida desde la venta inicial del programa.
menuBar.add(menuArchivo);
menuBar.add(menuAyuda);
m. En este paso se crean los ítems que se van a usar para el menú y se asocian al evento de
escucha (Listener)
adicionarItem.addActionListener(listAdicionar);
borrarTodasItem.addActionListener(listEliminar);
exportarItem.addActionListener(listExport);
salirItem.addActionListener(listSalir);
menuArchivo.add(adicionarItem);
menuArchivo.add(borrarTodasItem);
menuArchivo.add(exportarItem);
menuArchivo.add(salirItem);
ñ. Se crean los items del menu Ayuda el cual contendrá un objeto que se denomina AcercaDe
acercaDeItem.addActionListener(listAyuda);
menuAyuda.add(acercaDeItem);
r. Se crea la ventana en la cual se visualizara toda la aplicación solo abra una ventana de
este tipo, además se dimensiona el tamaño que tendrá la venta por medio de la función
setsize. También se utilizan métodos como setJMenuBar que recoge la acción que realice
el usuario y enable nos permite en enlace a una barra de herramientas
mapFrame.setJMenuBar(menuBar);
mapFrame.enableToolBar(true);
mapFrame.enableStatusBar(true);
mapFrame.enableLayerTable(true);
mapFrame.setSize(1200, 700);
mapFrame.setVisible(true);
s. Creamos los botones que estaran en la barra de herramientas para un acceso mas rapido
y les asignamos una imagen acadauno
adicionarJB.setToolTipText("Adicionar capas");
t. A los botones creados se le se les asocia el evento de escucha que por medio de la
pulsación del mouse sobre el nos ingresara a la opción deseada.
adicionarJB.addActionListener(listAdicionar);
removerJB.addActionListener(listEliminar);
consultarJB.addActionListener(listConsultar);
exportarJB.addActionListener(listExport);
toolBar.addSeparator();
toolBar.add(adicionarJB);
toolBar.add(removerJB);
toolBar.add(consultarJB);
toolBar.add(exportarJB);
v. La siguiente linea hace que la imagen que se utilize este protegida y estatica , se indica la
dirección donde se encuentra almacenada dicha imagen y se hace un condicional donde
se especifica que la imagen debe estar en ese archivo.
if (imgURL != null) {
} else {
return null
w. En esta clase se crea el metodo para el boton exportar y se llama a la accion de escucha
SE abre un fichero por medio de la opción JFileChooser este nos muestra los archivos que
contiene por medio de métodos útiles que permiten esta acción. Postriormete recoge los
archivos que se encuentran dentro del fichero, elimina la opción que permite escoger
cualquier tipo de archivo.
Abre la ventana de dialogo y muestra cada layer existente en el fichero como lo vemos en
la imagen.
int contador = 0;
File[] file;
chooser.setMultiSelectionEnabled(true);
chooser.setFileFilter(filtro);
chooser.setAcceptAllFileFilterUsed(false);
chooser.showOpenDialog(mapFrame);
if (chooser.showOpenDialog(mapFrame) == JFileChooser.APPROVE_OPTION) {
file = chooser.getSelectedFiles();
try {
nombresCapas.add(file[i].getName());
map.addLayer(featureSource, colores.createPolygonStyle());
Array[contador] = String.valueOf(featureSource.getName());
System.out.println(featureSource.getName());
map.removeLayer(map.getLayer(0));
}}}
consulta.setVisible(true);
consulta.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}}
System.exit(0);
}}
acercaDe.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
acercaDe.setVisible(true);
http://commons.apache.org/jexl/apidocs/org/apache/commons/jexl2/MapContext.html
http://udig.refractions.net/files/docs/api-geotools/org/geotools/map/MapContext.html
http://users.dcc.uchile.cl/~lmateu/Java/Apuntes/hello.htm
http://docs.geotools.org/latest/userguide/tutorial/filter/query.html#connect-to-datastore
http://download.osgeo.org/mapserver/docs/msdocs/build/html/ogc/mapcontext.html
http://www.chuidiang.com/java/novatos/JFrame_JDialog.php
http://download.java.net/jdk8/docs/api/javax/swing/filechooser/FileNameExtensionFilter.html
http://artemisa.unicauca.edu.co/~dparedes/java/ui/swingcomponents/filechooser.html
http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=551:que
-es-y-para-que-sirve-el-api-de-java-librerias-en-la-biblioteca-estandar-cu00645b&catid=68:curso-
aprender-programacion-java-desde-cero&Itemid=188
http://docs.oracle.com/javase/6/docs/api/
http://javiergarbedo.es/index.php/31-arrays/130-arraylist