viernes, 14 de marzo de 2014

Garmin y los BirdsEye JNX (2).

Seguimos indagando en el complicado y caprichoso asunto de los JNX, el formato para introducir mapas raster en dispositivos Garmin compatibles, también conocido como BirdsEye. En este artículo nos proponemos crear un JNX de varios niveles, es decir, que contenga mapa topográfico y ortofoto y que, dependiendo del nivel de zoom se visualice el uno o el otro (hipermapa para los amigos). 
Este efecto se puede conseguir también con dos mapas individuales: un JNX de mapa topográfico con nivel de zoom 800 metros -por ejemplo-  y otro JNX de ortofoto con nivel de zoom 200 metros -por ejemplo-. Colocados ambos en la carpeta BirdsEye de nuestro Garmin se visualizará uno u otro cuando entremos en el nivel de zoom establecido. Pero ya puestos en harina, y dado que el formato BirdsEye lo permite, busquemos eso mismo en un único archivo.
Lo primero es preparar los jnx que vamos a necesitar con Global Mapper. Vamos a rizar el rizo y hacer un jnx de tres niveles: topo50, topo25 y orto. Como es fundamental que los tres mapas tengan la misma extensión de terreno (más exactamente el mismo número de mosaicos) para luego unirlos con éxito, os explico en un vídeo la manera infalible de recortar los tres mapas de un golpe:

Os recomiendo que no seleccionéis zonas demasiado extensas pues los tiempos de exportación y tamaños de los archivos se pueden disparar. Y si cada JNX se compone de x teselas, al unir los tres el resultado será de x por 3 teselas, con lo que podríamos superar el máximo de teselas permitidas para el JNX (unas 50000 sino recuerdo mal). De nuevo el probar varias veces es el mejor maestro. Preparamos una carpeta ("JNX Garmin" por ejemplo) para alojar las exportaciones y con los tres mapas activados y visibles (el topo50 en la capa superior) exportamos el JNX con los parámetros habituales y le llamamos mapa1 topo50. Os recomiendo también reducir la calidad de las teselas jpg a 75-80, pues la diferencia de calidad es poca y el peso en megas del JNX se reduce bastante.

A continuación "apagamos" el topo50 dejando visible el topo25 y volvemos a exportar a jnx (le llamo  mapa2 topo25). Y por último "apagamos" el topo25 dejando visible la orto y exportamos a JNX con nombre mapa3 orto.
Con nuestros tres JNX en nuestra carpeta abrimos el JNX Customizer (versión 1.0.24) y en el modo Batch, con la carpeta de nuestros mapas seleccionada en el árbol de carpetas, pinchamos en Cargar para que el programa nos muestre los JNX disponibles en esa carpeta. Debemos tener delante una pantalla como esta:

Se nos muestran los tres JNX generados (mapa1 topo50, mapa2 topo25 y mapa3 orto) con las características con las que Global Mapper ha exportado por defecto, esto es: draw order de 30, 11451 teselas de mosaico, y el número de niveles (1) y nivel de zoom de cada mapa (en este caso 80 metros para todos pues prima la orto que teníamos de fondo para conseguir en los tres JNX el mismo número de teselas). El nombre de los archivos JNX generados no es casualidad, pues tras 47000 pruebas y varios ataques de locura, descubrí que la unión de JNX sólo funciona bien si tenemos los mapas en el orden alfabético correcto (primero el topo50, luego el topo25 y luego la orto; sólo así jnxCustomizer asigna en nivel 1 al topo50, el 2 al topo25 y el 3 a la orto). Si habéis puesto unos nombres de archivo a los JNX que no corresponden alfabéticamente simplemente renombradlos con otros que cumplan el orden alfabético necesario.
Con los tres mapas seleccionados (marquita en el lado izquierdo) rellenamos las opciones de exportación: familia 15 "hipermapa 3 niveles" (o el nombre y la familia identificativos que queráis -dos dígitos-), nivel 0 a 3 kms (para el topo50), nivel 1 a 1,2 kms (para el topo25), y nivel 2 a 200 metros (para la orto). DrawOrder lo podemos dejar por defecto, pues en 30 es seguro que no tapa los mapas Garmin. Pinchamos en Unir mapas y se nos genera un nuevo JNX en la misma carpeta de nombre joinxxxxxx (siendo xxxxxx la fecha de generación del archivo).

Cerramos la ventana Batch y cargamos el nuevo JNX en la vista normal del Customizer para asegurarnos que contiene los parámetros deseados de niveles de zoom; si no es así (que no será pues un bug del programa pone el número 1 en todos los niveles) los cambiamos y guardamos. Aquí debo confesaros que, en mi maratón de prueba-error-prueba-error, muchos niveles de zoom no me han funcionado y luego no era capaz de ver el JNX en BaseCamp; por lo que hasta que sepa porqué (probablemente algo relacionado con el desfase entre zoom de BaseCamp y zoom del gps) he decidido poner los niveles 200 metros para la orto, 1,2 kms para el topo25, y 3 kms para el topo50. Aparte de que así me funciona, la verdad son niveles bastante razonables para un visionado decente. De cualquier forma lo mejor es que hagáis varias pruebas hasta dar con la combinación que más os satisfaga y funcione. También os comento que haciendo el proceso con jnxCustomizer 1.0.28 no me ha resultado  (vaya usted a saber por qué) y los JNX no se veían en BaseCamp, así que he trabajado con la versión 1.0.24.

Puede parecer un proceso algo complicado, pero os aseguro que la alternativa que conozco (usar aparte de jnxCustomizer, jnxmerge -para unir mapas- y JNXer -para rectificar niveles y la versión del JNX-) es aún peor, aunque JNXer me ha parecido un programa muy apañado y con bastante utilidad y tendríamos la ventaja de conseguir un JNX de mucho menos peso ya que jnxmerge no requiere el mismo número de teselas para unir los mapas con lo que los mapas topo constan de muy pocos mosaicos. Quizá en el próximo artículo os explique este otro sistema...
En la web de IOGREA, donde tenéis disponibles los JNX de toda España, también se explica el proceso que han seguido ellos, aunque parece que ese sistema se ha complicado bastante desde que las últimas versiones de MOBAC ya no traen acceso a los servidores con ortofotos. Probablemente no compense para nada elaborar uno mismo estos JNX teniéndolos en la web de IOGREA de toda España y por una simple donación simbólica (y seguro que mejor trabajados y mucho más maximizados en tamaño y rendimiento); pero entre la curiosidad de cómo hacerlos y que es bonito trastear, nació este tutorial.

Sólo nos resta pegar el nuevo JNX en la carpeta BirdsEye del dispositivo Garmin y arrancar BaseCamp para comprobar que todo ha salido bien. De nuevo os recuerdo que vuestras propias pruebas os llevarán a encontrar la combinación idónea (es muy posible que sea mejor bajar el zoom del topo50 a 2kms y el del topo25 a 800 metros, por ejemplo... O que queráis usar otro tipo de mapas, o más niveles, o menos...). Os dejo capturas:
Zoom a 3 kms mostrando el Topo50. Mapa cargado OSM España para BaseCamp.
Zoom a 300 metros mostrando el Topo25. Mapa cargado TopoHispania 2.04 para BaseCamp.
Zoom a 100 metros mostrando la ortofoto. Mapa cargado Topo España v5 PRO para BaseCamp.
Y, por supuesto, pasar el hipermapa JNX a un dispositivo Garmin real con firmware parcheado (yo trabajo con un pen drive emulando un Montana 650) para la última comprobación sobre el terreno. Ahí es donde comprobaréis cuales son los niveles de zoom que realmente van bien. Como datos específicos os diré que el JNX  de 3 niveles resultante de este artículo tiene una extensión de 19 kms cuadrados de terreno, 34353 teselas (11451x3), y exportado a una calidad de mosaico de 80, me ha salido con un peso de 200 megas. Usando el proceso con jnxmerge y JNXer se queda en la mitad.


12 comentarios:

  1. Me pongo manos a la obra.Primero he de conseguir los programas necesarios....................te cuento!!
    Un saludo y gracias por el tutorial

    ResponderEliminar
  2. Me he bajado el jnxcustomizer 1.0.24 desde tu web y no me salen las opciones para modificar el número nivel. El problema es que después de unir 3 jnx con la opción batch, aparecen todos con el nivel a 1 como el bug que mencionas en el artículo y no encuentro forma de modificarlo. El jnxcustomizer me sale así:

    http://i.imgur.com/XWJWdTJ.jpg

    ResponderEliminar
    Respuestas
    1. Vale, ya lo tengo. Hay que editar el fichero JNXCustom.ini del directorio jnxcustomizer y poner UserLevel=2

      Eliminar
    2. Jo pues me alegro un montón porque este sistema para mi ya es prehistórico desde que uso SASPlanet y me hubiera obligado a repasar todo para responderte, jaja... Saludos!!!

      Eliminar
  3. muy bueno el tutorial.
    pero es posible solo convertir un solo para en jnx para cargarlo en el gps? o es necesario tener varios archivos con los diferentes zoom?
    gracias

    ResponderEliminar
    Respuestas
    1. Gracias Laura. Por supuesto puedes hacerlo con un solo archivo y un solo zoom como dices, sin ningún problema.

      Eliminar
  4. Una preguntita que no tiene nada que ver con el sistema ya que yo también estoy usando SAS, tiene que ver con el paso de los jnx al dispositivo, se trata de un GPSMAP 64s y me viene con suscripción a BrdsEye por un año, el caso es que no quiero parchearlo para no perder la garantía...y lo curioso es que me deja descargarme jnx "oficiales" pero no me deja transferirle los custom, uso el proceso de pasarlos del virtual a mi colección y luego intento pasarlos al dispositivo y me dice que no tengo suscripción activa...alguna sugerencia???
    Muchas gracias!!!

    ResponderEliminar
    Respuestas
    1. Francisco, simplemente el dispositivo sin parchear solo permite ver los JNX oficiales (esos BirdsEye) y para poder ver los jnx custom o hechos pir uno mismo, hay que parchear el firmware. No tiene más vuelta.

      Eliminar
  5. OK, muchas gracias Javier, me estaba volviendo loco...creía que aceptaría cualquier jnx, una preguntilla abusando un poco, si lo parcheo podría volver a revertir por si ocurre algo para el tema de garantía??...gracias de nuevo!!

    ResponderEliminar
    Respuestas
    1. Si, reinstalas una versión oficial y el gps vuelve a quedar como estaba. En la web de iogrea tienes mucha info al respecto y firmwares ya preparados para cada modelo.

      Eliminar
  6. Hola Javier.
    Primero muchas gracias por tus post,son de gran utilidad para mi y seguro que para mucha gente.
    Lo segundo es que yo tengo un Garmin Monterra, con sistema operativo Android,y llevo semanas indagando y leyendo por todos lados la manera de parchear el firmware, y no encuentro la manera.(para poder ver mis jnx)
    Te agradecería mucho si sabes como hacerlo o alguien que pueda ayudarme.
    Muchas gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Hola!! Pues no puedo asegurártelo pero sino encuentras info por la web ni en la web de iogrea tienen firmware parcheado del Monterra, sospecho que al ser Android y por tanto distinto a los demás Garmin como bien dices, no exista la posibilidad de parchearlo, al menos hasta donde yo se... Si adivino otra cosa lo comento. Saludos!!

      Eliminar