Сразу оговорюсь, это пост- реклама.
Написал Telegram бота для знакомств (поиск собутыльника). Пользователь отправляет свою геопозицию (широту и долготу), а боту нужно предложить людей, живущих рядом.
Нашел на просторах интернета HTTP Геокодер от Яндекса. Что-то около 25000 запросов в месяц бесплатно. Ты отправляешь запрос с широтой и долготой, а сервис тебе населенный пункт (район, улица и т.д.).
Ссылка на сервис:
https://yandex.ru/maps-api/products/geocoder-api
Подключить его не сложно (документация хорошая).
Приведу пример запроса:
PARAMS = { "apikey":"ваш api key", "format":"json", "lang":"ru_RU", "kind":"locality", "geocode": "долгота, широта" } #отправляем запрос по адресу геокодера. try: r = requests.get(url="https://geocode-maps.yandex.ru/1.x/", params=PARAMS) #получаем данные json_data = r.json() #вытаскиваем из всего пришедшего json именно строку с полным адресом. address_str = json_data["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["metaDataProperty"]["GeocoderMetaData"]["AddressDetails"]["Country"]["AddressLine"] #возвращаем полученный адрес return address_str except Exception as e: logger2.error(e, exc_info=True) #если не смогли, то возвращаем ошибку return "error"
Поменяйте только ваш apikey и широту с долготой. Запрос вернет населенный пункт по заданным данным (долгота и широта).
Ссылка на моего бота:
http://t.me/drinking_buddy_2025_bot
Спасибо за внимание
