Mapa de países visitados com diferentes projeções de mapa

8

Existem alguns sites, onde você pode criar um mapa dos países que você visitou, por exemplo, http://www.amcharts.com/visited_countries . Eu acho que isso seria uma coisa legal para adicionar ao meu blog de viagens. No entanto, todas as páginas que pude encontrar, usam uma projeção Mercator para o mapa, das quais não gosto particularmente. Fiquei me perguntando, se alguém sabe como criar esse tipo de mapa para diferentes projeções de mapas (como Hobo-Dyer ou Gall-Peters).

Martin
fonte
2
Ah, Gall-Peters, a projeção de escolha, se você precisar usar uma projeção de área igual, mas deseja evitar uma que distorça visivelmente a Europa Central. E Hobo-Dyer é o mesmo, mas favorece as latitudes dos Estados Unidos continentais, em vez da Europa.
hmakholm deixou Monica em
11
Se você quiser criar um para si mesmo, pode fazer o download da imagem de contorno livre do hobo dyer em odt.org/Pictures/hdpoutlinelarge.jpg
skv

Respostas:

5

Eu sugeriria usar algo como python + matplotlib e sua biblioteca de mapas base.

O Mapa base oferece uma ampla variedade de projeções (veja aqui ) e, em seguida, você pode plotar seus lugares em que esteve no mapa. Isso pode ser salvo em uma variedade de formatos para postagem em seu blog ou você pode usar algo como plot.ly para produzi-los online. Um bom exemplo em um notebook iPython , (mas usando as temperaturas globais), está aqui com boas explicações de como isso foi feito.

Um exemplo do código necessário para fazer uma projeção (com um único ponto):

from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
width = 28000000; lon_0 = -105; lat_0 = 40  # Change the origin lat/long here
m = Basemap(width=width,height=width,projection='aeqd', # Change projection here
            lat_0=lat_0,lon_0=lon_0)
# fill background.
m.drawmapboundary(fill_color='aqua')
# draw coasts and fill continents.
m.drawcoastlines(linewidth=0.5)
m.fillcontinents(color='coral',lake_color='aqua')
# 20 degree graticule.
m.drawparallels(np.arange(-80,81,20))
m.drawmeridians(np.arange(-180,180,20))
# draw a black dot at the center.
xpt, ypt = m(lon_0, lat_0)
m.plot([xpt],[ypt],'ko')
# draw the title.
plt.title('Azimuthal Equidistant Projection')
plt.show()

Os resultados: ARP de exemplo Depois de configurar o processo básico, você pode alterar a projeção ou o centro da projeção em segundos.

Projeções disponíveis:

Projeção Equidistante Azimutal, Projeção Gnomônica, Projeção Ortográfica, Projeção Geoestacionária, Projeção em Perspectiva Lateral, Projeção Mollweide, Projeção de Martelo, Projeção Robinson, Projeção Eckert IV, Projeção Kavrayskiy VII, Quartic Polar Plana McBryde-Thomas, Projeção Sinusoidal, Projeção Equidistante Projeção Cassini, Projeção Mercator, Projeção Mercator Transversal, Projeção Mercator Oblíqua, Projeção Policônica, Projeção Cilíndrica de Miller, Projeção Estereográfica Gall, Projeção Cilíndrica de Área Igual, Projeção Conformal de Lambert, Projeção de Área Igual Azimutal de Lambert, Projeção Estereográfica, Projeção Cônica Equidistante Projeção de área, Projeção estereográfica polar, Projeção azimutal de Lambert polar, Projeção equidistante azimutal polar,Projeção van der Grinten

Todas as ferramentas acima são totalmente gratuitas, como gratuitamente e sem ferramentas de código aberto.

Steve Barnes
fonte
Épico, e eu votei com voto positivo, mas um não programador terá problemas com isso: /
Mark Mayo
@MarkMayo - Python é gratuito, fácil de começar, rápido para começar a aprender, tem lotes de exemplos on-line, pode ser viciante e há um monte de muito útil pessoas lá fora.
Steve Barnes
11
Claro, eu sei disso (eu tive contratos em python), mas para muitas pessoas, qualquer programação é assustadora :( No entanto, para quem está lendo isso, Python é uma linguagem divertida e relativamente fácil de aprender . :)
Mark Mayo