Skip to main content

Client for Yandex Maps API

Project description

ymaps


PyPI Version GitHub

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

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


Установка

pip install ymaps

Зависимости


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

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

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

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

Клиенты

Аргументы:

  • api_key*, получить ключ.
  • timeout, таймаут запроса, по умолчанию 1 секунда.
  • lang, язык ответа, по умолчанию русский (ru_RU), если в методе передан 'tr_TR', то будет использован 'tr_TR', но только для этого запроса.

api_key в StaticClient необязателен, указывайте только если используете коммерческую версию.

Примеры:

# api_key = 'key', timeout = 10, lang = 'en_RU'
SearchClient('key', 10, 'en_RU')

# api_key = 'key', timeout = 1, lang = 'ru_RU'
GeocoderClient('key')

# api_key = None, timeout = 1, lang = 'ru_RU'
StaticClient() # api_key=None, timeout=1, lang='ru_RU'

SearchClient

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

search()

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

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

Примеры:

client = SearchClient('api_key')


# query
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')

GeocoderClient

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

geocode()

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

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

reverse()

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

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

Примеры:

client = GeocoderClient('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')

StaticClient

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

getimage()

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

Примеры:

client = StaticClient()

# l
client.getimage([37.620070, 55.753630], l=['sat', 'skl'])

# spn
client.getimage([37.620070, 55.753630], l=['sat', 'trf'], spn=[0.02, 0.02])

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

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

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

# pl
client.getimage([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'])


# asynchronous
client = StaticAsync()
await client.getimage([37.620070, 55.753630], l=['sat', 'skl'])

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

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

Development setup

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

License

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.1.tar.gz (6.6 kB view hashes)

Uploaded Source

Built Distribution

ymaps-1.1-py3-none-any.whl (8.5 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