[Gvsig_usuarios] Integración gvSIG con CartoDB

Joaquin del Cerro jjdelcerro.gvsig en gmail.com
Mie Dic 4 12:39:34 CET 2013


El 04/12/13 09:56, Jorge Gaspar Sanz Salinas escribió:
> El 04/12/13 09:18, Jorge Gaspar Sanz Salinas escribió:
>> 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
>>
>>
> 
> Yepa, me acaban de apuntar a esta entrada de blog en la que comentan que
> hay una API para importar ficheros. Aquí hay una entrada de blog[1] que
> apunta a un script en bash enseña cómo usar ese api. Básicamente tienen
> dos puntos de acceso, uno para arrancar la petición y otro para ver el
> estado.
> 
> [1] http://blog.cartodb.com/post/54101913823/got-files-weve-got-a-import-api
> [2] https://gist.github.com/andrewxhill/5884845
> 
> 

Una de cosita...
En el enunciado que has pasado hay una incongruencia...
habla de "gvp (archivo de proyecto de gvSIG)" y de scripting
y la 2. Los ficheros de proyecto de la 2 son "gvproj" los "gvp"
son de la 1. Deberias tener claro sobre que version has de
desarrolarlo no vaya a ser que luego no te valga.

Tanto en la 1 como en la 2 hay scripting y se podria realizar
con el, pero el scripting de la 1 es muy primitivo, y de hecho
dudo que la gente sepa que existe.

Aclarado esto...
Molaria que lo hicieses para la 2.1, un proveedor de datos
nuevo estaria genial, pero si se escapa a lo que quieres hacer,
solo desde scripting podrias hacer herramientas para exportar
a cartodb.

En ninguno de los dos casos necesitarias recompilar gvSIG.

Para hacer un proveedor nuevo precisarias:
- Conocimientos de Java y eclipse
- Minimos conocimientos de maven.

Yo empezaria por crear un plugin simple, basado en el ejemplo
del visor y ya sobre el se añade el resto. Para generar un proveedor
de datos nuevos precisas saber como montar un plugin, asi que
aunque pueda parecer tonto hay que empezar por ahi.

Para hacer algunas herramientas de exportacion desde scripting
necesitarias saber python/jython.

Para ambos casos, no te cortes y pregunta.

Un saludo
Joaquin

> 
> 
> 
> 
> _______________________________________________
> gvSIG_usuarios mailing list
> gvSIG_usuarios en listserv.gva.es
> 
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:
> 
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios


-- 
--------------------------------------
Joaquin Jose del Cerro
Development and software arquitecture manager.
jjdelcerro en gvsig.com
gvSIG Association
www.gvsig.com
www.gvsig.org


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