Blog

gvSIG Mini ganará nuevas funcionalidades en el GSOC 2012

¿Qué es el Google Summer Of Code?

El Google Summer Of Code es una beca que concede Google a estudiantes para que participen en el desarrollo de aplicaciones de software libre, y en este caso me ha tocado a mí Carlos Sánchez por parte de la Universidad de Valencia.  Los alumnos como yo en esta beca tenemos que ser aceptados por un tutor que se encargará de dirigir y puntuar el trabajo que realizamos. Normalmente estos tutores están relacionados con el proyecto o tienen interés en agregar nuevas funcionalidades, motivo por el que se ofrecen para realizar esta tarea. Como no podía ser de otra manera el encargado de tutorizar mi trabajo es Alberto Romeu que se ha encargado desde el inico del proyecto gvSIG Mini por parte de Prodevelop S.L.

gvSIG Mini ya ha evolucionado gracias a esta beca en años anteriores, ya que participa en ella amparado por el proyecto gvSIG dentro de la asociación OSGeo, siendo un año más agraciado con la beca Google Summer of Code 2012, lo que permitirá que avance el proyecto con nuevas funcionalidades mediante el duro trabajo veraniego de alumno y tutor.

Creo yo que es un motivo de celebración para todos los usuarios de este software libre.

¿Qué novedades se piensan desarrollar en gvSIG Mini?

Hasta el verano pasado gvSIG Mini adolecía de soporte para formatos vectoriales y gracias al proyecto del Google Summer of Code 2011 permitió mediante la integración de la librería de gvSIG Desktop GPE, agregar soporte para los formatos KML, GML, GPX, junto con algunas mejoras en la librería algo de aplaudir dado el gran esfuerzo realizado. Sin embargo, uno de los formatos mas habituales en software GIS, los shapefiles, sigue sin estar soportado, esperemos que este verano esto sea cosa del pasado.

Por otro lado, una de las peticiones de la comunidad de usuarios de gvSIG Mini más recurrentes, es la posibilidad de aprovechar el GPS del dispositivo móvil para digitalizar elementos directamente en campo, muy útil también para los aficionados a las mapping parties, como ya lo son muchos fans de OpenStreetMap.

Los elementos más simples que se pretende digitalizar son los puntos, directamente tomando las posiciones del GPS, pero también será posible digitalizar  líneas, para situar carreteras, calles, etc, estableciendo el punto inicial y el final. Estas líneas serán polígonos, cuando se cumpla que este punto inicial y final es el mismo.

No es baladí realizar esta tarea ya que es necesario añadir la posibilidad de capturar y guardar las posiciones del GPS en un formato vectorial conocido. Y como colofón se piensa en la utilidad del formato shapefile para almacenar estos datos, lo cual implica añadir la funcionalidad de lectura y escritura dentro de  gvSIG Mini.

Este formato nos va a permitir abrir los datos recogidos por nosotros con nuestra aplicación gvSIG Mini en cualquier lugar y también compartirlos con otras muchas aplicaciónes GIS con este soporte.

Abstract del proyecto

OpenLayers, thematics and browsers

I'm used to debug my javascript code in Google Chrome as it has cool developer tools and its javascript engine is superb, but today I've broken Google Chrome.

I was writting some javascript code in OpenLayers to automatically generate unique value and range thematic for vector layers fully loaded on the browser. Once the code was running and after a few pans Google Chrome broke, the same code worked on Firefox. At the moment I have no idea what the "bug" is but I've made some (non rigorous) tests on several browsers and these are the results.

My OpenLayers was loading:

120 scaled and rotate SVG graphics
120 polygons
111 lines
1127 thematic points
15 png from a WMS layer

BrowserStart memoryOL load memoryWorked
Chromium 1680 MB320 MBYes
Firefox 11127 MB340 MBYes
Safari 5.122 MB180 MBGraphic errors
Chrome 18140 MB330 MBNo
IE--LOL
Opera 1160 MB200 MBYes

So Opera seems the "best browser in the world" but at the moment I will continue with Chromium

Prodevelop en las jornadas de SIG Libre de Girona 2012

La semana pasada 3 compañeros de Prodevelop (Jorge, Miguel, Carolina) y yo asistimos a las VI Jornadas de SIG Libre celebradas en Girona, de las que Prodevelop era patrocinador oro y en las cuales debíamos presentar 4 ponencias.



En mi caso, se trataba de la primera vez que asistía a las jornadas y la impresión general fue muy positiva. Sí que es cierto que en este evento se hace más hincapié en el cómo se han llevado a cabo los proyectos, cosa que particularmente, me parece más interesante.

Las jornadas se abrieron con 5 sesiones plenarias donde se habló entre otras cosas de aspectos legales del open data, motivaciones para hacer un fork y obviamente de SIG Libre, aunque en mi opinión el gran descubrimiento fue David Cuartielles que fue a hablar de la plataforma de open hardware Arduino de la que es co-fundador. Fue una presentación digna de monologuista, donde captó la atención de todos los asistentes y de la que más de uno salió con ganas de meterle mano a uno de esos cacharros, además de conocer otro tipo de comunidades, en este caso de hardware libre.

En la sesión de la tarde, Miguel y yo, hablamos de OpenGeo Suite como solución para crear geoportales y de las novedades de gvSIG Mini 2. Por su parte, Jorge explicó cómo se hizo el geoportal de turismo de la Comunidad Valenciana y el trabajo que están haciendo desde OSGeo-es en la traducción del OSGeo Live DVD.



De ese día me quedo además con dos ponencias relacionadas con aplicaciones móviles, por una parte la aplicación para Android de ikiMap desarrollada sobre gvSIG Mini y en la que hemos colaborado con Geomati.co y Legendiary una aplicación para acceder a leyendas populares, de la que me gustó la solución por la que habían optado: una aplicación híbrida, con parte nativa y parte en HTML5 + Javascript. Muy a tener en cuenta para futuras aplicaciones.

La jornada de ponencias terminó con una sesión especial en la que se explicó cómo se está llevando a cabo el proceso de importación de datos de Catastro a OpenStreetMap y la problemática asociada. Interesante sobre todo porque últimamente se está generando debate en torno a este tema y de la que pudimos sacar en claro que actualmente ya existe una herramienta que exporta shapes de Catastro a archivos osm de OpenStreetMap y donde la metodología a utilizar va a ser realizar la exportación de pequeños municipios y luego editar y resolver conflictos a mano utilizando alguna herramienta de edición de OSM como JOSM; el trabajo (como no) será llevado a cabo por la propia comunidad.

Mi día terminó con una visita guiada a Girona donde nos explicaron algunas de las Leyendas de Girona a través del casco antiguo.

El viernes Miguel contó los avances en gvSIG dentro del proyecto España Virtual durante la sesión de aplicaciones 3D donde se presentaron extensiones para Geoserver para publicación de datos en 3D utilizando el estándar X3D y para la publicación de capas de realidad aumentada para los principales navegadores (Layar, Wikitude, etc.) Desde iGO Software nos contaron los avances en Glob3 Mobile (al que me gustaría meterle mano) y cómo son capaces de generar una aplicación multiplataforma para Android, iOS y HTML5 a partir del mismo código fuente.

Por último, Jordi Graells cerró las jornadas hablando de su trabajo posicionando en las redes sociales a la administración y emprendiendo desde la propia administración. Otro gran descubrimiento de las jornadas.

En definitiva, unas jornadas muy cargadas de temas interesantes de las que me voy con ganas de trastear con algunas de las cosas de las que se hablaron allí.

Spring I/O Madrid 2012

Spring IOLos días 16 y 17 de febrero asistimos dos personas de Prodevelop a las jornadas de springIO 2012 en Madrid. Unas jornadas con todo lo relacionado al ecosistema Spring, Groovy/Grails y Cloud, evento de referencia en España que ya va por la tercera edición.

De las charlas a las que asistimos destacaríamos:

En una de las primeras charlas Sam Brannen nos comentaba las novedades en Spring 3.1, de las cuales una de las más interesantes es la posibilidad de usar 'profiles' en la definición de beans, permitiendo inicializarlos en función del profile definido (desarrollo, producción etc).

En otra charla David Gómez explicó sobre un proyecto real de control de tráfico marítimo (por un momento parecía que habíamos vuelto a Valencia) el motivo por el cual se tomó la decisión de utilizar noSQL en lugar de una base de datos relacional y su  elección de MongoBD.

Framework de seguridad web HDIV, donde Roberto Velasco nos presentó esta solución de seguridad ligada a la arquitectura de los frameworks web. Entre otras vulnerabilidades, no permite la edición de parámetros o la inclusión de nuevos parámetros. Nos pareció muy interesante la facilidad con la que es posible aumentar la seguridad de una aplicación y su integración con Spring MVC.

Spring Security 3 workshop. En el taller de Fernando Redondo dimos un repaso de todo el proceso de configuración de Spring Security 3 para una sencilla aplicación web de gestión de los expedientes X del FBI :-).

En Spring Roo, alternativa de desarrollo rápido de aplicaciones con Spring, Federico Caro nos mostró como por medio de unas sencillas órdenes en la consola de Roo es posible montar toda una aplicación web Spring-MVC. Muy interesante para fines didácticos al poder comprobar todas las buenas prácticas realizadas en la arquitectura, como decía el 'speaker', el código generado es para imprimirlo y enmarcarlo.

Jose Miguel Samper y Daniel Fernández nos presentaron Thymeleaf Natural Templating. Este motor de plantillas para spring MVC utiliza tags como atributos en los elementos html con lo que no se rompe el html y es posible ser interpretado por los navegadores ya que estos tags son ignorados. Con esto es posible unir diseño y desarrollo en las vistas de las aplicaciones.

 Ya terminadas las charlas una muy buena forma de despedida tanto para los asistentes como los ponentes fue compartir unas cervezas en la cafetería de la universidad.

Nos volvimos con información útil sobre como complementar o vitaminar, (como el título de una charla), los proyectos java que estamos desarrollando actualmente en la empresa. Y con ganas de volver a asistir el año que viene para seguir estando al día con lo que se cuece en el mundo de Spring.

El conjunto que acertó a la pregunta.

Liberado olsocial. Integración de redes sociales en OpenLayers

Acabamos de liberar olsocial, la primera extensión de OpenLayers libre que aporta capas de redes sociales desarrollada por Prodevelop.

Esta librería permite añadir con una sola línea de código datos provenientes de Twitter, Flickr, LastFm, Yelp y muchísimos más a través de POIProxy.

Un par de detalles sobre la implementación. Hemos enviado un parche para corregir la clase OpenLayers.Protocol.Script de OpenLayers para que funcionase con el API de Twitter (ver ticket) y hemos creado un gestor de popups que ha desembocado en un nuevo proyecto OL-FeaturePopups.

El proyecto es perfectamente utilizable en la actualidad pero aún tiene mucho margen de mejora, de forma que no dudes en replicar el código de gitHub y mejorarlo.

Playing around with Leaflet and POIProxy

I've been some time following Leaflet and this weekend I've decided to write some code on it. So as Leaflet has no tiled GeoJSON layer I've coded a layer to load points from POIProxy, draw them over the map and show a popup.



Of course it can be improved, at the moment only loads points at zoom level 16, the layers are exclusive to avoid overload and there are several bugs… but as a proof of concept, it's not bad :P

About Leaflet, I like several things. Its API is simple and lightweight and that's the point, it's incredibly fast on mobile devices. Apart from this, there are several interesting layers such as CartoDB that look promising :)

By the way I've uploaded a POIProxy demo that runs on desktop and mobile :) and the code is at my Github

¡Aventura Oceánica vuelve a la carga!

Kike y José Carlos vuelven a subirse al Bahari para retomar la Aventura Oceánica, tras un año de parón tras partir el mástil poco después de cruzar el cabo de hornos. El sábado pasado salieron de Valparaíso (Chile) hacia la Isla de Pascua. Desde Prodevelop les deseamos toda la suerte para que sigan con su impresionante viaje alrededor del mundo, esta vez en pleno Pacífico.

Aventura Oceánica en 2012-02-01

Puedes seguir su itinerario día a día desde su web gracias a un sencillo desarrollo que llevamos a cabo en Prodevelop hace ya más de dos años utilizando PostgreSQL/PostGIS, Spring y Java Mail en el servidor y Open Layers en la capa de presentación.

Experimental SQLite/Spatialite layer in gvSIG Mobile

Xerial is a SQLite JDBC driver developed by Taro L. Saito. It includes the necessary native libraries to access SQLite databases from a Java application and it also provides a slower pure-Java version of it which extends the number of platforms where this can be used.

I have implemented an experimental vector driver in gvSIG Mobile 0.3 to read/write Spatialite-compatible SQLite databases. Xerial is not aware of the Spatialite requirements, but it's very easy to create the right tables and fields so that other applications can recognize the resulting SQLite file as a Spatialite DB.

This short video shows the result. The steps shown are:

  1. Open a shapefile in gvSIG Mobile.
  2. Export the layer to SQLite.
  3. Open the resulting SQLite DB as a new layer.
  4. Add a polygon to the layer and save it.
  5. Use ogr2ogr to export the resulting SQLite DB to SHP. This proves that everything was OK and our file is recognized as a Spatialite DB.
  6. Open the new shapefile in gvSIG Mobile to see the changes again.

Rendering local shapefiles with HTML5

Thanks to Tom Carden's javascript functions from his shapefile-js project and the new HTML5 local file access API, it is very easy to load and render any shapefile stored in the client's device.

You can test it here.

If you don't have a shapefile close at hand, get one of these: [China], [Europe], [South America], [United States].

Comments:

  • I have only tested it on Windows 7 + Google Chrome v. 15.x and Mozilla Firefox 8. I'm curious to see if it works on smartphones.
  • Choose a line or polygon SHP file (not a very big one).

Esta es la idea: establecer área de interés arbitraria sin perder velocidad

En este ejemplo en desarrollo se trata de una tabla Oracle Spatial en la que hemos filtrado el área de interés señalada "a mano alzada" por el usuario:

Distribuir contenido