2012-05-16 13 views
6

Quiero crear un mapa con varios puntos dados en Python. Para esto quiero usar Basemap de matplotlib. Funciona bien, pero no sé cómo obtener un mapa de fondo adecuado.Cómo dibujar un png-osm-map con las coordenadas

¿Cómo puedo importar un mapa OSM? ¿O debería usar un paquete de mapeo diferente? Solo quiero crear un mapa de trama y guardarlo como png.

+0

Duplicado: http://stackoverflow.com/questions/9482335/draw-a-map-with-gps-markers-and-save-this-image-to-file/9485409#9485409 – ChrisP

+1

Pero la entrada del blog está vinculada solo describe una solución que me obliga a combinar dos imágenes (mapa y puntos) por photoshop/gimp, necesito una solución totalmente automatizada – teGuy

+0

teGuy ... publique su solución (con el mayor detalle posible) como respuesta ... luego acéptalo. Es más que correcto contestar sus propias preguntas: http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/ – Yann

Respuesta

2

Esta no es mi solución; Lo he pegado de la pregunta porque el que pregunta no tiene la reputación suficiente para responder a su propia pregunta.

he encontrado una solución:

Usando imshow dentro del mapa base incluye un png en la trama de imagen fondo. Para obtener la imagen de fondo a la derecha, he utilizado la export feature of OSM con límites tomadas del constructor de mapa base :

m = Basemap(llcrnrlon=7.4319, urcrnrlat=52.0632, urcrnrlon=7.848, llcrnrlat=51.8495, 
     resolution='h', projection='merc') 

im = plt.imread('background.png') 
m.imshow(im, interpolation='lanczos', origin='upper') 
2

He encontrado algunas imágenes de mapa base accesible desde la NASA GIBS tileserver. Es posible que pueda usar el mismo método para otros servidores de mosaico.

http://earthdata.nasa.gov/wiki/main/index.php/GIBS_Supported_Clients#Script-level_access_to_imagery

Thi Usos gdal_translate de GDAL en un subnivel pitón:

import subprocess 
import matplotlib.pyplot 
import mpl_toolkits.basemap 

l,u,r,d=(7.4319,52.0632,7.848,51.8495) 

subprocess.call ('gdal_translate -of GTiff -outsize 400 400 -projwin {l} {u} {r} {d} TERRA.xml Background.tif'.format(l=l,u=u,r=r,d=d),shell=True) 

im=matplotlib.pyplot.imread('Background.tif') 

m = mpl_toolkits.basemap.Basemap(llcrnrlon=l, urcrnrlat=u, urcrnrlon=r, llcrnrlat=d, 
    resolution='h', projection='merc') 
m.imshow(im, interpolation='lanczos', origin='upper') 

matplotlib.pyplot.show() 

Esto necesita el archivo TERRA.xml desde el enlace anterior, aunque se puede inline XML también.

Cuestiones relacionadas