Skip to main content

Client for Yandex Maps API

Project description

ymaps


PyPI Version GitHub

ymaps - это клиент для API Яндекс Карт (Неофициальный)

Синхронные и Асинхронные:


Установка

pip install ymaps

Зависимости


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

Геокоординаты задаются в порядке долгота и широта

* - обязательный аргумент

Все необязяательные аргументы должны передаваться по имени

Параметры клиентов:

  • api_key*, получить ключ
  • language, язык ответа, по умолчанию русский (ru_RU)
  • timeout, таймаут запроса, по умолчанию 1 секунда

Примеры:

# api_key = 'api_key', language = 'en_RU', timeout = 10
Search('api_key', 'en_RU', 10)

# api_key = 'api_key', language = 'ru_RU', timeout = 1
Geocode('api_key')

# api_key = 'api_key', language = 'tr_TR', timeout = 1
Suggest('api_key').suggest(text, lang='tr_TR')

Search

Поиска по организациям и географическим объектам (топонимы).

search()

Выполняет поиск по организациям или топонимам, формат ответа.

  • text*- текст поискового запроса
  • lang - язык ответа, по умолчанию ru_RU
  • type - типы возвращаемых результатов. geo — топонимы, biz — организации, по умолчанию автоматическое определение типа по тексту запроса
  • ll - центр области поиска
  • spn - размеры области поиска
  • bbox - альтернативный способ задания области поиска, при одновременном задании bbox и ll+spn параметр bbox является более приоритетным. Границы области поиска задаются в виде географических координат левого нижнего и правого верхнего углов области.
  • rspn - признак «жесткого» ограничения области поиска, по умолчанию False (не ограничивать)
  • results - количество возвращаемых объектов, по умолчанию 10
  • skip - количество объектов в ответе (начиная с первого), которое необходимо пропустить, skip должно нацело делиться на results
  • uri - Дополнительная информация об объекте, значение параметра возвращается в ответе Геосаджеста.

Примеры:

client = Search('api_key')


# text
client.search('лебединое озеро')
client.search('55.750788,37.618534')
client.search('Санкт-Петербург, ул. Блохина, 15')
client.search('+7 495 739-70-70')
client.search('ООО Яндекс')

# lang
client.search('ООО Яндекс', lang='ru_RU')
client.search('Санкт-Петербург, ул. Блохина, 15', lang='be_BY')

# type
client.search('ООО Яндекс', lang='ru_RU', type='biz')
client.search('лебединое озеро', type='geo')

# ll, spn (используются совместно)
client.search('площадь Революции', ll=[37.618920, 55.756994], spn=[0.552069, 0.400552])

# bbox
client.search('Театр', bbox=[36.83, 55.67, 38.24, 55.91])

# rspn, не искать за пределами заданной области
client.search('Театр', rspn=True, bbox=[36.83, 55.67, 38.24, 55.91])

# results
client.search('Администрация', results=25)

# skip
client.search('Администрация', results=25, skip=25)


# asynchronous
client = SearchAsync('api_key')
await client.search('ООО Яндекс', lang='ru_RU')

Geocode

Прямое и обратное геокодирование.

geocode()

Преобразует адрес в координаты объекта, формат ответа.

  • geocode* - текст поискового запроса
  • ll - центр области поиска
  • spn - размеры области поиска
  • bbox - альтернативный способ задания области поиска, при одновременном задании bbox и ll+spn параметр bbox является более приоритетным. Границы области поиска задаются в виде географических координат левого нижнего и правого верхнего углов области.
  • format - формат ответа геокодера xml, json; json по умолчанию
  • rspn - признак «жесткого» ограничения области поиска, по умолчанию False (не ограничивать)
  • results - количество возвращаемых объектов, по умолчанию 10
  • skip - количество объектов в ответе (начиная с первого), которое необходимо пропустить, skip должно нацело делиться на results
  • lang - язык ответа, по умолчанию ru_RU
  • uri - Дополнительная информация об объекте, значение параметра возвращается в ответе Геосаджеста.

reverse()

Преобразует координаты в адрес объекта. Принимает те же аргументы что и geocode(), а также:

  • geocode* - географические координаты объекта
  • sco - порядок записи координат, longlat — долгота, широта, latlong — широта, долгота, по умолчанию longlat
  • kind - вид необходимого топонима (house, street, metro, district, locality), по умолчанию подбирается автоматически

Примеры:

client = Geocode('api_key')

# geocode
client.geocode('Санкт-Петербург, ул. Блохина, 15')

#reverse
client.reverse([37.611347, 55.760241])

# format, kind
client.reverse([37.611347, 55.760241], format='xml', kind='street')

# sco
client.reverse([55.760241, 37.611347], sco='latlong')

# ll, spn (используются совместно)
client.geocode('Санкт-Петербург, ул. Блохина, 15', ll=[30.301324, 59.951921], spn=[0.552069, 0.400552])

# bbox
client.geocode('Санкт-Петербург, ул. Блохина, 15', bbox=[36.83, 55.67, 38.24, 55.91])


# asynchronous
client = GeocodeAsync('api_key')
await client.geocode('Санкт-Петербург, ул. Блохина, 15')

Suggest

Позволяет получать предложения поисковой выдачи во время поиска географических объектов и/или организаций.

suggest()

Выполняет поиск географических объектов и/или организаций, формат ответа.

  • text*- текст поискового запроса
  • lang - язык ответа в формате ISO 639-1, по умолчанию ru
  • results - количество возвращаемых объектов, по умолчанию 10
  • highlight - По умолчанию сервис осуществляет подсветку совпадений в результатах и возвращает набор диапазонов индексов, которые можно выделить в интерфейсе. Значение highlight=0 отключает подсветку.
  • ll - центр области поиска
  • spn - размеры области поиска
  • bbox - альтернативный способ задания области поиска, при одновременном задании bbox и ll+spn параметр bbox является более приоритетным. Границы области поиска задаются в виде географических координат левого нижнего и правого верхнего углов области.
  • ull - координаты пользователя, используется при расчете расстояний. Если параметр не указан, по умолчанию для расчетов будет взят центр окна.
  • strict_bounds - используется в значении strict_bounds=1, чтобы строго ограничить выдачу и оставлять только объекты, которые попадают в окно.
  • types - тип объекта в ответе
  • print_address - возвращает покомпонентный адрес в ответе. Для этого укажите значение print_address=1
  • org_address_kind - возвращает список организаций только с адресом до номера дома
  • attrs - используется в значении attrs=uri. Возвращает в ответе параметр uri

Примеры:

client = Suggest('api_key')


# text
client.suggest('санкт')

# lang
client.suggest('санкт', lang='be')

# types  
client.suggest('санкт', types='province')

# ll, spn (используются совместно)
client.suggest('площадь Революции', ll=[37.618920, 55.756994], spn=[0.552069, 0.400552])

# bbox, ull
client.suggest('Театр', bbox=[36.83, 55.67, 38.24, 55.91], ull=[36.84, 55.69])


# asynchronous
client = SearchAsync('api_key')
await client.search('ООО Яндекс', lang='ru_RU')

Static

Формирует изображение схемы карты

Static имеет дополнительный параметр - url.

  • api_key - при url = 1.x необязателен
  • url - определяет адрес запроса, значения: v1, 1.x. При запросе на 1.x есть возможность указать перечень слоёв карты - l.
# url='v1' (on default)
# BASE_URL = 'https://static-maps.yandex.ru/v1'
Static()

# url='1.x
# 'BASE_URL = 'https://static-maps.yandex.ru/1.x'
Static(url='1.x')

load_image()

Сохраняет найденное изображение карт.

  • path*, путь к файлу
  • ..., то же что и в get_image
client = Static(url='1.x')                                                                                                                              
client.load_image(path='file.png', l=['sat', 'skl'], ll=[37.620070, 55.753630]) 

get_image()

Формирует изображение карты в соответствии со значениями параметров, возвращает bytes.

* - ll или bbox

  • l*, (только для url='1.x') перечень слоев, определяющих тип карты: map (схема), sat (спутник), sat,skl (гибрид), trf (Слой пробок)
  • ll - центр области поиска, долгота и широта центра карты в градусах
  • bbox - альтернативный способ задания области поиска, при одновременном задании bbox и ll+spn параметр bbox является более приоритетным. Границы области поиска задаются в виде географических координат левого нижнего и правого верхнего углов области.
  • spn - протяженность области показа карты по долготе и широте (в градусах)
  • z - уровень масштабирования карты (0-17), см
  • size - ширина и высота запрашиваемого изображения карты (в пикселах)
  • scale - коэффициент увеличения объектов на карте (от 1.0 до 4.0)
  • pt - содержит описание одной или нескольких меток, которые требуется отобразить на карте
  • pl - Содержит набор описаний геометрических фигур (ломаных и многоугольников), которые требуется отобразить на карте

Примеры:

client = Static()

# ll
client.get_image(ll=[37.620070, 55.753630])

# spn
client.get_image(ll=[37.620070, 55.753630], spn=[0.02, 0.02])

# bbox
client.get_image(bbox=[30.03, 59.85, 30.49, 60.10])

# z scale
client.get_image(ll=[37.620070, 55.753630], z=12, scale=2.5)

# size 
client.get_image(ll=[37.620070, 55.753630], size=[450, 450])

# pt
client.get_image(ll=[37.620070, 55.753630], pt=[
	'37.620070,55.753630,pmwtm1', 
	'37.62006,55.753632,pmwtm2'
])

# pl
client.get_image(ll=[37.620070, 55.753630], pl=[
	'c:ec473fFF,f:00FF00A0,w:5,37.51,55.83', 
	'c:ec473fFF,f:00FF00A0,w:5,37.49,55.70,37.51,55.83'
])

# l
client = Static(url='1.x')
client.get_image(ll=[37.620070, 55.753630], l=['sat', 'skl'])


# asynchronous
client = StaticAsync()
await client.get_image(ll=[37.620070, 55.753630])

Сохраните изображение:

response = Static('api_key').get_image(...)

with open('file.png', "wb") as f:
	f.write(response)

Настройка разработки

$ python -m venv venv
$ . venv/bin/activate
$ make deps
$ tox

Лицензия

MIT

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

ymaps-1.3.tar.gz (11.6 kB view hashes)

Uploaded Source

Built Distribution

ymaps-1.3-py3-none-any.whl (10.2 kB view hashes)

Uploaded Python 3

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