Client for Yandex Maps API
Project description
ymaps
ymaps
- это клиент для API Яндекс Карт (Неофициальный)
Синхронные и Асинхронные:
- Search, SearchAsync - Поиск по организациям
- Geocode, GeocodeAsync - Геокодер
- Suggest, SuggestAsync - Геосаджест
- Static, StaticAsync - Static API
Установка
pip install ymaps
Зависимости
- python 3.7+
- httpx
Использование
Геокоординаты задаются в порядке долгота и широта
* - обязательный аргумент
Все необязяательные аргументы должны передаваться по имени
Параметры клиентов:
- 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
Лицензия
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
Built Distribution
File details
Details for the file ymaps-1.3.tar.gz
.
File metadata
- Download URL: ymaps-1.3.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e8730abd8d8e05f560b651899ccbbe5068c090ab6e69b967f15f918b6d73a58 |
|
MD5 | e8bc1979b09a7e98cd9a07b2f22dfee8 |
|
BLAKE2b-256 | a3b6519ff3ec43839c423797f6576bd63083bd6a730e3ba22b21151bb106b993 |
File details
Details for the file ymaps-1.3-py3-none-any.whl
.
File metadata
- Download URL: ymaps-1.3-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 887f46443ad708ed219f8fa8a5e243288cd05d0120c6dd55e46233b2d08a4fb3 |
|
MD5 | 84ec76474964ebe24ff2c97dc0eeae7c |
|
BLAKE2b-256 | 6a3710557d06a12697aa77b7cb95b3e01b5e2e6ff5fe93997ab3b60ab3528685 |