Карта відвіданих країн із різними прогнозами на карті


8

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


2
Ах, Галл-Петерс, прогноз вибору, якщо вам доведеться використовувати проекцію на рівну площу, але хочете уникнути тієї, яка помітно спотворює центральну Європу. І Hobo-Dyer такий же, але надає перевагу широтам континентальних Сполучених Штатів, а не Європі.
Геннінг Макгольм

1
Якщо ви хочете , щоб зробити один для себе ви можете завантажити бродяга Дайер безкоштовно контур зображення на odt.org/Pictures/hdpoutlinelarge.jpg
SKV

Відповіді:


5

Я б запропонував використовувати щось на зразок python + matplotlib і це бібліотека базових карт.

Basemap пропонує широкий спектр проекцій, (див. Тут ), і ви зможете побудувати на карті свої місця, в яких ви побували. Потім їх можна зберегти в різних форматах для публікації у своєму блозі або ви можете використовувати щось на зразок 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, проекція Каврайського VII, плоска полярна квартична, синусоїдальна проекція, рівномірна циліндрична проекція, рівномірна циліндрична проекція Проекція Кассіні, проекція Меркатора, поперечна проекція Меркатора, косою проекцією Меркатора, поліконічна проекція, циліндрична проекція Міллера, стереографічна проекція Голла, циліндріальна проекція на рівну площу, конформальна проекція Ламберта, Ламберт Азимутальна проекція рівних площ, стереографічна проекція, рівномірна конічна проекція, альбер Площа проекція, Полярна стереографічна проекція, Полярна проекція Ламберта Азимутальна, Полярна азимутальна проекція на рівномірну відстань,van der Grinten Projection

Усі перераховані вище інструменти є абсолютно безкоштовними, як безкоштовно, так і як у необмежених інструментах з відкритим кодом.


Epic, і я підтримав, але непрограміст зіткнеться з цим: /
Марк Майо

@MarkMayo - Python вільно, легко почати, швидко почати вчитися, має багато онлайн - прикладів, може бути звикання і є багато з дуже корисних людей там.
Стів Барнс

1
Звичайно, я знаю це (у мене були контракти на python), але для багатьох людей будь-яке програмування страшно :( Однак для тих, хто читає це, Python - це забавна, відносно проста мова для вивчення . :)
Марк Майо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.