Si quieres ayudar al mantenimiento de esta foro, puedes hacer donaciones en ESTA DIRECCION

Visita la Guía de Principiantes para las nuevas unidades Garmin.

Se ruega a los usuarios nóveles QUE NO PONGAN MENSAJES DUPLICADOS. Dispersa las respuestas y confunde al resto de los usuarios

CUIDADO CON LOS FRAUDES EN LA DESCARGA DEL TOPOHISPANIA. . Leer este ENLACE

Personalización TYP de mapas Garmin IMG

Accede a estos mensajes para obtener métodos y tutoriales de aspectos de interés

Moderador: Sebasbcn

YoMismo
Mensajes: 1058
Registrado: 09 Mar 2006 14:25
Modelo GPS: OREGON 200-GPSMAP 60Cx
Ubicación: Horta-BCN

Personalización TYP de mapas Garmin IMG

Mensaje por YoMismo »

El objetivo es crear un archivo TYP de personalización de los mapas Garmin IMG, que nos permita modificar los aspectos visuales, y que funcione integrado en un producto Mapsource ya existente.

Es indispensable disponer del programa cgpsmapper, cuya versión "free" se descarga de la URL:

http://www.cgpsmapper.com

¡Basta con descargarse solo el EXE, cuya versión es la 0090 o superior!

Crearemos una carpeta de trabajo en el escritorio donde ubicaremos el ejecutable cgpsmapper.exe

A continuación se trata de crear un archivo de texto ASCII sin formato, de los que se crean facilmente con el Bloc de Notas de Windows, que será el que convirtamos mas adelante en archivo TYP con el ejecutable anterior. Creamos dos archivos en blanco que guardaremos en la carpeta de trabajo y los llamaremos, por ejemplo, crear_typ.txt y topo.txt

Ahora abrimos el archivo crear_typ.txt y lo editamos con el Bloc de Notas. Escribimos lo siguiente:

cgpsmapper typ topo.txt

Guardamos el archivo y lo renombramos de crear_typ.txt a crear_typ.cmd. Este archivo lo ejecutaremos al final de todo para crear el archivo TYP de personalización.

A continuación abrimos el archivo topo.txt y lo editamos con el Bloc de Notas.

La primera sección que tenemos que escribir corresponde a la asociación del archivo TYP que vamos a crear con los mapas Garmin IMG de un determinado producto Mapsource. En el caso del Topo España, se trata de tres productos Mapsource diferentes, cada uno de los cuales se identifica con un número exclusivo denominado Family ID o FID.

Para el Península Norte, se utiliza FID=1102.
Para Península Sur, se utiliza el FID=1103.
Para las Islas, se utiliza el FID=1104

Utilizad el FID del producto en el cual vayais a hacer las pruebas. Tomaré como ejemplo el de Península Norte.

El otro parámetro que suele definirse en esta cabecera, denominado ProductCode, se corresponde con el antiguo parámetro que identificaba de forma exclusiva mediante un número, cada producto Mapsource. Si bien no tiene mucho sentido ahora su inclusión, pues ha sido sustituido por el parámetro FID mencionado anteriormente, por razones de compatibilidad suele seguir definiéndose, y en la mayorí­a de los casos se le asigna el valor 1.

La segunda sección ya es una personalización sencilla de un objeto concreto de los mapas que describiré después.

Escribiremos lo siguiente en el archivo topo.txt :

Código: Seleccionar todo

;Ejemplo de FID para Península Norte
[_id]
ProductCode=1
FID=1102
[end]

;Ejemplo de personalización de CARRETERA NACIONAL
[_line]
Type=0x2
LineWidth=2
BorderWidth=1
Xpm="0 0 2 1"
"1 c #ff0000"
"2 c #000000"
[end]
Como se puede intuir estamos personalizando un objeto linea, que se identifica con su código hexadecimal especí­fico de Garmin 0x2 (Type=0x2). Le hemos dicho que tiene una anchura (LineWidth) de 2 pixels y un borde (BorderWidth) a banda y banda de la linea base de 1 pixel.

Para personalizar todos los objetos gráficos de los mapas (lineas, puntos y polígonos), se utiliza un único formato gráfico muy concreto denominado X Pixmap. Es lo que se define en la linea siguiente (Xpm= ...), las características de la linea que estamos definiendo en formato Pixmap.

La primera y segunda cifras son la largura y anchura en píxeles del pixmap (es 0 y 0 en este caso concreto). La tercera cifra es el número de colores del pixmap (se definen 2 colores expresados en valores hexadecimales, el #ff0000 (rojo) y el #000000 (negro)). La cuarta y última cifra expresa el nº de caracteres que se utilizan para definir cada pixel del Pixmap, que suele ser siempre 1.

Las dos lineas siguientes definen cada uno de los dos colores que utilizamos para definir el Pixmap, expresados como valores hexadecimales (los 2 primeros valores expresan la cantidad de rojo, los 2 siguientes la de verde y los 2 últimos la de azul, de un determinado color).

Otro método para personalizar los objetos del mapa lineares es modificando el trazo de la linea, creando un pixmap especí­fico, ya que con el método anterior tan solo personalizaremos líneas de trazo continuo.

Pongamos un ejemplo:

Código: Seleccionar todo

[_line] 
Type=0x5 
String1=0x08,Pista/camino 
UseOrientation=Y 
Xpm="32 2 2 1" 
"# c #ff0000" 
"  c #none 
"######  ######  ######  ######  " 
"######  ######  ######  ######  " 
;12345678123456781234567812345678
[end] 
En este caso hemos definido un nuevo trazo para la linea. Se trata de un pixmap de 32 pixels de largo por 2 pixels de ancho y de 2 colores.
La linea de números 12345678... precedidas del signo de comentario ; se utiliza como plantilla a la hora de crear manualmente el pixmap, y evitarse así problemas de que el pixmap creado luego no coincida con el tamaño especificado...

En la definición de colores, en la primera línea hemos asignado al carácter # que es con el que hemos definido el trazo, el color #ff000000 (rojo), mientras que en la segunda linea hemos especificado que en las zonas del pixmap donde no existe caracter alguno utilizado (los espacios en blanco), no definimos ningún color #none, o lo que es lo mismo, será transparente.

Asociado al nuevo trazo de linea definido aparece un nuevo parámetro, el UseOrientation=. Éste hace referencia a si el pixmap que redefine una linea se adaptará a las curvaturas (Y) o no (N) de la misma, para entendernos...

Por último y no relacionado directamente con el aspecto visual de los objetos de mapa, hemos definido un nuevo parámetro String1=
Este parámetro que es común a cualquiera de los tres tipos de objetos de mapa posibles, que son las líneas [_line] , los puntos o pois [_point] y los polígonos [_poligon] , permite asignar qué palabra queremos que se visualice por defecto cuando situemos el puntero sobre un objeto del mapa determinado que no tiene asignada una etiqueta específica. Es decir y aplicado en nuestro ejemplo, al situarnos con el puntero sobre una línea que corresponde a una pista o camino, si no tiene especificada una etiqueta concreta (Ej. CAMINO DE MI CASA), entoncés aparecerá la palabra especificada Pista/camino. El código hexadecimal previo, el 0x08 se corresponde con el idioma español, que es el idioma por defecto que la mayoría de nosotros tenemos configurado en nuestro receptor GPS. Se pueden redefinir hasta para 4 idiomas diferentes (String1=..., String4=...)
Para consultar los códigos hexadecimales asignados a otros idiomas, consultar mejor el manual del cgpsmapper.


Así que guardamos lo escrito en el archivo topo.txt

Como tenemos prisa en averiguar si con lo que estamos haciendo vamos a obtener resultados, vamos a compilarlo a archivo TYP. Para ello ejecutaremos el archivo crear_typ.cmd haciendo doble click sobre él.

Se nos creará el archivo 44E.TYP
Buscamos ahora en la carpeta de instalación de los mapas llamada FAM_1102 (corresponde a Península Norte), el archivo I000044E.TYP y lo renombramos a I000044E.TYP.BAK para no perder el original. Copiamos en esta carpeta el archivo 44E.TYP que hemos creado y lo renombramos a I000044E.TYP

Ya podemos proceder a comprobar si funciona la "mínima" personalización de ejemplo tanto en Mapsource como en los mapas que se envien al GPS a través del Mapsource.

Ya comentareis si funciona o no el tema, ya que yo personalmente no puedo comprobarlo...

PD: Si la cosa acaba funcionando, iré completando el tema de la personalización con nuevas aportaciones...[/code]
Última edición por YoMismo el 19 Ago 2007 09:19, editado 6 veces en total.
garminete
Mensajes: 267
Registrado: 16 Jun 2006 18:28

Mensaje por garminete »

Manos a la obra...espero poder probarlo en breve, ¡Â¡ya os comentaré!!

¡Â¡Gracias Yomismo por la ayuda, por la explicación y por el documento que has escrito!!

De momento, he compilado el archivo con el ejemplo que has puesto y el mapsource me contesta con un bonito casque:

MPL_CUSTOMDRAWTYPES.CPP-135-6.11.6.0
path: c:\garmin\fam_1102\I000044E.TYPError code: 1


He copiado/pegado el ejemplo y luego compilado... al cambiar al Topo Norte Mapsource explota, versión 6.11.6 , he comprobado espacios y he quitado los comentarios por si acaso...no se me ocurre otra cosa.

 ¿Dónde hay una referencia con los valores que podemos utilizar para customizar los mapas?

SALUDOS Y GRACIAS POR TODO
YoMismo
Mensajes: 1058
Registrado: 09 Mar 2006 14:25
Modelo GPS: OREGON 200-GPSMAP 60Cx
Ubicación: Horta-BCN

Mensaje por YoMismo »

Pues no me sorprende que no acabe funcionando, porque es un tema complejo, sobre todo cuando se trata de un producto Mapsource ya creado...

Tienes más información sobre valores en el manual del cgpsmapper, que se puede descargar de la URL citada en el anterior post.

Como último intento "desesperado" podías probar a compilar el TYP con el siguiente código, y si no funciona pues ya no se me ocurre como poder ayudaros...

Código: Seleccionar todo

 
[_id] 
ProductCode=1
FID=1102 
[end]

[_drawOrder]
TYPE=0x01,1		; Large urban area >200k
Type=0x02,1		; Small urban area <200k
Type=0x03,1		; Rural housing area
Type=0x04,1		; Military base
Type=0x05,1		; Parking lot
Type=0x06,1		; Parking garage
Type=0x07,1		; Airport
Type=0x08,3		; Shopping center
Type=0x09,1		; Marina
Type=0x0a,2		; University/college
Type=0x0b,2		; Hospital
Type=0x0c,2		; Industrial complex
Type=0x0d,2		; Reservation
Type=0x0e,2		; Airport runway
Type=0x13,2		; Building/Man-made area
Type=0x14,2		; National park
Type=0x15,2		; National park
Type=0x16,2		; National park
Type=0x17,3		; City park
Type=0x18,3		; Golf course
Type=0x19,3		; Sports complex
Type=0x1a,4		; Cemetery
Type=0x1e,2		; State park
Type=0x1f,2		; State park
Type=0x20,2		; State park	
Type=0x28,1		; Sea/Ocean
Type=0x29,1		; Blue-Unknown
Type=0x32,1		; Sea
Type=0x3b,1		; Blue-Unknown
Type=0x3c,8		; Large lake (250-600 km2)
Type=0x3d,8		; Large lake (77-250 km2)
Type=0x3e,8		; Medium lake (25-77 km2)
Type=0x3f,8		; Medium lake (11-25 km2)
Type=0x40,8		; Small lake (0.25-11 km2)
Type=0x41,8		; Small lake (<0.25 km2)
Type=0x42,8		; Major lake (>3.3tkm2)
Type=0x43,8		; Major lake (1.1-3.3tkm2)
Type=0x44,4		; Large lake (0.6-1.1tkm2)
Type=0x45,2		; Blue-Unknown
Type=0x46,2		; Major river (>1km)
Type=0x47,2		; Large river (200m-1km)
Type=0x48,3		; Medium river (20-200km)
Type=0x49,4		; Small river (<40m)
Type=0x4c,5		; Intermittent water
Type=0x4d,5		; Glacier
Type=0x4e,5		; Orchard/plantation
Type=0x4f,5		; Scrub
Type=0x50,3		; Forest
Type=0x51,6		; Wetland/swamp
Type=0x52,8		; Tundra
Type=0x53,5		; Sand/tidal/mud flat
[end]

[_line] 
Type=0x2 
LineWidth=2 
BorderWidth=1 
Xpm="0 0 2 1" 
"1 c #ff0000" 
"2 c #000000" 
[end] 
garminete
Mensajes: 267
Registrado: 16 Jun 2006 18:28

Mensaje por garminete »

Pues ahora si que funciona, con el "chorizo" grande sin problemas. Ya estoy probando cosas...de momento he tocado los anchos de las líneas y estoy probando los colores....

Estoy mirando el manual de cgpsmapper y es atómico, muchísima información.

A tu juicio, Â ¿que cosas sería conveniente mejorar?

¡Â¡Gracias de nuevo por la ayuda!!

Otra cosa, editando el mapa con Mapedit, y accediendo a las propiedades de un objeto aparece el código hexadecimal, con esta ayuda es fácil saber qué quieres tocar y configurarlo.
Avatar de Usuario
AntonioGPS
Site Admin
Mensajes: 12928
Registrado: 28 Dic 2005 12:21
Modelo GPS: eTrex 30X y EDGE 530
Ubicación: Córdoba
Contactar:

Mensaje por AntonioGPS »

YoMismo

Nos ha dado muchas horas de recreacion con esto de los Typ, pero algo he visto. Que los que has mostrado en un hilo aparte quedan geniales

me puedes mandar un fuente completo del Typ que hayas usado, o es este que has mostrado en este hilo?

Otra cosa
Sabes si los niveles de zoom a los que aparecen los objetos se pueden manipular con los Typ ?

Saludotes
YoMismo
Mensajes: 1058
Registrado: 09 Mar 2006 14:25
Modelo GPS: OREGON 200-GPSMAP 60Cx
Ubicación: Horta-BCN

Mensaje por YoMismo »

Lo primero, congratularme porque ahora las cosas "chuten"...
Lo segundo, decir que efectivamente, para mí el GPSMapEdit es una herramienta básica a la hora de manipular los mapas IMG de Garmin, ya que te proporciona una valiosísima información de como están elaborados y de poder llegar a hacer lo que ya sabemos...

Hola Antonio,
efectivamente con los TYP se favorece mucho el aspecto visual de los mapas, pero no es la solución "milagrosa". Hay cosas que se mejoran ostensiblemente, y hay otras cosas que "nasti de plasti" porque forman parte del proceso de elaboración de los mapas, y uno no va a ponerse a rehacer los mas de 4.000 mapas del Topo España... Por ejemplo, lo de los niveles de zoom que mencionas, pues no se puede arreglar con el tema del TYP. En cierta forma y tal como he hecho saber a un forero por correo privado, siento haber dado falsas esperanzas al postear las capturas de pantalla de los mapas, porque hay cosas que solo se pueden conseguir rehaciendo como hice dichos mapas...

Viendo que hemos conseguido que el tema TYP funcione, en un siguiente post y cuando tenga un poco mas de tiempo, os remitiré una versión mas completa del contenido del TYP para aplicarlo al Topo España y a ver así si a los foreros poseedores del mismo les animamos un poquitín...

:P
YoMismo
Mensajes: 1058
Registrado: 09 Mar 2006 14:25
Modelo GPS: OREGON 200-GPSMAP 60Cx
Ubicación: Horta-BCN

Mensaje por YoMismo »

Pues aquí unas sugerencias para personalizar el Topo España:

Código: Seleccionar todo

[_id] 
ProductCode=1 
FID=1102 
[end] 

[_drawOrder] 
TYPE=0x01,1      ; Large urban area >200k 
Type=0x02,1      ; Small urban area <200k 
Type=0x03,1      ; Rural housing area 
Type=0x04,1      ; Military base 
Type=0x05,1      ; Parking lot 
Type=0x06,1      ; Parking garage 
Type=0x07,1      ; Airport 
Type=0x08,3      ; Shopping center 
Type=0x09,1      ; Marina 
Type=0x0a,2      ; University/college 
Type=0x0b,2      ; Hospital 
Type=0x0c,2      ; Industrial complex 
Type=0x0d,2      ; Reservation 
Type=0x0e,2      ; Airport runway 
Type=0x13,2      ; Building/Man-made area 
Type=0x14,2      ; National park 
Type=0x15,2      ; National park 
Type=0x16,2      ; National park 
Type=0x17,3      ; City park 
Type=0x18,3      ; Golf course 
Type=0x19,3      ; Sports complex 
Type=0x1a,4      ; Cemetery 
Type=0x1e,2      ; State park 
Type=0x1f,2      ; State park 
Type=0x20,2      ; State park    
Type=0x28,1      ; Sea/Ocean 
Type=0x29,1      ; Blue-Unknown 
Type=0x32,1      ; Sea 
Type=0x3b,1      ; Blue-Unknown 
Type=0x3c,8      ; Large lake (250-600 km2) 
Type=0x3d,8      ; Large lake (77-250 km2) 
Type=0x3e,8      ; Medium lake (25-77 km2) 
Type=0x3f,8      ; Medium lake (11-25 km2) 
Type=0x40,8      ; Small lake (0.25-11 km2) 
Type=0x41,8      ; Small lake (<0.25 km2) 
Type=0x42,8      ; Major lake (>3.3tkm2) 
Type=0x43,8      ; Major lake (1.1-3.3tkm2) 
Type=0x44,4      ; Large lake (0.6-1.1tkm2) 
Type=0x45,2      ; Blue-Unknown 
Type=0x46,2      ; Major river (>1km) 
Type=0x47,2      ; Large river (200m-1km) 
Type=0x48,3      ; Medium river (20-200km) 
Type=0x49,4      ; Small river (<40m) 
Type=0x4c,5      ; Intermittent water 
Type=0x4d,5      ; Glacier 
Type=0x4e,5      ; Orchard/plantation 
Type=0x4f,5      ; Scrub 
Type=0x50,3      ; Forest 
Type=0x51,6      ; Wetland/swamp 
Type=0x52,8      ; Tundra 
Type=0x53,5      ; Sand/tidal/mud flat 
[end] 

[_line] 
Type=0x2 
String1=0x08,Ctra. nacional
LineWidth=2 
BorderWidth=1 
Xpm="0 0 2 1" 
"1 c #ff0000" 
"2 c #000000" 
[end]

[_line]
Type=0x3
LineWidth=3
BorderWidth=0
String1=0x08,Ctra. red básica
Xpm="0 0 2 1"
"1 c #ff9500"
"2 c none"
[end]

[_line]
Type=0x5
String1=0x08,Pista/camino
UseOrientation=Y
Xpm="32 2 2 1"
"# c #ff0000"
"  c #none
"######  ######  ######  ######  "
"######  ######  ######  ######  "
[end]

[_line]
Type=0x6
LineWidth=1
BorderWidth=0
String1=0x08,calle
Xpm="0 0 2 1"
"1 c #ff0000"
"2 c #none"
[end]

[_line]
Type=0x16
UseOrientation=Y
String1=0x08,Sendero
Xpm="32 1 2 1"
"x c #ff0000"
"  c #none
"xx xx xx xx xx xx xx xx xx xx x "
[end]

[_line]
Type=0x29
UseOrientation=Y
String1=0x08,línea Alta Tensión
Xpm="32 5 2 1"
"# c #737373"
"  c none"
"                #               "
"               #                "
"############  #####  ###########"
"                 #              "
"                #               "
[end]

[_point]
Type=0x64
Subtype=0x11
String1=0x08,Torre eléctrica
DAYXPM="16 16 2 1",
" 	c None   ",
"!	c #000000",
"     !!!!!      ",
"      ! !       ",
"      ! !       ",
"    !!!!!!!     ",
"     !! !!      ",
"     ! ! !      ",
"     !! !!      ",
"   !!!!!!!!!    ",
"     !! !!      ",
"     ! ! !      ",
"     !! !!      ",
"    ! ! ! !     ",
"    !  !  !     ",
"    ! ! ! !     ",
"    !!   !!     ",
"                "};
[end]
Estas son solo algunas sugerencias. Se trata de identificar en un mapa aquel objeto cuyo aspecto se desee cambiar, con el GPSMapEDit averiguar el código y tipo de objeto asignado, y ya está...

Recuerdo que hay que cambiar el valor de FID para obtener un TYP para cada uno de los 3 productos Topo España, y seguir el procedimiento del primer post.

:wink:
garminete
Mensajes: 267
Registrado: 16 Jun 2006 18:28

Mensaje por garminete »

Me parece que te has pegado un curro tremendo.., la verdad es que a primera vista cambia bastante y se distingue mejor todo...

¡muchas gracias una vez mas!
artcort
Mensajes: 180
Registrado: 28 Dic 2005 20:53
Modelo GPS: eTrex 40 - 60CX - Venture

Mensaje por artcort »

Ejemplo de varios elementos tuneados, cómo se ven en un mapa casero y el código de algunos de esos elementos.
Elementos tuneados:
--- fondo blanco (aumenta el contraste, para mí fundamental...)
--- curvas de nivel en dos tonos de verde (tengo que ponerlas más oscuras)
--- caminos de dos píxles de ancho para verlos mejor
--- senderos con línea punteada
--- líneas de alta tensión, límites municipales...
--- charcas más azules...
--- algunos iconos, como casa de campo o fuente...
--- En el pantallazo no se ven, pero hay que cambiar los edificios, de color blanco a otro color de contraste...

Imagen
AlbertoLR
Mensajes: 20
Registrado: 04 Feb 2006 00:57

Mensaje por AlbertoLR »

con lo facil que es el tema de compilar. Se ejecuta el cgpsmapper con el archivo .cmd pero no se por qué no se crea el archivo TYP.
artcort
Mensajes: 180
Registrado: 28 Dic 2005 20:53
Modelo GPS: eTrex 40 - 60CX - Venture

Mensaje por artcort »

Alberto López escribió:con lo facil que es el tema de compilar. Se ejecuta el cgpsmapper con el archivo .cmd pero no se por qué no se crea el archivo TYP.
 ¿Te da algún mensaje de error?.
 ¿Te lo da pero no te da tiempo a verlo?.

Abre el archivo *.cmd e inserta una línea nueva tecleando el comando "pause". Quedaría así

Código: Seleccionar todo

cgpsmapper typ topo.txt
pause
Salva y ejecuta.
Podrás ver si el cgpsmapper da algún mensaje de error. Si es así, nos lo cuentas... :roll:
AlbertoLR
Mensajes: 20
Registrado: 04 Feb 2006 00:57

Mensaje por AlbertoLR »

Gracias por el interes.

El problema, despues de dar vueltas tenia que estar solo en el archivo .txt

Me he dado cuenta que creando con el .txt con el bloc de notas, el cgpsmapper no me reconoce el archivo txt. Pero con el Word, guardando como texto sin formato si que lo pilla. Saludos.
artcort
Mensajes: 180
Registrado: 28 Dic 2005 20:53
Modelo GPS: eTrex 40 - 60CX - Venture

Mensaje por artcort »

Alberto López escribió:.../...Me he dado cuenta que creando con el .txt con el bloc de notas, el cgpsmapper no me reconoce el archivo txt. Pero con el Word, guardando como texto sin formato si que lo pilla.../...
Eso no lo entiendo :roll:
Leo en la ayuda del bloc de notas lo siguente:

Código: Seleccionar todo

De forma predeterminada, los documentos se guardarán como texto ANSI estándar.
Aunque también utiliza Unicode y otros formatos.. :shock: :shock:
AlbertoLR
Mensajes: 20
Registrado: 04 Feb 2006 00:57

Mensaje por AlbertoLR »

Ya, yo tampoco lo entiendo, pero así funciona.

Una pregunta, Â ¿los cambios con el archivo TYP, se ven tambien en el GPS? porque a mi se me ven los cambios en el Pc pero en el receptor se ve todo igual

saludos
artcort
Mensajes: 180
Registrado: 28 Dic 2005 20:53
Modelo GPS: eTrex 40 - 60CX - Venture

Mensaje por artcort »

Alberto López escribió:.../... ¿los cambios con el archivo TYP, se ven tambien en el GPS? porque a mi se me ven los cambios en el Pc pero en el receptor se ve todo igual.../...
En efecto. Hay que subir el TYP junto a los mapas. Yo utilizo el SendMap.
Te paso unas capturas de un mapa hecho a mano, que yo aún no he comprado el TopoEspaña:

Imagen Imagen Imagen
Responder