Ultimo Comic

TIRA 34 : Santa Inquisición

TIRA 34 : Santa Inquisición

Contenido

GoogleMaps al descubierto

2007 - 03 -24

Como ya dije me ha tocado investigar bastante acerca del funcionamiento de tan ¿magnífica? herramienta, y es que como visor de mapas es aceptable, pero no la mejor opción. Hay programas de escritorio (y de pago claro) que te permiten hacer muchas más virguerías, trazar rutas, calcular distancias, áreas, meterle mapas propios,… en cierta medida todo eso es posible con GoogleMaps (a partir de ahora y para acortar GM) a través de diferentes aplicaciones pero no todas juntas. A lo que iba, que me voy por las ramas, hablemos del funcionamiento de GM.

GM tiene dos posibles “pieles”, la imagen del callejero y la vista de satélite, y aunque parezca extraño cada una tiene un sistema diferente de posicionamiento en el mapa, desde mi punto de vista el del satélite es por mucho mejor que el del callejero. Pero vayamos poco a poco.

Proyección, como representar la esfera en un plano
Cojan una pelota e intente cubrirla por completo con una hoja de papel cuadrada o rectangular, no podrán. GM utiliza la proyección Mercator (linkazo en inglés porque la página en español apesta). No deben de saber mucho más acerca de la proyección, sería un rollo infumable para muchos de vosotros, aunque a mí personalmente me gustó bastante. Con la proyección de Mercator la tierra se deforma, y bastante, pero es la que se usa generalmente en los mapas que todos hemos tenido que hacer en el colegio. Lo que es el Polo Norte (como punto) llega a ocupar toda la línea superior del mapa (pasamos de un punto a una recta) de igual forma la Antártida parece enorme cuando no lo es tanto y conforme nos vamos alejando del ecuador deformamos más la superficie terrestre.


Zoom y “Tiles”

Un tile se traduce como “baldosa” cuando se habla de imágenes (por ejemplo los mapas de los juegos) y se dice que está formada por tiles, es que no es una gran imagen, si no que son mucha pequeñas. Esto por supuesto ofrece infinitas ventajas a la hora de ahorrar recursos (la memoria RAM), imagen tener que leer el Quijote de una sentada, todo seguida (una sola imagen grande) en vez de poder ir capítulo a capítulo (tiles o imágenes pequeñas). Cada tile o cuadro en GM mide 256×256 pixels, qué es un pixel ya si que no lo voy a explicar, y están en formato PNG.

En total hay 18 posibles niveles de zoom, desde el 17 (el más alejado, vista del globo entero) al 0 (zoom máximo, vista de calle) , tanto para el callejero como para el satélite. En el zoom 17 encontramos un sólo tile de 256×256 que cubre toda la tierra, en el nivel 16 encontramos 4 tiles, en el 15 son 16 tiles, y en el 0 son 2^34 (17.179.869.184 tiles - 17 mil millones de imágenes). Además disponen de 8 servidores (4 para cada piel) que facilitan las imágenes necsarias a los usuarios.

Así que dada una longitud y una latitud es relativamente sencillo calcular el número de mapa correspondiente según el nivel, pero como los americanos son americanos y no pueden estar sin joderla, han cambiado el punto (0.0) de la Tierra a otra posición más chula. Actualmente el (0,0) lo encontramos en la intersección del meridiano de Greenwich con el ecuador, si no recuerdo mal es por la zona de Nigeria, un poquito más abajo, en el mar. Pues el tio Sam ha a puesto “nuestro” (0,0) en mitad de su gran mapa de conquista mundial, con lo que el “nuevo cero” está en la esquina superior izquierda del mapa (en el océano ártico, por la parte de arriba de Alaska), siguiendo la disposición del cuarto cuadrante (la que usan los americanos en el dibujo diédrico) o la que se utiliza en informática.

Con estos datos ya habrá quién sea capaz de montarse un mini-script en casi cualquier lenguaje que le permita descargar fotos a cascoporro. He de comentar que la latitud necesita un par de ajustes. Al principio noté un pequeño error, traté de solucionarlo de una manera lineal y nada, luego con un error cuadrático y se aproximaba bastante a lo que me debía dar pero no estaba tranquilo y seguí buscando por internet. Finalmente encontré una clase en PHP que funciona a la perfección, la pongo aquí en descarga junto con un ejemplo de uso (pero es que es demasiado fácil de entender). El script de descarga no lo pongo, según dicen por ahí, y es que no lo he leido personalmente; incumples la licencia de uso de GoogleMaps si te dedicas a descargar las fotos, de todas formas es sencillo, dos FOR’s anidados y poco más. Lo que si os puedo dar es un consejillo, no hagan su aplicación multihilo, bájenlas de una en una o GM les cerrará el grifo. Ya que siendo multihilo (bajándose varias imágenes a la vez) es más fácil de detectar como que le están robando. Si quieren saber la url exacta de donde bajarse las imágenes, el caché de su navegador será su amigo.
Callejero
La piel de callejero guarda los tiles de forma numérica y ordenada, cada tile tiene tres valores : x,y,z (la z es el nivel de zoom) y que de un nivel a otro de zoom varian completamente. Imaginemos el nivel 2 de zoom, en el que la tierra está dividida en 4 trozos (2×2) , el trozo (2,1,2) sería la parte de europa/asia, en cambio en un zoom más cercano (2,1,3) sería la parte de Canadá oriental, nada que ver una cosa con la otra.

Satélite
Las imágenes del satélite están ordenadas de una manera mucho más interesante, a través de una cadena de texto. La longitud de la cadena otorga el nivel del zoom y la idea es dividir cada tile en cuadro trozos, y cada trozo en otros cuatro y así recursivamente. A cada trozo se le adjudica una letra como en la imagen siguiente, y todas las cadenas empiezan por “t”. De esta forma si tqssrrrssqrqtsqrsrt es tu calle, tqssrrrssqrqtsqrsr serán las calles vecinas y tqssrrrssqrqtsqrs el barrio. Personalmente me parece una forma bastante elegante de posicionarse en el mapa.

Y hasta aquí más o menos todo lo que sé de GoogleMaps, por el momento el proyectito del GPS en la Nintendo DS va bastante bien, tengo las funciones de conversión, las de dibujo (muy básicas),… sólo me falta recibir la DSerial para probarlo realmente.

Un comentario en “GoogleMaps al descubierto”

Gravatar de » Resumen del 2007 - theNinjaBunny.blog

» Resumen del 2007 - theNinjaBunny.blog
31 de December de 2007 a las 12:20    

[…] sobre GoogleMaps y explicaba su funcionamiento, aunque a nadie pareció […]

Deja tu comentario...

[Volver arriba]