Creación de .mbtiles desde repositorios online

Dado el marcado carácter offline de CartoDruid se hace necesario poder guardar la información que nos proveen distintos proveedores de cartografía (Google Maps, Bing Maps, …) y generar cartografía raster en ficheros que puedan llevarse en el propio dispositivo sin necesidad de tener conexión de datos. En el presente artículo vamos a mostrar el uso de una herramienta denominada SAS.Planet que nos permite realizar estas labores, generando ficheros compatibles con CartoDruid, y como tenemos que configurar nuestro proyecto para poder utilizarlos.

El primer paso es que nos descarguemos la aplicación desde la web del desarrollador www.sasgis.org/download/. Una vez descargado no es necesario instalarlo, ya que simplemente descomprimiendo el archivo en una carpeta del PC se puede ejecutar la aplicación.

Selección de datos a mostrar

Una vez ejecutada la aplicacion, cuya interfaz podemos ver en la captura anterior, podemos definir el mapa que queremos ver como referencia a la hora de definir la zona que queremos descargarnos. Tenemos una amplia colección de mapas online con los que trabajar, Google Maps, Bing Maps, Mapas online de ESRI, … Por otra parte la aplicacion es configurable, por lo que si conocemos algún otro servicio que no esté definido (por ejemplo los servicios de mapas de catastro), se puede configurar dentro de la herramienta para poder realizar la descarga de los datos del mismo.

Definición de la zona de descarga

Para poder descargar los datos, es necesario delimitar cual es la zona de la cual queremos extraer los datos. Para ello tenemos varias herramientas.

La mas simple es la herramienta de “Selección Rectangular” que me permite dibujar de forma sencilla un rectángulo en pantalla delimitando la zona de trabajo. En el momento de terminar la creación de la zona de trabajo se muestra la pantalla de “Administración de Selecciones”, la cual nos permite realizar las operaciones de descarga y exportación de los datos.

Descarga de datos

Previo a creación del fichero que podremos utilizar en CartoDruid, es necesaria la descarga de las imágenes a nuestro PC.

Este formulario nos permite tanto la descarga de los datos como la exportación de los mismos. Inicialmente tenemos que descargar los datos. Bien es cierto que nos podríamos saltar este paso si ya hemos descargado los datos en anteriores operaciones ya que la herramienta guarda estos datos para posteriores operaciones.

En esta pantalla debemos ir a la pestaña “Descarga” y una vez allí definimos el mapa desde el que nos vamos a descargar los datos así como los niveles de zoom para los que se van a generar las imágenes. Una vez seleccionados ambos parámetros, se nos muestra el número de mosaicos que va a descargar la herramienta y el tamaño de los mismos en píxeles.

Al dar a iniciar se nos muestra una pantalla que nos va indicando el progreso de la descarga y detalles como el peso de los ficheros generados. Esta tarea puede tardar bastante tiempo dependiendo de la zona seleccionada y los niveles de zoom a los que queremos descargar las imágenes.

Creación de fichero compatible con CartoDruid

Cuando se haya terminado la descarga de los datos es el momento de crear el fichero de trabajo compatible con CartoDruid. Para ello debemos acceder de nuevo al formulario de “Administrador de Selecciones” para ello desde el menú de selección debemos acceder a la opción “Última selección”. Una vez en la pestaña de “Exportar” podremos seleccionar los siguientes parámetros:

  • Formato – El formato del fichero de exportación. En este caso debe ser de tipo MBTiles 1.2(SQLite3) para que CartoDruid pueda utilizarlo.
  • Guardar en – Seleccionamos el nombre del fichero. Este debe acabar en .mbtiles.
  • Mapa – Podemos seleccionar el mapa a partir del que queremos generar el fichero.
  • Niveles de Zoom – Niveles de zoom con los que se generará el fichero. Podemos seleccionar varios.

Si seleccionamos un mapa o unos niveles de zoom que no tenemos descargados, la exportación creará el fichero con las teselas, pero estas estarán vacías.

Carga de datos en CartoDruid

Para poder realizar la carga del fichero .mbtile dentro de la aplicacion, solo debemos pulsar en el botón + desde la tabla de contenidos (leyenda) y después seleccionar la opción “Cargar una capa raster de un fichero”. Seleccionamos el fichero a cargar y definimos las características de la nueva capa

Configuración manual de una capa raster en CartoDruid

Si queremos crear manualmente la capa raster dentro de nuestro proyecto, deberemos seguir los siguientes pasos. Lo primero es cambiar el nombre al fichero generado, este debe de seguir la siguiente norma.

nombre_srid_version.mbtiles

Ej: valladolid_4326_2016.mbtiles

Después simplemente conectamos con un cable usb el móvil o tablet y llevamos el archivo hasta la memoria del mismo (la localización del fichero dentro del almacenamiento es irrelevante).

Debemos cambiar el fichero de configuración del proyecto a cargar para añadir este nueva capa, el fichero es un xml que se encuentra en la carpeta de dispositivo\cartodroid\config y se denomina crtdrdLayers.NOMBRE_PROYECTO.xml

En dicho fichero debemos de añadir una nueva capa de tipo mbtiles y guardar el fichero ya solo debemos abrir CartoDruid y cargar el proyecto para ver la nueva capa sobre el mapa.

El código ha añadir es como el que sigue.

<entry>
    <string>PRUEBASAS</string>
    <es.jcyl.ita.crtcyl.core.model.RasterLayer>
    <descripcion>Mapa de prueba de SAS</descripcion>
    <id>Pruebas Carga</id>
    <name>Mapas Prueba</name>
    <sources>
        <es.jcyl.ita.crtcyl.client.dao.source.RepoMBTilesServiceDescriptor>
            <resourceid>valladolid</resourceid>
            <srid>4326</srid>
            <version>2016</version>
        </es.jcyl.ita.crtcyl.client.dao.source.RepoMBTilesServiceDescriptor>
    </sources>
    <zOrder>10</zOrder>
    <range>
        <max>15</max>
        <min>6</min>
    </range>
    </es.jcyl.ita.crtcyl.core.model.RasterLayer>
 </entry>

Debemos cambiar los parámetros en negrita para adaptarlo a nuestros datos, sobre todo resourceid, srid y versión que tienen que coincidir con los el nombre del fichero. Para el caso del código mostrado sería valladolid_4326_2016.mbtiles