Detalles de la API de Google Maps Static

Supongo que muchos ya habréis leído por diversos blogs la liberación de la API de Google Maps Static, si además estáis interesados ya habréis podido ver que la API solo nos deja introducir el punto central del mapa, y el zoom para obtener las imágenes, aparte de alguna que otra cosilla más.

Pero ya que Google nos brinda una herramienta en principio tan interesante como esa es una pena que no nos deje crear mapas de no mas de 512×512 pixels, pero con un poco de ingenio podríamos juntar varias imágenes para crear un “mega mapa”.

La complicación que encontramos aquí es la de saber cuanto se desplaza la imagen en la longitud y la latitud dependiendo del zoom. Qué yo sepa no hay forma sencilla de obtener estos datos, por lo que debemos tirar del gran método científico del acierto y del error.

Haciendo algunas pruebas pudo conseguir ya algunos datos, muy poquitos pero suficientes para hacer algunas pruebas. Para un zoom de 17 las variaciones son de:

Longitud: 0.005494
Latitud: 0.004168

Aquí os dejo un buen ejemplo para que veáis el código:

HTML generado, PHP utilizado

Lo suyo sería poder unir estas imágenes en un JPG o PDF, si estás cacharreando, ¿has obtenidos más datos para zooms distintos?

Edito:

Qué tonto, creo que tirando de la API de Google Maps habitual y un poco de javascript puedo sacar estos datos rápidamente, a ver is me da tiempo de hacerlo hoy.

Edito:

Si la relación entre zoom, pixels y geocode es la misma en el modo estático como en la dinámica ya tengo el modo de sacarlo, pero creo que tendré que esperar a mañana para mostrároslo :P

Rectifico:

Imposible, el método que uso no sirve, por lo visto esta relación varia dependiendo del punto geográfico, así que habrá que buscar otro método si quiero empapelar las paredes de mi casa :P

4 comentarios ↓

#1 LCoronelP on 03.22.08 at 5:47 pm

Amigo, te recomiendo que corras poco y luego hagas el stitch con algun programa simple, (o usa algun algoritmo de búsqueda de pixeles en el PHP con el GD2) y ve creando tu mega imagen, yo hice asi para extraer todo el plano a muy alta resolución (lease unos 50.000 px por lado) de mi univ… saludos amigo!

#2 Ceritium on 03.23.08 at 7:38 am

Gracias pero mi intención no era hackear google, mi idea era aprovechar la api, pero para grandes extensiones he visto que mi método no sirve, sin embargo para sacar zonas pequeñas como el área de tu universidad si que puede servir.

#3 jose on 04.17.08 at 5:00 pm

Hola!

Lo que te pasa es que la realacion entre grados y pixeles no es la misma en todas las partes del mundo. Esto es porque la tierra es redonda y se proyecta en un mapa plano. La proyeccion que usa Gmaps se llama mercator. Simplemente necesitas una funcion de conversion de lat&lng a pixeles. La api de Gmaps tiene una funcion asi imcorporada pero si buscas un poco encontraras rapido implementaciones de proyeccion mercator en la web.

el problema que te encontraras al pegar varias imagenes de la api estatica es que el logo y el texto de copyright aparecera varias veces en la imagen final, en vez de solo una :(

un saludo!

#4 Ceritium on 04.17.08 at 11:13 pm

Gracias Jose, muy interesante tu aportación, lo del logo es verdad, pero bueno para hacerme un poster tampoco es importante :P

Leave a Comment