<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">El 04/12/13 09:18, Jorge Gaspar Sanz
Salinas escribió:<br>
</div>
<blockquote cite="mid:529EE565.2000500@gvsig.com" type="cite">
<pre wrap="">El 03/12/13 11:02, rlopez escribió:
</pre>
<blockquote type="cite">
<pre wrap="">Queridos amig@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.
</pre>
</blockquote>
<pre wrap="">
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
</pre>
</blockquote>
<br>
<tt>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.<br>
<br>
[1]
<a class="moz-txt-link-freetext" href="http://blog.cartodb.com/post/54101913823/got-files-weve-got-a-import-api">http://blog.cartodb.com/post/54101913823/got-files-weve-got-a-import-api</a><br>
[2] </tt><a class="moz-txt-link-freetext" href="https://gist.github.com/andrewxhill/5884845">https://gist.github.com/andrewxhill/5884845</a><br>
<br>
<br>
<br>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<br>
<pre class="moz-signature" cols="72">--
Jorge Gaspar Sanz Salinas
gvSIG Team at Prodevelop
<a class="moz-txt-link-freetext" href="http://www.gvsig.org">http://www.gvsig.org</a>
<a class="moz-txt-link-freetext" href="http://www.gvsig.com">http://www.gvsig.com</a>
</pre>
</body>
</html>