Следите за использованием ключа, пока не упёрлись в лимит
Наблюдение за заголовками квоты по ходу работы показывает приближение к лимиту задолго до того, как запрос будет отклонён.
В полях адреса со свободным текстом собираются самые разные привычки форматирования: лишние пробелы, непоследовательное использование заглавных букв, сокращения, которые то раскрывают, то нет, и иногда случайные символы, вставленные откуда-то ещё. Ничто из этого не обязательно ломает запрос геокодирования, но предварительная очистка обычно улучшает качество совпадений.
Удалите пробелы в начале и в конце и замените повторяющиеся пробелы одним. Удалите управляющие символы и случайную пунктуацию, которая явно не относится к адресу. Само содержимое адреса оставьте как есть, поскольку эндпоинт прямого геокодирования рассчитан на разбор свободного текста, и вам не нужно самостоятельно разбивать его на отдельные поля улицы, города и почтового индекса.
GET /v1/forward?q=221b baker st, london&limit=1Эндпоинт, как правило, всё равно распознает такой небрежно оформленный ввод, поскольку он создан для работы с реальным текстом адресов, а не с жёстким шаблоном, но более чистая строка ввода снижает вероятность неоднозначного совпадения или совпадения с низкой уверенностью на действительно неаккуратных данных.
Запрос с распространёнными сокращениями, например «St» вместо «Street» или «Ave» вместо «Avenue», не нужно раскрывать перед отправкой.
GET /v1/forward?q=500 5th Ave, New York&limit=1Самостоятельное раскрытие каждого сокращения перед отправкой запроса это лишняя работа, которая редко меняет результат, поскольку эндпоинт уже обрабатывает стандартные сокращения в рамках разбора обычного текста адреса. Сосредоточьте усилия по очистке на действительно повреждённом вводе, например на вставленных переносах строк или артефактах кодировки, а не переписывайте сокращения, которые никогда не были проблемой.
Если вы уже знаете, в какой стране должен находиться адрес, например по сохранённому платёжному адресу или по региональной направленности сайта, передайте её в параметре countries, чтобы сократить количество неоднозначных совпадений с одноимёнными местами в других частях мира.
GET /v1/forward?q=Springfield Main Street&countries=US&limit=3Чрезмерная очистка адреса, при которой удаляется всё, что выглядит необычно, может убрать информацию, которая на самом деле нужна геокодеру. Номер квартиры или помещения, указание этажа или название здания, добавленное к адресу улицы, это значимое содержимое, а не шум, даже если оно не похоже на остальную часть адреса. Ограничьте очистку пробелами, кодировкой и явно случайными символами, а всё, что может оказаться частью адреса, оставьте без изменений.
Нормализация уменьшает количество неверных совпадений, но не устраняет их полностью. Всегда проверяйте поле confidence в результате, а не считайте возвращённый результат автоматически правильным только потому, что запрос выполнился успешно.
Очистка строки ввода перед отправкой не меняет того, сколько запросов стоит поиск: это по-прежнему один запрос на адрес. Меняется вероятность того, что отправленный вами единственный запрос вернёт что-то полезное, и вам не понадобится вторая, исправленная попытка, которая стоила бы второго запроса.
Правильная нормализация с самого начала означает меньше впустую потраченных запросов и более чистые данные дальше по цепочке. Полный набор поддерживаемых параметров, включая countries и limit, описан в документации по прямому геокодированию.