Карта посещенных стран с различными проекциями карты

8

Существует несколько веб-сайтов, на которых вы можете создать карту стран, которые вы посетили, например, http://www.amcharts.com/visited_countries . Я думаю, это было бы здорово добавить в мой блог о путешествиях. Однако, все страницы, которые я мог найти, используют проекцию Меркатора для карты, которая мне не особенно нравится. Мне было интересно, если кто-нибудь знает способ создания таких карт для различных проекций карт (например, Hobo-Dyer или Gall-Peters).

Мартин
источник
2
Ах, Галл-Питерс, проекция выбора, если вам нужно использовать проекцию равной площади, но вы хотите избежать проекции, которая заметно искажает Центральную Европу. И Хобо-Дайер такой же, но предпочитает широты континентальной части США, а не Европе.
Хмакхольм покинул Монику
1
Если вы хотите сделать его для себя, вы можете скачать бесплатное контурное изображение hobo dyer по
skv

Ответы:

5

Я бы предложил использовать что-то вроде python + matplotlib и его библиотеки базовых карт .

Базовая карта предлагает широкий спектр проекций (см. Здесь ), и вы можете затем нанести на карту свои места, где вы были. Затем его можно сохранить в различных форматах для публикации в своем блоге или использовать что-то вроде plot.ly для их создания в Интернете. Хороший пример в записной книжке iPython (но с использованием глобальных температур) приведен здесь с хорошими объяснениями того, как это было сделано.

Пример кода, необходимого для создания проекции (с одной точкой):

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()

Результаты: Пример ARP После настройки базового процесса вы можете изменить проекцию или центр проекции за считанные секунды.

Доступные прогнозы:

Азимутальная эквидистантная проекция, Гномоническая проекция, Ортографическая проекция, Геостационарная проекция, Ближневосточная проекция, Проекция Молвейде, Проекция Молота, Проекция Робинсона, Проекция Эккерта IV, Плоская полярная проекция Каврейского, Квартальная проекция Макбрайда-Томаса, Синусоидальная проекция, Синусоидальная проекция, Синусоидальная проекция, Синусоидальная проекция Проекция Кассини, проекция Меркатора, поперечная проекция Меркатора, косая проекция Меркатора, поликоническая проекция, цилиндрическая проекция Миллера, стереографическая проекция Галла, цилиндрическая проекция на равные области, конформная проекция Ламберта, азимутальная проекция на равные площади Ламберта, стереографическая проекция, эквидистантная коническая проекция, альбидекция конической проекции Пространственная проекция, Полярная стереографическая проекция, Полярная азимутальная проекция Ламберта, Полярная азимутальная эквидистантная проекция,проекция Ван дер Гринтена

Все вышеперечисленные инструменты абсолютно бесплатны, как в бесплатных инструментах с открытым исходным кодом.

Стив Барнс
источник
Epic, и я проголосовал, но непрограммист будет иметь проблемы с этим: /
Марк Мейо
@MarkMayo - Python свободно, легко начать, быстро начать учиться, имеет много онлайн - примеров, может быть привыкание и есть много из очень полезных людей там.
Стив Барнс
1
конечно, я знаю это (у меня были контракты на Python), но для многих людей любое программирование пугает :( Однако для любого, кто читает это, Python - забавный, относительно простой для изучения язык . :)
Марк Майо