He notado que, desde la página de Google Maps, puede obtener un enlace "insertar" para poner dentro de un iframe y cargar el mapa en un navegador. (no hay noticias aquí)Capturar imagen de mapa de google incrustada con Python sin usar un navegador
El tamaño de la imagen se puede ajustar para que sea muy grande, por lo que estoy interesado en obtener algunas imágenes grandes como archivos .PNG individuales.
Más específicamente, me gustaría definir un área rectangular desde un cuadro delimitador (coordenadas superior derecha e inferior izquierda), y obtener la imagen correspondiente, con un factor de zoom apropiado.
Pero mi pregunta es: ¿cómo puedo usar Python para obtener el "contenido de píxeles" de este mapa como un objeto de imagen?
(Mi razonamiento es: si el navegador puede obtener y representar dicho contenido de imagen, entonces Python también debería ser capaz de hacerlo).
EDIT: este es el contenido del archivo HTML que muestra mi mapa de ejemplo:
<iframe
width="2000"
height="1500"
frameborder="0"
scrolling="yes"
marginheight="0"
marginwidth="0"
src="http://maps.google.com.br/maps?hl=pt-BR&ll=-30.027489,-51.229248&spn=1.783415,2.745209&z=10&output=embed"/>
EDIT: Yo como se sugiere por Ned Batchelder, y leer el contenido de una llamada urllib.urlopen()
utilizando la dirección src
tomada del iframe de arriba. El resultado fue una gran cantidad de código de JavaScript, que creo que tiene que ver con la API de JavaScript de Google Maps. Por lo tanto, la pregunta persiste: ¿cómo podría hacer algunas cosas útiles de todo esto en Python para obtener la imagen del mapa?
EDIT: este enlace parece contener algo de información muy relevante sobre cómo Google Maps azulejos sus mapas: http://www.codeproject.com/KB/scrapbook/googlemap.aspx
también: http://econym.org.uk/gmap/howitworks.htm
¡Muy bien! Lo hice funcionar pero necesitaba hacer algunos pequeños cambios como aquí: https://gist.github.com/BenElgar/0d5b3e7cc89cb2180c6e. Tenga en cuenta que este es Python 2, pero no debería ser demasiado difícil hacerlo funcionar en Python 3. También tenga en cuenta que esto está rompiendo técnicamente los términos de uso de la API de mapas estáticos como se detalla aquí: https: // developers. google.com/maps/terms#section_10_1_3 –
Actualizado para Python 3: https://stackoverflow.com/a/47776466/5859283 – 4Oh4