Библиотека для работы с API Яндекс.Карт. Умеет работать с геокодером и формировать адреса статичных карт. Опционально - интеграция с Django: кеширование результатов геокодирования, шаблонные фильтры и теги для вывода карт, показ карты для точки из GeoDjango.
Лицензия MIT.
pip install yandex-maps
>>> from yandex_maps import api >>> pos = api.geocode(u'Санкт-Петербург, Бумажная 4') >>> print(pos) (u'30.271446', u'59.903300') >>> api.get_map_url(api_key, pos[0], pos[1], 13, 200, 300) https://static-maps.yandex.ru/1.x/?ll=30.2714460,59.9033000&size=200,300&z=12&l=map&pt=30.2714460,59.9033000
'yandex_maps' добавляем в INSTALLED_APPS
Выполняем
./manage.py syncdb
(или./manage.py migrate
, если используется south)В шаблоне теперь можно использовать тег
yandex_map
:{% load yandex_maps_tags %} <!-- Пример с явным указанием адреса --> {% yandex_map "Екатеринбург, Мира 32" 300 400 %} <!-- Пример с адресом в переменной, указанием уровня детализации и своими атрибутами --> {% yandex_map address 200 200 5 "id='my_map'" %}
фильтр static_map_url:
{% load yandex_maps_tags %} <img src='{{ "Санкт-Петербург, ул. Бумажная 4"|static_map_url:"300,200,13" }}'>
фильтр external_map_url:
{% load yandex_maps_tags %} <a href='{{ address|external_map_url:15 }} '>смотреть карту</a>
В первый раз координаты для вывода карты будут получены через API Яндекс.Карт и сохранены в базу. При последующих вызовах координаты для карты будут браться из базы. При необходимости можно воспользоваться кешированием в шаблоне и обойтись без запроса к базе при выводе карты.