Skip to main content

Yandex.Maps API python wrapper with optional django integration.

Project description

Библиотека для работы с API Яндекс.Карт. Умеет работать с геокодером и формировать адреса статичных карт. Опционально - интеграция с Django: кеширование результатов геокодирования, шаблонные фильтры и теги для вывода карт, показ карты для точки из GeoDjango.

Лицензия MIT.

Установка

pip install yandex-maps

Использование

>>> from yandex_maps import api
>>> api_key = 'my_api_key'
>>> pos = api.geocode(api_key, u'Санкт-Петербург, Бумажная 4')
>>> print pos
(u'30.271446', u'59.903300')

>>> api.get_map_url(api_key, pos[0], pos[1], 13, 200, 300)
http://static-maps.yandex.ru/1.x/?ll=30.2714460,59.9033000&size=200,300&z=12&l=map&pt=30.2714460,59.9033000&key=my_api_key

Интеграция с django

  1. В settings.py добавляем переменную YANDEX_MAPS_API_KEY со своим API-ключом от Яндекса. Ключ можно получить тут: http://api.yandex.ru/maps/form.xml/

  2. ‘yandex_maps’ добавляем в INSTALLED_APPS

  3. Выполняем ./manage.py syncdb (или ./manage.py migrate, если используется south)

  4. В шаблоне теперь можно использовать тег 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 Яндекс.Карт и сохранены в базу. При последующих вызовах координаты для карты будут браться из базы. При необходимости можно воспользоваться кешированием в шаблоне и обойтись без запроса к базе при выводе карты.

История изменений

0.7 (2013-08-02)

  • Исправлен тег {% yandex_map %};

  • улучшены тесты;

  • Python 2.5 больше не поддерживается. Код может еще работать под 2.5, но баги, связаннае с 2.5, исправляться больше не будут.

0.6.1 (2012-04-06)

  • функция api.get_external_map_url и фильтр external_map_url для получения ссылки на Яндекс Карту, размещенную у Яндекса

0.6 (2012-03-20)

  • longtitude везде переименованы в longitude;

  • фильтр static_map_url и тег yandex_map теперь поддерживают Point из GeoDjango (можно их применять к PointField с уже заполненными координатами);

  • тесты запускаются через tox;

  • в yandex_maps.api большие функции разбиты на более маленькие, чтоб их можно было использовать отдельно.

Для обновления с версии 0.5 выполните миграции south:

python ./manage.py migrate yandex_maps

и переименуйте все ‘longtitude’ в ‘longitude’, если эти атрибуты или аргументы где-то использовались в коде.

0.5.1 (2010-08-29)

django-yandex-maps переименован в yandex-maps

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yandex-maps-0.7.tar.gz (9.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page