# Геокодеры ## Что это такое? **Геокодер** помогает определить координаты объекта по его адресу (прямой геокодинг) или, наоборот, установить адрес по координатам (обратный геокодинг) **Пример:** `1-я Тверская-Ямская улица, 29с1 --> [55.778315 37.589293]` -- прямой `[55.767777 37.563952] --> Москва, улица 1905 года, 15` -- обратный ## Что есть сейчас ### Фронты Используется в визардах для того, чтобы понять какие станции метро пробросить в заказ. Используется прямой геокодер Яндекса. ### Система Для вычисления различных расстояний "от и до" в препе, закаказе, между городами в попап карте метро (не уверен, что она еще работает). Используются геокодеры Гугла и Яндекса. Так же гугловый сервис используется для рассчета рассстояния и времени в пути. `Paddrs::geocoder` -- прямой геокодер. `Paddrs::distance` -- расстояние и время в пути между точками Примерное количество запросов к геокодеру Яндекса -- 6000 в день. ![](https://i.imgur.com/6coUwFI.png) ## Почему не используется какой-то один При геокодировании Системе преобразует исходный адрес. Это не подходило Фронту. Так же два независимых гекодера позволяют не выходить за лимиты бесплатного использования. ## Чем мы пользуемся **Яндекс** - Бесплатные лимиты -- 25000/сутки (геокодер + маршрутизатор) - [Платные лимиты](https://tech.yandex.ru/maps/commercial/doc/concepts/jsapi-geocoder-docpage/#jsapi-geocoder__tariffs) **Гуугл** - Бесплатные лимиты -- 2500/сутки (геокодер, client side + server side) - [Платные лимиты](https://developers.google.com/maps/documentation/geocoding/usage-and-billing) **Что еще есть** - https://dadata.ru/ -- от 10 копеек за запрос. Есть нормализация адреса. Фиас + Кладр + ОСМ - Различные библиотеки и проекты на основе ОСМ. Основная сложность - они плохо умеют работать с "кривыми" адресами типа `березовой рощи 2-й проезд`. То есть не умеют приводить адреса в канонический вид. - https://github.com/komoot/photon -- на основе эластика - https://wiki.openstreetmap.org/wiki/Nominatim