В поиске на всех картах Google Geocoder заменен на OpenStreetMap
Протестировали четыре подопытных адаптера Геокодера для четырех разных провайдеров: Mapbox, Yandex, Google и OpenStreetMap (Nominatim). Совокупно оценивалась не только сама работа Геокодера (то есть, собственно поиск), но и уровень сервиса, предоставляемый провайдером. Исходили из возможной бесплатной работы (в первую очередь), а также возможный уровень затрат при переходе на платные тарифные планы.
Четвертое место - Mapbox.
Фактический аутсайдер. Выбрали полтора десятка населенных пунктов - от небольшой деревни до районного центра. Единственный, кто не нашел ничего меньше крупного поселка. Правда, тарифные планы довольно интересные: 100 тыс. бесплатных запросов в месяц, далее $0,75 за тысячу запросов. Надо только иметь в виду, что один "запрос"-поиск со стороны клиента может расцениваться сервером с другой стороны как несколько запросов. Как и большинству коммерческих провайдеров требуется ключ API, впрочем, получить его не сложно. В общем, по самой первой причине - категорически не рекомендуется.
Третье место - Yandex.
Тут, как и у провайдеров, занявших более высокое место, проблем с поиском не возникло: нашлось буквально все. Однако, следует заметить, что Яндекс оказался самым жадным: количество бесплатных запросов ограничено 25 тыс. в месяц, а платные тарифы - шестизначные числа (в год, в рублях). Кроме необходимости ключа API есть и еще одно неприятное ограничение: результаты "бесплатного" поиска должны быть отображены на Яндекс-карте. Нас не устроило.
Второе место - Google.
Был подключен для тестирования до сегодняшнего дня, ищет очень хорошо, по бесплатным условиям много просторнее Яндекса: 40 тыс. бесплатных запросов в месяц, далее - $5 за 1000. Существенно дороже Mapbox, но это можно считать платой за качество поиска. Еще интересная фишка от Google - квоты на количество запросов можно настраивать в консоли Google (конечно же, для подключения сервиса также требуется ключ API). В общем, всем хорош, кроме низковатого бесплатного порога, что и заставило поискать альтернативу.
Первое место - OpenStreetMap (Nominatim).
С поиском справляется не хуже Google и Яндекса, по первым впечатлениям - даже лучше; по неуточненным запросам сразу предлагает больше вариантов. Абсолютно бесплатен, ключ API не требуется. Единственное более или менее серьезное ограничение (кроме некоммерческого использования) - количество запросов от клиента (под клиентом подразумевается сайт целиком, а не отдельный пользователь) не должно превышать 1 запрос в секунду. Поэтому мы сразу установили общее ограничение на модуль сайта: 1 запрос в 2 секунды. По ощущениям, на ближайшее время хватит с избытком. Наш выбор.
В целом, результат (TLDR) - в заголовке поста.
В дальнейшем, возможно, протестируем более углубленно провайдеров коммерческих сервисов, основанных на Nominatim.