miércoles, 18 de junio de 2008

Artículo: GMDT: Mapas y rutas a la carta sin wifi II



Hace tiempo dijimos la gran utilidad que puede tener Maps Offline. Pero evidentemente sin un sistema para poder descargar mapas a la carta y poder incluirlos posteriormente a nuestro dispositivo es un poco inutil.

Hace tiempo dije que colgaría un video mostrando el proceso de creación de un mapa de una ciudad completa, pero por tiempo y por ganas pues no ha sido así. No obstante creo que es algo bastante util para la mayoría, así que aunque sea en plan manual lo voy a explicar paso a paso.

La utilidad es doble. Por un lado podremos como he dicho meter un mapa completo de una región, y por medio de maps offile poder verlo y acceder a él sin necesidad de tener conexión. La segunda gran utilidad que muchos van a encontrar de interés, es la posibilidad de cargar mapas que no están en el servidor de google, pero que sí lo están en otros servidores. Luego aquellos que se encuentren en regiones por ahora discriminadas por google podrán tener sus mapitas.

Esto se puede combinar perfectamente con rutas personalizadas como las que crea la aplicación maps, y de este modo podemos tener en nuestro dispositivo mapas propios con sus rutas y consultarlas cuando queramos, hacer zoom... todo como si estuviesemos online. En el caso del iPhone sería posible usar también el posicionamiento por GSM, aunque no por WIFI en el caso del iPod Touch, esto es de cajon.

Sobre la opción del GPS en el iphone este método serviría solo a medias. El siguiente paso lógico sería preguntar: Pues cuando el iPhone 3G salga y fuera posible el JB, con estas aplicaciones podríamos tener los mapas de las zonas que quisiésemos y tener activado el GPS para una localización perfecta sin necesidad de comprar TomTom o similar. Si y no. Un GPS los únicos datos que recive son coordenadas geográficas de los satélites. Son los mapas que tenemos dentro de nuestro dispositivos los que a su vez tendrían que estar diseccionados por así decirlo en sus propias coordeadas. Este tipo de datos se llaman GeoData. El problema en españa es que los GeoData de españa no son públicos, y tener acceso a ellos requiere pagar. En EEUU por ejemplo no es así, y puedes descargar gratuitamente y sin problema los GeoData de todo el país. Con los mapas y los GeoData tendríamos un sistema GPS perfecto.

Quizás sea posible obtener los GeoData de otro modo, peto como digo, creo que ahora mismo en españa esto no es posible, que no quita que para muchos otros paises si que estén disponibles!!

Bueno, ya hemos explicado un poco todo esto y como vamos a trabajar. Así que lo que necesitamos antes que nada es una aplicación que nos permita tener acceso a una gran colección de mapas. Y por un casual la tenemos!! Vamos a usar Global Map Downlad Tool. Es una magnífica utilidad para descargar mapas de varios servidores y además nos permitirá convertirlos posteriormente para el iPhone e iPod Touch.

Es una aplicación creada para .NET con lo que será necesario tener instalado .NET Framework para poder usarla correctamente, yo aconsejaría tener instalado todas las versiones de .NET pero supongo que con la 2.0 sería suficiente.

Existe un pequeño problema de compatibilidad con Vista. Vista usa por defecto .NET Framework 3.5 y la aplicación no está compilada para 3.5, luego es posible que podamos observar algunos problemas con la aplicación.

Para descargar .Net Framework ->

3.0

http://www.microsoft.com/downloads/details.aspx?familyid=10CC340B-F857-4A14-83F5-25634C3BF043&displaylang=es

2.0

http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5

1.1

http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&displaylang=es


Personalmente en una máquina XP SP3 instalaría todos. Hay que tener en cuenta que uno no sobreescribe otro, sino que son complementarios.


Una vez estemos seguros de que tenemos .net framework instalado podemos instalar la aplicación:

AQUI

La aplicación la descomprimiremos en cualquier carpeta de trabajo y listo.

Una vez descomprimida ejecutamos Global Map Download Tool y nos encontraremos con algo como lo que tenemos al inicio de esta entrada. (Pulsar en la entrada si se desea ampliar)

Pese a lo complicado de la interfaz, en realidad es relativamente simple esta aplicación y con unos muy pocos pasos tendremos todo preparado.

1º. Lo primero será siempre seleccionar la base de datos de origen. A la izquierda del todo podemos observar que tenemos varias posibilidades:

a) Google Map: Terrain, Satellite o Hybrid. Lo cual se entiende perfectamente.
b) Micro$oft VirtualEarth: Sí, ya sabemos todos que MS tan solo se dedica a copiar ideas (al menos desde mi opinión) y no investiga ni innova nada. Pero bueno, es uan vuena alternativa allí donde Google no llega aun o algunas partes en las que las fotos satélite de MS son mejores.
c) USGS: Pertenece al ministerio de interior de EEUU. Puede ser una buena alternativa, sobre todo para EEUU.
d) ...

Bueno, no voy a ir describiendo cada una, todos los podeis ver en el panel de la izquierda.
La elección de uno a otro es importante. Primero porque muchas veces un proveedor no tiene los mapas que necesitamos, otras veces porque un proveedor particular ofrece mucha más calidad para una zona en concreto. Otras veces podemos encontrar también limitaciones en cuanto a descargas (más tarde hablaremos de esto). Lo mejor es jugar cada cual un poco con el programa y ver que tal. Personalmente los mejores resultados son evidentemente con Google Map y acudir a otro para zonas no cubiertas. Por principios no uso los de M$, pero esto es tan solo a modo personal.


2º. Una vez seleccionada la base de datos a usar, la página inicial nos cambiará y pasaremos a una especie de explorador incrustado en la misma aplicación. Es la forma de funcionar del programa para poder localizar facilmente la región a sacar. En mi caso como he dicho he usado Google Map, luego en mi pantalla tengo algo muy muy similar a la interfaz que tendría si acudiera a maps.google.com. Lo único que tengo que hacer es realizar una búsqueda normal y corriente. En mi caso tecleo: "Sevilla Spain" y enter. Inmediatamente el explorador incrustado me lleva al punto exacto:




3º. Ya tendremos más o menos localiza la zona que deseamos extraer, pero quizás no sea exactamente esa. Usando el botón Preview 1x podremos ir viendo si la zona es exactamente la que deseamos. Si no es exactamente la que queramos, cerramos la preview y con el pan (la manita) centramos un poco mejor la zona. De nuevo le damos a preview a ver si ahora es la que deseamos. Muchas veces esto es un poco impreciso, ya que el preview no se ajusta exactamente a lo que tenemos en pantalla. La preview es la que tenemos que atender siempre. En mi caso tambien he seleccionado la opción Hibrid para que al extraer los mapas tambien me saque el callejero. Ojo que esta opción NO me permitirá conmutar una una vez en la aplicación map entre calles o solo satélite!! esto es posible hacerlo tambien (luego lo explicaré), pero para ahorrarme consumo en Megas, prefiero sacar tan solo un mapa con el callejero integrado. Yo he delimitado la zona para sevilla, de tal forma que tambien se incluyan algunos alrededores, y por supuesto mi localidad, DH. Recordar que en el mapa podemos hacer tambien zoom a una zona más concreta si así lo deseamos y el mapa será mucho menor en tamaño, mucho más rapido en descargarse etc... pero puestos a hacerlo, yo lo hago todo a lo grande, así que sacaré un buen mapa ;). Aunque no se encuentra aun en mi captura, es necesario establecer un directorio de trabajo donde se guardará nuestro mapa. Dicha opción está en medio prácticamente de la aplicacion. Tendremos que darle a "Set Dir" y seleccionar el directorio que deseemos.


4º. Llegado a este punto tendremos ya delimitada la zona perfectamente. Una vez estemos a gusto con la zona a extraer le daremos al botón superior derecho: "Download The Map". Al darle a dicho botón nos aparecerá una nueva ventana la mar de curiosa. En ella podremos seleccionar el nivel de Zoom (o profundidad) que deseemos. A lo mejor tan solo deseamos un Zoom X1 o X2 para tener un mapa genérico de la zona sin mucho detalle. O a lo mejor por el contrario deseamos una zona muy detallada y deseamos todos los niveles de profundidad.

Por otro lado también nos permite seleccionar el sector que deseemos. Ya sé que hemos delimitado la zona anteriormente, pero esto puede ser una zona muy grande. Marcando o desmarcando los sectores haremos que estén luego disponibles para nosotros. Es una forma muy eficiente de eliminar los sectores que no vamos a usar y así ahorrar muchísimos Megas de espacio. La Captura sacada en mi caso no se corresponde con los sectores que he extraido, en ella se encuentran todos marcados, en cambio mi mapa extraido hay muchos sectores que no están incluidos. A fin de cuentas hay "zonas muertas" en las que no tengo ningún interés en ellas o alguna población menor alejada que tampoco me interesa. Todo ello hace a lo mejor que mi mapa final sea la mitad de lo que sería originalmente:


Una vez terminemos de seleccionar o deselecionar los sectores deseados, tan solo nos quedará darle al botón superior en la ventana de los sectores: "Uncheck any tittles...." Nada más presionar el botón, comenzará la descarga del mapa. Esto puede ser un proceso largo, dependiendo de lo grande que sea nuestro mapa fabricado, del nivel de profundidad de cada sector, de los sectores...


5º. En quito lugar tenemos la descarga. En cuanto presionemos el botón citado comenzará el proceso de descarga. En teoría no tendremos que hacer nada más hasta que la descarga termine. Arriba a la derecha aparecerá el estado de descarga, el sector que se está descargando, los sectores totales, los sectores ya descargados. Aquí hay una pequeña limitación lógica, al menos para Google, y posiblemente para otros también. Google para evitar la saturación de sus servidores impone un máximo de ancho de banda por IP en un determinado tiempo. Con esta medida de proteccion Google evita precisamente que hagamos esto. No es que el límite sea muy escueto, para nada, es bastante amplio. Pero evidentemente estamos descargando de golpe zonas completas!! y es bastante posible (dependiendo del tamaño de la zona) que el servidor corte el grifo. Si esto ocurre el programa nos lanzará un error y la opción de darle a aceptar. Si le damos a aceptar intentará descargar el sector siguiente. El problema es que si nos aparece este error, sabremos que Google ha baneado temporalmente nusetra IP, y lo que nos queda son dos opciones:

a) Esperar que google la desbanee, supongo que esto sucedería en media hora quizás unas horas
b) Si tenemos una IP dinámica con desconectar y conectar de nuevo a nuestro ISP sería suficiente para tener una IP nueva, y con darle a aceptar al cartelito que nos lanzó el error es suficiente para continuar la descarga
c) Para quien tenga una IP estática la única posibilidad si no quiere esperar es usar servidores proxys. El problema es que estos suelen ser relativamente lentos. Pero también es verdad que tenemos cientos o miles de servidores, es cuestion de encontrar uno decente.

Hay q tener presente que este procedimiento es posible que tengamos que repetirlo más de una vez o no, como digo, depende del tamaño de la región que estemos creando.

En mi caso he tenido que hacer un cambio de IP unas 5 veces:


Si nos fiajos como he dicho arriba a la derecha veremos el porcentaje descargado. Al terminar de descargar todo el mapa, si ocurrió algun error en la descarga de algún sector nos preguntará si deseamos volver a descargar los trozos erroneos.


6º. Una vez descargado todo el mapa, tan solo nos quedará convertirlo para que nuestro dispositivo sea capaz de leerlo en el formato que usa. La misma aplicación nos deja hacerlo de manera automática, casi tan facil como presionar un botón.

Sabremos que la descarga a terminado además porque nos aparecerá un mensaje diciendo lo propio. Hay que tener en cuenta que en cuanto termine de descargar todo tardará un poco en reensamblarlo todo. Cuando aceptemos el cartelito de mapa descargado tendremos que darle al botón ->Iphone:


Lo normal es que nos aparezca en la primera linea el directorio de trabajo. Si lo dejásemos así, nos crearía en nuestro dispositivo el mapa en la sección de callejero. Como el mapa que yo he creado es híbrido lo pongo en híbrido. Tambien se debe de seleccionar la carpeta de destino donde se generará el resultado final.

Una vez acabado todo, le daremos para finalizar del todo a Process.

Hay que tener en cuenta que el proceso puede tardar un poco en la conversión. Es cuestión de esperar hasta que se termine toda la conversión. Cuando la conversión acabe completamente, se habrá generado un archivo que será el que subiremos a nuestro dispositivo para ser usado por MapsOffiline.

Recordar que en la versión más actual del MapsOffline, el archivo habría que introducirlo en:

/private/var/mobile/Library/MapsOffline/Cache

Al acabar tan solo tenemos que recuperar el archivo creado y listo. En mi caso el archivo final ha sido de 260MB y tengo incluido todo sevilla capital y unas 5 localidades.


Un saludo y hasta otra.

26 comentarios:

Pepe dijo...

Hola Theliel, cuando voy a convertir el mapa a formato iPhone me da un error: Did: Failed:Map 00:00:01.8906250 no tengo ni idea de por qué puede ser.

Saludos.

Pepe dijo...
Este comentario ha sido eliminado por el autor.
Pepe dijo...
Este comentario ha sido eliminado por el autor.
barbolax dijo...

Enrme Theliel, ahora mismo estoy con ello. Se ha quedado parado al 92% de descarga, como dices esperare y terminare de descargarlo para pasarlo al iTouch.

GRacias y Salu2!!

Theliel dijo...

Jose, el error te lo tira nada más darle al botón o al darle ya a convertir o al rato de estar convirtiendo?

Barbolax, si se te ha quedado al 92 y te ha tirado el cartetilo del error, es eso casi seguro. Si no puedes cambiar de IP, espera un rato y le das a aceptar después. Se que es un coñazo, pero no hay otra :)

Pepe dijo...

Me da a los dos segundos de darle al boton de convertir, es casi instantaneo.

Theliel dijo...

Es raro, pero la experiencia es madre de la ciencia, y por lo que me estás diciendo:

1º. La carpeta de trabajo y la carpeta destino son simples? intenta no aninar la ruta, para que sea simple

2º. Seguro que estás seleccionando una carpeta origen valida y una destino validad

3º. Asegúrate que no hay acentos ni caracteres que podrían hacer que fallara

Pepe dijo...

Los directorios son simples, como en tu ejemplo, y me da el error.

Theliel dijo...

No lo sé entonces José. No es una app que haya creado yo, con lo que tan solo puedo imaginar.

Lo primero sería probar en otor PC por si el problema ha sido de net framework o algun problemilla en tu pc.

Y esperar q así funcione, puesto que no veo dnd podría estar el problema a priori.

Pepe dijo...

Hay alguna forma de crear archivos de búsqueda?

barbolax dijo...

Una vez creado el mapa y pasado al iTouch, como se carga desde la aplicacion??

La propia aplicacion nos permite guardar los mapas? Los cargas con wifi y los guardas, luego no se pueden cargar?? No es mas simple??

Salu2!!

Theliel dijo...

José, busquedas como
barbolax, un vez creado el mapa lo metes en la ruta pertinente, y con la app mapsoffline seleccionas el mapa q quieras y listo

Pepe dijo...

Con búsquedas me refiero a una vez que tengo cargado el mapa, por ejemplo, buscar una calle en el mismo.

Theliel dijo...

es posible hacerlo. pero para hacerlo necesitas cargar en mapsoffile anteriormente los datos de las calles. Si entras en mapsoffline puedes descargar algunas ciudades ya, sino, tendrás q crear tu el archivo de calles. en la pag official de maps offline dice como hacerlo :)

cooko dijo...

hola!
en la carpeta generada por GMDT hay dos archivos, meto el del mapa en MapsOffline/Cache, y cuando le pido que restaure el cache aparentemente lo hace, pero al momento de abrir Maps no aparece nada.. cual crees que sea mi error?
(incluso esto me pasa con mapas grabados del mismo ipod)

Raul dijo...

hola theliel..
habria alguna posibilidad de que me pasaras ese mapa? :)
Es que da la casualidad de que soy de montequinto y no me vendria nada mal tenerlo jeje :) ..
Aunque si son 250mb lo veo complicado no? :_(

Theliel dijo...

Cooko, ten la precaución inicial al menos de estar en maps en la misma zona, para descartar otros posibles problemas

Tb puede ser problema de permisos y que la carpeta que usa mapsoffile no tenga permisos de lectura correctamente.

canogt, no me importaría enviartelo, pero como bien has dicho pesa un poquito... y mi línea no es que sea lo mejor del mundo. Tardaría muchísimo enviartelo a donde fuera y tampoco tengo alojamiento web como para subir archivos de 250Mb.. Me temo que tendrás que hacerlo tu.

Raul dijo...

Bueno gracias de todas formas,
esta tarde intentare seguir lo pasos desde casa.
Un saludo!

cooko dijo...

Theliel..
no entiendo el primer comentario, quieres decir que cuando tenga wiFi
tengo que situar el mapa en la zona que quiera ver?
.. los permisos que le doy a mapsoffline son 755, pero nada..
gracias y saludos.

cooko dijo...

tenias razon!!
habia que situarse en el mapa cuando se tiene wifi (gran detalle)..
pero eso significa que solo puedes ver un mapa a la vez?
(lo digo porque voy a hacer un viaje por varias ciudades y me interesaba poder accesar a los diferentes mapas sin wifi)
muchas gracias! ya pensaba que no me funcionaba la app..
saludos.

Theliel dijo...

exactamente, a eso me refiero

cooko dijo...

Theliel,

encontre la forma de ver todos lo mapas que me interesan (sin wifi)..
funciona como layers..

en mi layer (mapa) principal puse todas las ciudades que me interesaba ver (en mi caso, cubre varios paises), sin wifi ubico la ciudad que quiero ver y luego cargo el cache de ésta (que está en otro archivo) y hago zoom-in..

cuando quiero cambiar de ciudad, cargo el cache del layer principal, hago zoom-out y me ubico en la que me interesa, etc..

de esta forma puedo tener mapas de ciudades separadas, conectadas por un mapa principal el cual me ocupa muy poco espacio (2mb en mi caso) y solo me sirve para moverme de un mapa a otro..

saludos

Esteban Garcia dijo...

Solucion a casi todos los errores, borra los archivos GPSFS del directorio de donde casrgaste las imagenes..., y ponle download denuevo, como las imagenes ya las tienes el porceso sera bastante corto y generara unos nuevos FPSFS files y listo..., asi yo solucione el error que me puso

Esteban Garcia dijo...

se me olvidaba ademas..., yo elegi la opcion google maps hibrid y como tengo ip fija por ende me blokeo a cada momento la ip llegue a utilizar como 20 proxis y llegue hasta el 8% de la descarga..., asique opte por probar el de microsoft y no me blokeo la ip en ningun momento, fue continuo

Theliel dijo...

se q google banea las IPs temporalmente, no se la política de MS al respecto sinceramente.

Anónimo dijo...

Hola Theliel,

el archivo xml que me he bajado de mapsoffline, en qué carpeta tengo que ponerlo?

Muchas gracias!

 
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.