Taller para desarrolladores III Jornadas gvsig Francisco José Peñarrubia fpenarru@gmail.com Victor Olaya volaya@unex.es César Martínez Izquierdo volaya@unex.es
Indice Introducción Arquitectura interna Proyectos básicos. Core de gvsig Configurar un workspace de trabajo con Eclipse Andami y el mecanismo de plugin Ejemplos de extensiones Hola Mundo Información personalizada Implementar un driver
Indice Otros plugins SEXTANTE Qué es SEXTANTE Configurar un workspace de trabajo con Eclipse + SEXTANTE La arquitectura extensión-algoritmo Estructura base de una extensión de análisis Ejemplos de extensiones con componentes raster y vectorial.
Introducción Aplicación de escritorio Proyecto escalable desde sus orígenes. Muchas librerías útiles por separado Licencia GPL Entorno de desarrollo usado: Eclipse 3.2 Máquina virtual: 1.5 + JAI Extensiones JNI para otras librerías en C++ Documentación para desarrolladores escasa... por ahora.
Arquitectura Interna gvsig PLUGINS LIBRERÍAS Workbench ANDAMI gvsig 3D DEM FMap Cresques JTS Geotools Batik ermapper, Castor, JEP, Log4java and Others
Arquitectura Interna
Proyectos básicos _fwandami libcoreplugin libfmap libgdbms appgvsig libcq CMS for Java extcad ExtJDBC Otros: libdwg, libiverutiles, libui, binaries libremoteservices...
Configurar un workspace de trabajo Descargamos el código fuente de http://www.gvsig.org Lo descomprimimos en un directorio cualquiera En Eclipse ejecutamos File => Switch Workspace (cambiar de workspace) En el diálogo que aparece seleccionamos el directorio en el que acabamos de descomprimir las fuentes
Configurar un workspace de trabajo gvsig está compuesto de muchos proyectos (librerías propias) Para compilar gvsig hay que compilar todos los proyectos que lo componen Eclipse realiza la compilación (generación de los.class) automáticamente, después debemos ejecutar el fichero build.xml de cada proyecto, que crea los ficheros.jar y los copia al directorio adecuado El orden de compilación no es indiferente, ya que unos proyectos necesitan de otros Para evitar este proceso, existe un método automático
Compilación de gvsig (automática)
Compilación de gvsig (automática)
Ejecución de gvsig
Depuración Ejecución un poco especial Sirve para entender mejor el programa, o para encontrar errores Permite poner puntos de parada en el código, y hacer ejecuciones paso a paso De esta forma se pueden ver o alterar los resultados intermedios
Navegación por el código. Teclas rápidas (I) F3 nos lleva a la definición de un método o clase CTRL+MAY+O nos añade imports faltantes F4 nos muetra la jerarquía de herencias de una clase CTRL+I indenta la(s) línea(s) automáticamente
Navegación por el código. Teclas rápidas (II) En modo depuración: F6 avanza una línea F5 avanza una línea entrando dentro de la próxima función a ejecutar F7 avanza hasta el punto en el que se ha llamado a la función actual CTRL+MAY+I evalúa la expresión seleccionada y muetra el resultado
M o d e lo d e O b je to s (A n d a m i) A n d a m i: F ra m e w o rk q u e p e rm ite la c o n s tru c c ió n d e a p lic a c io n e s M D I e x te n s ib le s a b a s e d e u n m e c a n is m o d e p lu g in s C la s e s m á s im p o rta n te s : L a u n c h e r = > A rra n c a la a p lic a c ió n e in ic ia liz a to d o s lo s p lu g in s P lu g in S e rv ic e s = > C la s e b a s e p a ra o b te n e r to d o s lo s s e rv ic io s o fe rta d o s a lo s p lu g in s p lu g in s. T ie n e m é to d o s p a ra o b te n e r M a in F ra m e, M D IM a n a g e r, tra d u c ir c a d e n a s, e je c u ta r ta re a s e n s e g u n d o p la n o, re c u p e ra r in s ta n c ia s d e o tra s e x te n s io n e s, e tc. IE x te n s io n = > In te rfa c e q u e d e b e n im p le m e n ta r to d o s lo s p lu g in s. E s la b a s e s o b re la q u e s e a ñ a d e n m e n u s, b o to n e s, h e rra m ie n ta s, y /o n u e v a s fu n c io n a lid a d e s.. IA n d a m iv ie w = > C a d a v e n ta n a a ñ a d id a a l fra m e w o rk d e b e im p le m e n ta r e s te in te rfa c e. D e fin e c ó m o s e m o s tra rá e s a v e n ta n a. (M o d a l, re s iz a b le, ic o n ifia b le, e tc ). L a s e x te n s io n e s s e c o n tro la n d e s d e e l fic h e ro c o n fig.x m l. E l e s q u e m a d e e s te fic h e ro s e d e fin e e n e l a rc h iv o p lu g in -c o n fig.x s d.
M o d e lo d e O b je to s (F M a p ) C la s e s m á s im p o rta n te s : M a p C o n te x t = > C o n tie n e to d a s la s c a p a s e in fo rm a c ió n a c e rc a d e la p ro y e c c ió n, v ie w p o rt, e tc. D ib u ja, im p rim e y m a n e ja a lg u n o s e v e n to s. M a p C o n tro l = > C o m p o n e n te q u e s a b e c ó m o p in ta r (e n u n trh e a d a p a rte ) u n a in s ta n c ia d e M a p C o n te x t. E s tá m u y re la c io n a d o ta m b ié n c o n lo s to o ls. V ie w P o rt = > M a n tie n e in fo rm a c ió n a c e rc a d e la s tra n s fo rm a c io n e s a h a c e r (A fin e s o n o t. G e n e ra lo s e v e n to s d e c á m b io d e e x te n t v is ib le. F L a y e rs = > C o lle c c ió n d e c a p a s. P u e d e s e r je rá rq u ic a. P a c k a g e s : C o re = > In te rfa c e s b á s ic o s c o m o IF e a tu re e Ig e o m e try + a lg u n a s im p le m e n ta c io n e s L a y e rs = > T o d o tip o d e c a p a s (ra s te r, v e c to ria l, w m s...) D riv e rs = > L o s s is te m a s le c to re s d e d a to s. R e n d e rin g = > L e y e n d a s y s im b o lo g í a S tra te g ie s = > S e d e fin e n la s o p e ra c io n e s q u e s e v a n a h a c e r c o n lo s d a to s. T o o ls = > B e h a v io rs, to o ls y s u s e v e n to s.
M o d e lo d e O b je to s (g v S IG ) g v S IG : P lu g in q u e c o n v ie rte a A n d a m i e n u n c lie n te G IS. U s a F M a p c o m o lib re ría p rin c ip a l. L a m a y o ría d e la s c la s e s a q u í te n d rá n q u e v e r c o n e l G U I (in te rfa c e d e u s u a rio ). C la s e s m á s im p o rta n te s : L a s q u e e s tá n e n e l p a c k a g e c o m.iv e r.c it.g v s ig. S o n la s e x te n s io n s a a n d a m i, la s c la s e s q u e im p le m e n ta n IE x te n s io n y a p a re c e n e n e l fic h e ro c o n fig.x m l. A lg u n o s e je m p lo s :: A d d L a y e r: A b re u n d iá lo g o q u e p e rm ite a ñ a d ir c a p a s (b a s a d a s e n fic h e ro, w m s, e tc ) V ie w C o n tro ls : D e fin e b o to n e s c o m o (z o o m, p a n, in fo, s e le c t, e tc. L a y o u tc o n tro ls : L a m a y o ría d e lo s b o to n e s y h e rra m ie n ta s re la c io n a d a s c o n e l L a y o u t. P ro je c te x te n s io n : M a n e ja e l p ro y e c to, y e s e l p u n to d e e n tra d a p a ra e l re s to d e d o c u m e n to s (V ie w, T a b le s a n d L a y o u ts ). O tra s c la s e s in te re s a n te s : V ie w, T O C, F le g e n d M a n a g e rw in d o w, T a b le y L a y o u t
L ib ra rí a s U s a d a s J T S (J a v a T o p o lo g y S u ite ) G e o to o ls 2 L o g 4 ja v a B a tik C a s to r E rm a p p e r M rs ID G D B M S
E je m p lo s H o la M u n d o In fo rm a c ió n p e rs o n a liz a d a
Contacto http://www.gvsig.gva.es http://www.sextantegis.com/ Víctor Olaya (volaya@unex.es) Fco. José Peñarrubia (fpenarru@gmail.com) César Martínez Izquierdo (cesar.martinez@iver.es)