Как проверить существует ли улица?
Я хочу сделать бота который будет проверять существует ли улица которую ему напишут. Например я пишу боту: Красная пл., Москва, 109012. А он проверят существует ли эта улица на карте. Как мне это реализовать?
Ответы (2 шт):
В рамках решения подобных задач существуют прямое геокодирование, когда введённый адрес преобразовывается в координаты. API геокодеров предусматривают вариант, когда введённый адрес может не существовать, поэтому будут выдавать ошибку, что можно использовать в вашем случае.
Среди популярных API выделю следующие — отсортированы в порядке убывания точности для адресов России:
- Геокодер Яндекс.Карт (до 1000 запросов в сутки)
- Геокодер 2GIS (оговариваются отдельно)
- Геокодирование Google Карт (ежемесячно предоставляются бонусные кредиты на запросы)
- Nominatim от OpenStreetMap (полностью бесплатный)
Учтите, что каждая из платформ имеет свои ограничения по количеству и частоте запросов на бесплатных тарифах для тестирования и пет-проектов — я указал их в скобках. Поэтому для коммерческой разработки лучше в дальнейшем приобрести API-ключ с расширенным доступом.
Можно загрузить ФИАС или КЛАДР к себе в базу и сверять по нему вплоть до номера квартиры. Но скорее всего форму ввода адреса придётся разбить на шаги: город, улица, дом.