23 diciembre 2007

Recrear un proyecto de mapas MapSource desde un archivo contenedor GMAPSUPP.IMG o similar

Todos los receptores GPS de Garmin para coche suelen incluir pregrabados en la misma unidad o en una tarjeta de memoria SD adjunta, los mapas necesarios para la navegación. Y todos sabemos (o deberíamos saber...) que dichos mapas se almacenan en un único archivo contenedor de nombre GMAPSUPP.IMG o similar), dentro de la carpeta de nombre Garmin.

En este articulo trataremos de recomponer un proyecto de mapas a partir de la información contenida en uno de estos archivos contenedores GMAPSUPP.IMG (o similar), lo que nos permitirá visualizar y manipular los mapas con el programa Garmin MapSource desde nuestro PC.

A fecha de creación de éste artículo, la recomposición del proyecto de mapas no es total, de forma que no todas las funcionalidades originales son operativas. Igualmente se han observado fallos en las coordenadas al trabajar con proyectos de mapas ubicados en el hemisferio sur, que esperemos sean subsanados en posteriores versiones del programa GmapTool.

Dado que la mayoría de operaciones del método que expondré a continuación requiere trabajar en línea de comandos, adjunto el contenido de un archivo *.REG cuya información puede agregarse al registro de Windows, y que añade al menú contextual (accesible con el botón derecho del ratón) la posibilidad de abrir una ventana de comandos apuntando a una determinada carpeta cuando ésta es seleccionada. Se trata de copiar el siguiente código con el Bloc de Notas, guardar el archivo como ventana.REG e incorporar la información al registro haciendo doble click sobre el citado archivo:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmd]
@="Abrir ventana de comandos aquí"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmd\command]
@="cmd.exe /k \"cd %L\""


El método es el siguiente:

1) Creamos un carpeta de trabajo, de nombre por ejemplo Proyecto. Incluimos en ella el archivo gmapsupp.img (o similar) y el ejecutable GmapTool

2) Dado que el programa GmapTool opera en línea de comandos, seleccionamos la carpeta Proyecto y desplegando el menú contextual asociado elegimos la opción "Abrir ventana de comandos aquí", y escribimos:

gmaptool -iv gmapsupp.img >info.txt


Con ello creamos en la carpeta Proyecto un archivo de nombre info.txt que incluye una completa información acerca del contenido del archivo gmapsupp.img y de nuestro proyecto de mapas.

3) Volvemos a ejecutar en la ventana de comandos el programa GmapTool con la siguiente secuencia para extraer los mapas y otros archivos asociados:

gmaptool -S gmapsupp.img


¡OJO!, pués el comando -S es en MAYÚSCULA. Si se escribe erroneamente en minúscula, se ejecuta otro comando y se obtienen otros resultados parecidos pero no los deseados...



Se han extraido un conjunto de archivos *.IMG correspondientes a los mapas, así como un archivo *.UNL con el código de desbloqueo de los mapas y *.TYP de personalización de los mapas (si es que los hay), y por último los archivos mapset00.TDB, mapset00.MDX y un mapset00.MP que sirven para definir el proyecto de mapas en el MapSource.

4) Nos descargamos la versión "freeware" del compilador cgpsmapper y lo ubicamos también en la carpeta Proyecto. En la misma ventana de comandos o en una nueva, procedemos a crear el mapa-base del proyecto de mapas compilando el archivo mapset00.MP, de forma que teclearemos:

cgpsmapper mapset00.mp


Se nos crea el archivo mapset00.img

5) En este punto ya tenemos casi todos los archivos necesarios para el proyecto. Ahora vamos a crear la carpeta definitiva del proyecto de mapas. Abrimos el archivo info.txt y en las lineas finales leemos el valor del parámetro FID o Family ID, que es un número que identifica de forma exclusiva el proyecto de mapas, y creamos entonces la carpeta FAM_xxxx, donde xxxx son los dígitos del valor correspondiente al FID. Una vez creada la carpeta copiamos en ella TODOS los archivos *.IMG , y los archivos mapset00.MDX , mapset00.TDB y mapset00.IMG.

6) Ya solo nos falta copiar en la carpeta FAM_xxxx un último archivo, el archivo mapset00.REG que nos permitirá introducir la información de nuestro proyecto de mapas en el registro de Windows y sin la cual el programa MapSource no puede acceder al mismo. El contenido del archivo mapset00.REG que expongo a continuación DEBEIS MODIFICARLO y adaptarlo a vuestro proyecto de mapas (identificado de manera exclusiva con el FID obtenido por vosotros), modificando el valor dado en el ejemplo (272) por el valor del FID de vuestro proyecto:

Windows Registry Editor Version 5.00

;Requerido para poder instalar la actualización de MapSource desde la web de Garmin:
;http://www8.garmin.com/support/download_details.jsp?id=209


[HKEY_LOCAL_MACHINE\SOFTWARE\Garmin\Mapsource\Products]
"InstallDir"="C:\\Garmin\\Mapas"


;Si existe archivo TYP, quitar el símbolo de comentario ; y cambiar el nombre de "mapset00.TYP"

[HKEY_LOCAL_MACHINE\SOFTWARE\Garmin\MapSource\Families\FAMILY_272]
;"TYP"="C:\\Garmin\\Mapas\\FAM_272\\mapset00.typ"
"IDX"="C:\\Garmin\\Mapas\\FAM_272\\mapset00.mdx"


[HKEY_LOCAL_MACHINE\SOFTWARE\Garmin\MapSource\Families\FAMILY_272\1]
"Bmap"="C:\\Garmin\\Mapas\\FAM_272\\mapset00.img"
"Tdb"="C:\\Garmin\\Mapas\\FAM_272\\mapset00.tdb"
"Loc"="C:\\Garmin\\Mapas\\FAM_272"


;Si teneis código de desbloqueo (archivo.UNL), quitar el símbolo de comentario ; y sustituirlo, y asignarle el nombre del proyecto obtenido del archivo info.txt (en este ejemplo es City Navigator Australia NT 2008)

[HKEY_CURRENT_USER\SOFTWARE\Garmin\MapSource\Codes]
;"CODIGO_DESBLOQUEO_25_CARACTERES"="City Navigator Australia NT 2008"



NOTA: El texto en cursiva son sólo comentarios que NO DEBEN copiarse como contenido del archivo mapset00.REG
¡OJO! con algunos códigos de desbloqueo, que son específicos para un receptor GPS y pueden no ser válidos para el MapSource o viceversa
.

7) Para concluir, copiamos la carpeta FAM_xxxx con todo su contenido en la ruta C:\Garmin\Mapas, la abrimos y hacemos doble click en el archivo mapset00.REG para añadir la información del proyecto de mapas al registro de Windows. Instalamos la actualización del programa MapSource desde la web de Garmin si no tenemos todavía el MapSource instalado, y ya podemos ejecutar el programa y acceder así a los mapas de nuestro flamante proyecto...



NOTA: El método es ahora más sencillo e intuitivo utilizando el GUI para Windows de la misma herramienta GMapTool. Teneis un nuevo artículo publicado en la siguiente dirección:

http://gpsando.blogspot.com/2009/09/recrear-un-set-de-mapas-de-garmin-para.html

10 diciembre 2007

Garmin MapSource funcionando en modo DEMO

El Garmin MapSource es el programa que utilizamos para gestionar tanto los datos GPS (TRKs, WPTs, RTEs), como los mapas de Garmin. Cuando tratamos de utilizar productos cartográficos comerciales, la mayoría requieren de un código de desbloqueo de 25 dígitos para ser visualizados en el propio MapSource (y en el receptor GPS).

Existe una función no documentada del programa MapSource que permite trabajar en modo de sólo demostración, con productos comerciales que requieren código de desbloqueo para visualizarse en el propio programa. Se trata de utilizar la palabra DEMO como código de desbloqueo de los mapas. Con ello conseguimos visualizar TODOS los proyectos de usuario y productos comerciales en MapSource, y gestionar así tanto mapas como el resto de datos a/desde el GPS. Aquellos mapas enviados que incluso requieran código de desbloqueo específico para el receptor GPS también son visualizados en él sin problemas.



Como ya señalé en un anterior artículo, los códigos de desbloqueo se almacenan en el PC en el registro de Windows, en la siguiente clave:

HKEY_CURRENT_USER\Software\Garmin\MapSource\Codes

Bajo esta clave aparecen diferentes valores alfanuméricos o de cadena cuyo nombre se corresponde con el código de desbloqueo de 25 dígitos de cada producto, y cuya información de valor (opcional), si la hay, es una breve descripción del producto al que pertenece. En nuestro caso añadiremos un nuevo valor alfanumérico o de cadena de nombre DEMO

¡OJO! Al incluir el código DEMO, el MapSource funcionará SIEMPRE en modo de sólo demostración, independientemente de si el resto de códigos de desbloqueo instalados son funcionales. Para volver a cualquier situación anterior de normalidad es imprescindible ELIMINAR el código DEMO del registro de Windows.

Al tratarse no obstante de un modo de funcionamiento de demostración, encontramos una serie de limitaciones. La más destacada es que en cualquier envío de mapas al receptor GPS, el archivo GMAPSUPP.IMG creado hace que el GPS funcione también en modo DEMO.

Con el GPS funcionando en modo Demo, la adquisición de información de los satélites queda bloqueada, de forma que todas aquellas funciones del GPS que requieren de dicha información (la mayoría) dejan de funcionar. Sin embargo, la visualización de los mapas (independientemente de si requieren o no código de desbloqueo específico para el GPS) es completa.

El funcionamiento en modo DEMO del receptor GPS es también una opción que el usuario puede elegir en cualquier momento. Basta con acceder a la página del Menú principal->Configurar->Sistema->GPS->Modo Demo



¡OJO! Si se envían mapas desde MapSource en modo de demostración, el GPS funcionará también entonces en modo Demo, de forma que para volver a su estado normal de funcionamiento se requerirá eliminar/parchear el archivo GMAPSUPP.IMG creado o bien sustituirlo por otro que no haya sido creado con MapSource funcionando en modo demo (por ejemplo creado de nuevo con Sendmap, un archivo gmapsupp.img de backup, etc...)

Siendo el archivo GMAPSUPP.IMG el responsable de que el receptor GPS entre en modo DEMO, cabe esperar que "trasteando" en dicho archivo se pueda deshabilitar dicho modo de funcionamiento DEMO y vuelva el GPS a funcionar en modo normal, ¿no?. Pues sí, pero eso ya teneis que descubrirlo vosotros... ;-p

Pues nada, "a trastear" y que la suerte os acompañe... (y pasad unas buenas Navidades...)