картографическая карта страны со ссылками на области в формате html

Я следовал инструкциям пользователя pelson, чтобы создать карту с заполненными фигурами страны. (Заполните страны в базовой карте Python)

Теперь мне было любопытно сделать еще один шаг вперед и создать такой html-сайт: http://www.ethnologue.com/region/NEU Мне нужны не эти модные всплывающие окна, а эти ссылки (http://www.w3schools.com/tags/att_area_href.asp) для любой страны. Можно ли создать эти списки координат с помощью картографии? Я ищу полностью автоматический скрипт, генерирующий статический файл HTML.


person rad0n    schedule 22.08.2013    source источник


Ответы (1)


Да, это определенно возможно, но если вы создаете веб-карты, возможно, стоит взглянуть на D3.js (в частности, для карт см. Этот отличный учебник http://bost.ocks.org/mike/map/).

Однако для cartopy я расскажу об этом шаг за шагом, так как это хорошее пошаговое руководство по системе преобразования в matplotlib и cartopy.

Во-первых, мы можем получить пиксельную координату любой точки на фигуре:

import matplotlib.pyplot as plt
import cartopy.crs as ccrs

ax = plt.axes(projection=ccrs.PlateCarree())
ax.set_global()
ax.coastlines()

# Define a transformation which takes latitude and longitude values,
# and returns pixel coordinates.
ll_to_pixel = ccrs.Geodetic()._as_mpl_transform(ax)

# We need to call draw to ensure that the axes location has been defined
# fully. 
plt.draw()

# Now lets figure out the pixel coordinate of Sydney.
x_pix, y_pix = ll_to_pixel.transform_point([151.2111, -33.8600])

# We can even plot these pixel coordinates directly with matplotlib.
plt.plot(x_pix, y_pix, 'ob', markersize=25, transform=None)

plt.savefig('figure_1.png', dpi=plt.gcf().get_dpi())
plt.show()

Сидней в пиксельных координатах

Теперь у нас есть информация, необходимая для написания кода для создания карты местности, которую я написал с полными комментариями (‹80 строк). Я опубликовал это как суть (https://gist.github.com/pelson/6308997), чтобы вы могли проверить и попробовать, если хотите. Для живой демонстрации результата: https://rawgithub.com/pelson/6308997/raw/map.html

person pelson    schedule 22.08.2013