miércoles, 10 de abril de 2013

Mapas osm para CompeGPS

En esta entrada se explica como automatizar la descarga y proceso de los archivos necesarios para usar los mapas de openstreetmap en dispositivos twonav de CompeGPS. Lo primero que debemos hacer es descargar e instalar los programas que usaremos. Estos son el wget para descargarnos el fichero desde http://download/geofabrik.de, el 7-zip para descomprimir ese archivo, el osmconvert para recortar la zona que necesitemos y por supuesto una versión actualizada del CompeGPSLand que si habéis llegado aquí ya tendréis.


En el proceso intervienen dos archivos de texto. Un .bat para descargar, descomprimir, recortar y abrir el compegps. Y un .cgs para que el compegps automatice una serie de operaciones. Los crearemos y ejecutaremos en una carpeta, la he llamado d:\osm

Lo que debe ir en el archivo .bat es lo siguiente:

path c:\program files (x86)\gnuwin32\bin;c:\program files\7-zip;c:\program files (x86)\compegps75
del cyprus-latest.*
wget http://download.geofabrik.de/europe/cyprus-latest.osm.bz2
7z x cyprus-latest.osm.bz2
osmconvert d:\osm\cyprus-latest.osm -b=33.20,35.08,33.48,35.26 >d:\osm\nicosia.osm
compegpsland d:\osm\nicosia.cgs

y en el archivo .cgs: 

map = CompeGPS.Open ("d://osm//nicosia.osm",");
map.CreateRoutingInfo("");
map.SaveAsMPVF("d://osm//nicosia.mpvf");
CompeGPS.CloseAll();
CompeGPS.Quit();

todo ello con las rutas que tengáis en vuestro ordenador y vuestros nombres de archivos. En el ejemplo he usado Chipre por ser un país pequeño y ser rápida la descarga.

Algunos no necesitareis explicación de que es cada cosa, pero para los menos expertos en informática paso a explicar que hace cada linea después de haber ejecutado el archivo .bat.

path c:\program files (x86)\gnuwin32\bin;c:\program files\7-zip;c:\program files (x86)\compegps75

En esta linea escribimos las rutas a los ejecutables que usaremos, para que el sistema sea capaz de encontrarlas.

del cyprus-latest.*
wget http://download.geofabrik.de/europe/cyprus-latest.osm.bz2

Borramos los archivos que hayamos descargado otro día y descargamos el nuevo archivo.

7z x cyprus-latest.osm.bz2

Descomprimimos en la misma carpeta donde esté ese archivo.

osmconvert d:\osm\cyprus-latest.osm -b=33.20,35.08,33.48,35.26 >d:\osm\nicosia.osm 

Recortamos el archivo .osm para quedarnos con la zona que necesitemos. En el ejemplo no tendríamos problema en abrir el archivo no recortado pero España ocupa 7.5 GB y el compegps o el ordenador no puede con él. Las coordenadas que veis son la de la esquina inferior izquierda y la esquina superior derecha por este orden.

compegpsland d:\osm\nicosia.cgs

Abre el compegpsland y ejecuta el script.

Si queremos que salgan los POIS con sus iconos en windows 7 tenemos que darle el privilegio de ejecutarlo como administrador. Por lo que cada vez que ejecuto el compegps windows me pide confirmación para abrirlo.

map = CompeGPS.Open ("d://osm//nicosia.osm");

Esto no es muy difícil, Compegps abre el archivo .osm que le decimos

map.CreateRoutingInfo("");

Edita el mapa y busca los cruces de las carreteras. La distancia a la que buscará los cruces será la que tengamos por defecto.

map.SaveAsMPVF("d://osm//nicosia.mpvf");

Guarda el mapa como mpvf para poder usarlo en los dispositivos TwoNav.

CompeGPS.CloseAll();
CompeGPS.Quit();

Cierra el mapa y el compegps.

En siguientes capítulos explicaré como hacer que el compegps procese los objetos del fichero osm que se deja.

No hay comentarios :

Publicar un comentario