Следите за использованием ключа, пока не упёрлись в лимит
Наблюдение за заголовками квоты по ходу работы показывает приближение к лимиту задолго до того, как запрос будет отклонён.
Клиент, оставивший поле почтового индекса пустым, не обязательно дал вам плохие данные. Прямое геокодирование обычно может восполнить этот пробел по остальной части адреса.
Отправьте на /v1/forward любой имеющийся текст, как минимум улицу и город. Объект components в результате содержит почтовый индекс для лучшего совпадения, хотя во входных данных он вообще не упоминался.
GET /v1/forward?q=1600 Pennsylvania Avenue, Washington&limit=1{
"status": "ok",
"query": "1600 Pennsylvania Avenue, Washington",
"results": [
{
"formatted": "1600 Pennsylvania Avenue NW, Washington, DC 20500",
"lat": 38.8977,
"lon": -77.0365,
"type": "address",
"precision": "house",
"confidence": 0.97,
"place_id": "def456",
"components": {"postcode": "20500", "city": "Washington", "region": "DC", "country": "US"}
}
]
}Не каждый адрес настолько полон. Запрос только с городом и регионом, например «Springfield, Illinois», всё равно может вернуть результат, но почтовый индекс в components будет относиться ко всему городу, а не к одному зданию, и в поле precision будет значение грубее, чем «house». Эта разница важна, если вы собираетесь печатать полученный индекс на транспортной этикетке, а не просто использовать его для региональной оценки, поскольку индекс на уровне города не даёт той же гарантии, что индекс на уровне дома.
Прежде чем считать полученный почтовый индекс надёжным, проверьте поля precision и confidence. Точность «house» с высоким показателем уверенности означает, что совпадение достаточно конкретное, чтобы доверять значению индекса напрямую. Более грубая точность, например совпадение на уровне улицы или города, означает, что почтовый индекс охватывает более широкую территорию и может не соответствовать точному адресу, который имел в виду клиент.
Это один поиск, один запрос из вашего дневного лимита на один адрес. Делать так для каждой отправки формы оформления заказа или регистрации без почтового индекса считается нормальным использованием, которое редко приближается к 2 500 бесплатных запросов, ежедневно доступных с ключом или с одного IP-адреса без него.
Пустой массив results или результат с низким показателем уверенности означает, что адрес слишком расплывчатый, чтобы его определить. В таком случае спросите почтовый индекс у клиента напрямую, а не угадывайте, поскольку неверный индекс на транспортной этикетке создаёт больше проблем, чем пустой.
Некоторые страны вообще не используют почтовые индексы или используют их настолько непоследовательно, что объект components для конкретного результата просто не содержит этого поля. Не считайте отсутствие поля postcode ошибкой само по себе: сначала проверьте страну в объекте components и отмечайте строку для проверки только в том случае, если это страна, где почтовый индекс обычно ожидается.
Когда у вас есть предполагаемый почтовый индекс, прямой вызов /v1/postcode с этим индексом и страной из объекта components позволяет быстро перепроверить его независимо. Это особенно полезно, когда уверенность исходного прямого геокодирования была пограничной, а не явно высокой или явно низкой.
Восстановление отсутствующего почтового индекса таким способом экономит одно поле формы и лишний обмен сообщениями с клиентом. Полные описания полей приведены в документации по поиску почтовых индексов и документации по прямому геокодированию.