Archivo de la etiqueta: georss

Actualizando la extensión para geoRSS de gvSIG


Hace ya más deun año desde la última vez que le dediqué algo de tiempo a laextensión y tenía algunos errores y cosas que quería tocar. Por un ladohace ya algún tiempo salióen las listas de gvSIG el tema del bloqueo activo que Googlerealiza en Cuba cumpliendo las leyes del embargo. Esto fue bastantecriticado y en ese momento, como SEXTANTE, ya meplateé que el servicio era bueno pero no se justificaba si había otrasopciones.

Un compañero de gvSIG me comentó que JavaHispanotenía una forja,así que me puse manos a la obra y efectivamente, aunque con algunosproblemas al principio, pude migrar el código a un nuevoproyecto en la forja de JavaHispano y ahí quedó la cosa.Durante ese tiempo salió OSOR,una forja también de proyectos libres que creo que se queda grande paralo que yo tengo entre manos, aunque me comentaron que si seguía con elproyecto podría usar sus infraestructuras. No creo que cambie, si todova bien, JavaHispano funciona, no muy rápido pero suficiente y tienemucho más de lo que necesito.

En fin, nada que ayer le dediqué unas horas a conseguir que laextensión funcione correctamente sobre gvSIG 1.1.2 (dejo para másadelante la adaptación a gvSIG 2.0) y ya la tenéis disponible en el catálogode extensiones de gvSIG y en la páginade la forja.

Por otro lado he intentado sin éxito integrar la ventana deinformación de geoRSS en la herramienta y el diálogo de gvSIG. La razónprincipal es que me obliga a llevar al ámbito de gvSIG (a su carpeta com.iver.cit.gvsig/lib)partes de la extensión que no deberían estar ahí. Esto es por un temabastante peliagudo y que se está resolviendo. SEXTANTE también losufre, a ver si se soluciona (con un trabajo duro, no sale porgeneración espontánea, creedme que lo sé) y tenemos un gvSIG aún másmodular y extensible.

Otra cosa que he hecho y que me tenía un poco mosqueado desdehace tiempo es el tema de la documentación. Está hecha con DocBook pero noconseguía organizarlo de forma sencilla para que cualquiera pudieracompilarla (aunque dudo mucho que nadie vaya a hacerlo). Finalmente ygracias a un trabajo del equipo de Apache Velocityllamado DocBookFramework, he conseguido que sólo haya que descargar el frameworky si lo pones en el mismo workspace que tuproyecto funciona a la primera ya que tiene todos los componentes. La documentaciónes la misma, pero la forma de montarla es muchísimo más sencilla.

Cosas por mejorar: pues las mismas de antes, mejores javadocs,la documentación técnica del bicho (tampo esto es una obra de laingeniería del software francamente, cualquiera que le pegue un poco agvSIG lo comprenderá fácilmente) y tal vez un poco más de cariñoen las Interfaces de Usuario.

Dejo unas capturas de pantalla: una de la extensiónfuncionando con el RSSinternacional del periódico ElPaís (previo paso por geonames, la extensión se encarga, tusabes) y del geoRSSde las fotos con la etiqueta colorful de flickr (el geoRSS se puede ver abajo del todo de la página, junto alKML) y otras dos con ejemplos de información de una noticia de cadauno, pinchando en la imagen se puede ir a la noticia real. He dereconocer que la sección Internacional del País es para no leerla, quelo más suave que haya encontrado (sin muertos y esas cosas)sea de Sarah Palin…

gvSIG con dos orígenes geoRSS

Noticia geoRSS del País

Noticia geoRSS de flickr colorful

Más de geoRSS


Pues sí, para volver de vacaciones, algo ligerito.

A partir de ahora las noticias de http://geomaticblog.net se distribuyen en formato geoRSS. Eso significa varias cosas. La primera es que el feed de noticias puede consumirse por cualquier cliente que acepte este formato, como por ejemplo:

Ahora solo resta que los redactores vayamos publicando las noticias con su correspondiente localización, de momento he geolocalizado tres noticias anterioriores (y esta) para que la cosa pueda funcionar.

En cualquier caso, se localizarán las noticias que tengan sentido claro, porque una noticia sobre un estándar o una nueva aplicación, difícilmente se pueden asignar a una ubicación geográfica, aunque se puede aplicar imaginación….

geoRSS en gvSIG (2a parte)


Bueno, ya han pasado unas semanas desde que publicamos laprimera versión del plugin para gvSIGpara poder ver capas geoRSS.

Algo de trabajo he hecho y ya va siendo hora de publicarlo,aunque (como no) queda mucho por hacer, pero como rezan loscánones del softwarelibre, hay que publicar a menudo, aunque haya pocos avances. Pero no esel caso, porque creo que esta versión es bastante usable yañade bastantes funcionalidades.

Además, para hacer pruebas con el sistema dedocumentación técnica DocBook (y porque es imprescindible documentar, claro) he escrito unpequeño manualde usuario y en un futuro algo de documentacióntécnica sobre este pequeño proyecto.

Por cierto, ya que que Alejando en la Cartoteca ha estado haciendo experimentos con geoRSS y Flickr, le invitamos desde aquí a que los continúe con gvSIG, que puede dar bastante juego Guiño.

geoRSS en gvSIG

Para no aburrir las características principales delplugin:

  • Acepta orígenes RSS y Atom
  • Acepta noticias geocodificadas con puntos en el estándar geoRSS
  • Permite ver en gvSIG el contenido de la noticia RSS y proporciona el enlace a la noticia completa (abriéndose el navegador web).
  • Las capas se pueden almacenar en el proyecto, al abrirse de nuevo recuperará las noticias actuales.
  • Se pueden recargar las noticias en cualquier momento (me acabo de dar cuetna de que esto no está en la doc de usuario, cachis).

Cosas que no van bien

  • Por alguna extraña razón, cuando te acercas mucho las geometrías no se pintan en pantalla.
  • Al guardar da un error con respecto a las tablas, pero la operación termina correctamente
  • Seguro que hay muchas más pero no lo he probado a fondo, a fin de cuentas esto es por amor al arte y para apreder Guiño.

Cosas que se podrían mejorar

  • Como no, los javadocs… eso da una pereza terrible pero hay que hacerlo SIEMPRE y BIEN.
  • El diálogo de añadir capa debería integrarse con gvSIG
  • El botón de información por punto debería integrarse con el de gvSIG
  • Podrían marcarse con un tono más saturado los items visitados, al estilo de los visores de RSS
  • Podría hacerse un temático con lasnoticias más viejas y las más nuevas
  • En general, se podría trabajar más con la capa para ofrecer una funcionalidad más parecida a la de un lector de RSS, ya que actualmente la capa es simplemente un tema de puntos en memoria sin persistencia de ningún tipo.

Finalmente, los ficheros de distribución:

  • Binarios (las instrucciones de instalación están en la documentación)
  • Fuentes (el proyecto de Eclipse)
  • Documentación (proyecto Eclipse con los fuentes DocBook y la tarea Ant que genera todo) cuidado porque hay referencias que no se podrán cumplir al faltar los recursos (DTD, XSL, etc) que están fuera del proyecto. Si alguien está interesado en esta parte puedo más adelante contar como funciona.

Lo siguiente en lo que me gustaría meterme (cuando vuelva de las vacaciones) es integrar la documentación de usuario DENTRO de gvSIG, ya que me parece IMPRESCINDIBLE que un buen software tenga una ayuda en línea, ni siquiera apuntando a un sitio web (o al menos no sólo) sino que debe estar descargada en la máquina. A ver qué sale, iremos informando.

Bueno, con esto cierro este proyecto de momento,. Espero queos sea útil como usuarios y a alguno como desarrollador.

geoRSS en gvSIG


Hace algún tiempo, vi en el blog de Meneamequepublicaban sus noticias añadiendo informaciónsobre la localización de las noticias gracias alestándar geoRSS.Automáticamente (esdeformación profesional) pensé queestaría bien poder presentar en gvSIG las noticiascomo side una capa más se tratara. De hecho ya lo habíapensado antes para las fotos de Panoramio(para el quetambién hay un APIque permite estas cosas) pero en sumomento me dio algo de pereza.

Pero esta vez, se dieron los condicionantes, a saber:

  • Un curso sobre desarrollo con Software Libre que realicé hace poco: los comienzos
  • En verano resido en un chalet: no hay Internet
  • Jornada intensiva en el trabajo: tardes libres
  • Tampoco hay televisión: mi padre ve el «tomate» y «betty la fea».
  • Alternancia entre piscina y nuevo libro de Harry Potter: un poco de programación no hace daño a nadie ¿no?

Así que nada, manos a la obra.


Objetivos

  • Crear un nuevo origen de datos en gvSIG: un canal geoRSS
  • Poder fácilmente añadir dicho recurso a gvSIG como una capa vectorial (¿tal vez especializando alguna clase existente?)
  • Profundizar en la metodología de configuración de proyectos de desarrollo sobre gvSIG, para conseguir la forma más sencilla y rápida de empezar a programar (luego diré el por qué de esto).
  • Probar bibliotecas que no conocía para evaluarlas (renderizado de HTML, parseo de documentos XML).
  • Probar sistemas de documentación de código (Doxygen).
  • Probar sistemas de documentación técnica (Docbook).
  • Aprender más sobre la arquitectura de gvSIG, y si puede ser divertirse programando.

En fin, muchas cosas, algunas conseguidas y otras no.

Estado actual

¿Que tengo hecho? Pues más o menos hayuna versión funcional del plugin con lo siguiente:

  • Un conjunto de clases que modelan un origen de datos geoRSS utilizando como parser XML la biblioteca JDOM.
  • Una especialización de la clase MemoryDriver que recibe como origen un objeto de las clases anteriores.
  • Una interfaz para presentar una noticia RSS, utilizando una plantilla HTML configurable. Esta interfaz lanza todos los enlaces al navegador del usuario.
  • Para probar esto, un botón que carga las noticias de Meneame.net.

geoRSSLayer 01

Cosas que quiero terminar

Estas son las cosas que seguro voy a terminar porque creo quevale la pena dejar algo a mi entender redondo. Como esto essólo un prototipo que he realizado por mi cuenta (y gratis)pues no creo que siga trabajando mucho más en el proyecto.Eso no quiere decir que como software que selicencia bajo la GPL,cualquiera pueda continuar el trabajo para mejorarlo o adaptarlo a loque le dé la gana.

En orden de prioridad, tengo estas tareas autoimpuestas:

  • Una ventana con información sobre el canal RSS
  • Un nuevo botón para añadir un geoRSS cualquiera (ahora se podría hacer cambiando la url del fichero text.properties).
  • Revisar los javadocs para no dejar nada importante sin comentar
  • Tal vez en la funcionalidad de obtener información de la noticia podría hacer que saliera el título de la noticia en el tooltip del ratón o en la barra de estado.
  • Implementar los métodos que permiten que se pueda guardar la capa (actualmente no se guarda).

Seguro que quedará con montones de bugs y cosas porhacer pero ya digo, esto lo he planteado como unprototipo paraaprender un poco más de ciertas áreas de gvSIGque quería explorar, así que si alguien se animay quiere contribuir, es bienvenido.

Algunas consideraciones finales

  • A ver si tenemos pronto una infraestructura para que la comunidad gvSIG aporte este tipo de trabajos, más o menos profesionales, pero siempre bienvenidos, tanto plugins escritos en Java como para los distintos lenguajes de scripting que gvSIG soporta. Yo de momento me he apañado con un repositorio SVN aportado por el proyecto KnowledgeForge.
  • Queda pendiente por mi parte, si lo consigo, encontrar una metodología de configuración para no tener que compilar TODO GVSIG antes de empezar a desarrollar. No es tan complicado, y seguro que alguno de los que lean esto saben cómo hacerlo, pero creo que se puede facilitar bastante más la tarea de empezar a programar en gvSIG a la gente recién llegada.
  • Sobre las experiencias en el desarrollo y tal, pues contaré algo en función de las ganas y el feedback que haya. Yo ya he aprendido, así que lo escriba aquí ya es por puro altruismo bloguero.
  • En cuanto al plugin…, si habéis llegado hasta aquí merecéis probarlo :D, estos son los pasos a seguir:
    1. descomprime este zip en tu carpeta extensiones de gvSIG
    2. activa una vista en 4326
    3. cuenta por aquí tus impresiones
    4. Si te atreves o tienes curiosidad, aquí están los fuentes a fecha de hoy
  • Uis, casi se me olvida, esto va sobre gvSIG 1.1rc1 y java 1.5 Avergonzado