[Gvsig_usuarios] Integración gvSIG con CartoDB

Jorge Gaspar Sanz Salinas jsanz en gvsig.com
Mie Dic 4 09:18:45 CET 2013


El 03/12/13 11:02, rlopez escribió:
> Queridos amig en s,
>
> Soy nuevo por aquí, he localizado este foro y me ha parecido muy interesante
> ya que tengo entre manos un proyecto de final de master sobre GIS.
>
> Os cuento a ver si podéis echarme un cable. He de integrar gvSIG con
> CartoDB, concretamente del siguiente modo. Os copio enunciado:
>
> "
> Se pretende desarrollar una herramienta que permita acceder a CartoDB desde
> el SIG de escritorio gvSIG, una de las aplicaciones SIG de código abierto
> más difundidas en la actualidad. Partiendo de un archivo gvp (archivo de
> proyecto de gvSIG) la herramienta desarrollada debe permitir:
> - Subir la información cargada en el archivo gvp a CartoDB, siempre que sea
> compatible con este plataforma.
> - Simbolizar o tematizar la información geográfica subida, de forma similar
> a la simbolización o tematización aplicada en archivo de proyecto gvp.
> Además, será necesario abordar la resolución de algunas limitaciones en
> CartoDB identificadas en estudios previos que suponen un freno a la
> automatización total del proceso (Fernández, 2013).
> Para realizar este desarrollo se utilizarán las opciones de personalización
> de gvSIG en su versión 2.
> "
>
> Sinceramente ando algo perdido, ya que me estoy iniciando en el tema, por lo
> que agradecería cualquier tipo de comentario o consejo, manuales... pero
> sobre todo de cara a la integración de ambas plataformas...
>
> Por lo pronto, se me ocurren dos vías para atajar el problema:
>
> 1) Programar en Java descargando el código de gvSIG, para implementar la
> herramienta.
>
> 2) Programar en python desde la consola de gvSIG. La idea es programar un
> script para manejar objetos y tratar de exportarlos a cartoDB mediante la
> API SQL.
>
> Entiendo que la segunda opción es mas viable, lo que no sé si desde la
> consola voy a conseguir acceder a todos los objetos necesarios, y a priori
> tampoco sabría como hacerlo...
>
> En cualquier caso, y como os he comentado, agradezco cualquier comentario o
> consejo :)
>
> Un millón de gracias y saludos cordiales.
>

Tiene buena pinta el proyecto.

Iterar sobre las features de una capa y construir la petición HTTP que
hace la inserción en una tabla de cartoDB parece algo que con scripting
deberías de poder hacer sin demasiado código aunque seguramente sería
bastante lento. Eso si se trata de una tabla que ya existe porque otra
opción sería mirar cómo se suben shapefiles para crear la tabla de
golpe, que seguramente será mucho más eficiente y rápido. Es decir
exportas tu capa vectorial a un shapefile, lo comprimes y lo subes
directamente.

Idealmente (con tiempo y bastantes conocimientos de gvSIG) se podría
construir un driver entero en Java, que conectara con tu cuenta en
cartoDB y se bajara el contenido de la tabla completo o aplicando un
filtro. Sería clavado a cómo funciona la extensión de base de datos. De
hecho se debería hasta poder habilitar incluso la edición ya que una vez
finalizada la sesión de edición se podrían invocar todas las operaciones
de inserción, modificación y borrado como peticiones HTTP independientes
(no sé si se podría hacer en una única petición).

Igualmente un plugin Java para subir una capa nueva a cartoDB tendría
que seguir el patrón de las extensiones de exportación a PostGIS,
Oracle, etc que ya hay en gvSIG, solo tendrías que implementar la parte
final de subida de los recursos a cartoDB como comentaba antes.

Tienen por cierto un par de proyectitos de ejemplo de cómo interactuar
con cartoDB en python y java, son un buen punto de partida aunque
parecen orientados a peticiones individuales, lo de subir datos de golpe
igual lo tienes que hablar con ellos para que te cuenten si hay algún
punto de acceso en la API para publicar.

Para el tema de la simbología lo vas a tener más complicado ya que
tendrás que programar una conversión de la simbología de gvSIG a carto
(el sistema parecido a CSS que genera estilos para Mapnik). De todas
formas me parece que no tienen api para interactuar con la simbología
así que como mucho podrías ofrecer esa conversión en un texto para que
el usuario la pegara en su interfaz web, no sé si ganas mucho.

Si avanzas en este tema (que parece que de una forma u otra tienes que
hacerlo) coméntalo por aquí y usa también los foros de cartoDB, si
llegas a algo usable les(nos) vas a dar una buena sorpresa :-)

Suerte


-- 
Jorge Gaspar Sanz Salinas
gvSIG Team at Prodevelop
http://www.gvsig.org
http://www.gvsig.com



Más información sobre la lista de distribución gvSIG_usuarios