Поскольку Google отказывается от API Geocoding v2 в конце этого года, будет масса людей, перенесших свою логику геокодирования в v3, и этот самый вопрос возникнет: как сопоставить строку 'location_type' с эквивалентной 'точность '?
Вот достойное отображение:
"ROOFTOP" -> 9
[Everything else] -> 4 to 8 (aka the text string might as well read "GARBAGE")
Если указано что-то отличное от ROOFTOP, используйте area для' северо-востока 'и' юго-запада ', чтобы решитьесли он достаточно точен для вас.
Что же произойдет, если вы не получите что-то "точное"?Запустите запрос текстового поиска Google Адресов для того же адреса.Google Places также выполняет геокодирование, и с включенным биллингом вы можете получать 10 000 запросов текстового поиска в Places в день (без ограничения скорости), и Google заявляет, что не будет снимать средства с карты (предположительно, они просто используют ее для проверки аккаунта).С помощью Billing вы получаете 100 000 запросов, но при поиске текстового поиска в Places «стоимость» в 10 раз превышает сумму обычного запроса Places, следовательно, вышеупомянутый лимит в 10 000.Места могут быть привередливыми, и вы должны рассматривать ответы только с одним результатом.
Иногда запросы мест не возвращают почтовый индекс, особенно если он не отправлен.Если вам нужен почтовый индекс, возьмите результаты lat / lng запроса Places и отправьте его обратно в геокодер, который обычно выдаст адрес с почтовым индексом (и очень часто совпадает с ROOFTOP).
ItСледует отметить, что официальный лимит вежливости API геокодирования составляет 2500 запросов в день с лимитом скорости один в секунду на IP-адрес.Следовательно, следование приведенной выше формуле, вероятно, приведет к уменьшению и даже вдвое уменьшит количество доступных вам геокодировок.
Если вам нужно больше, чем предел геокодирования Google (а кому нет?), Придумайте свой собственный сервис мини-геокодированияс чем-то вроде базы данных OpenStreetMap.Клонируйте нужные вам части OpenStreetMap и напишите собственный геокодер (или используйте библиотеку).Тогда вы можете геокодировать до вашего сердца без ограничения количества или скорости.Если вы по-прежнему используете Карты Google, вы можете использовать геокодер Google в качестве запасного варианта, если геокодер OSM не будет достаточно точным для всех случаев.
В качестве альтернативы, если вы доверяете своим пользователям не предоставлять фиктивные данные (на самом деле?) ИПри необходимости использовать службу геокодирования Google, вы также можете злоупотреблять веб-браузером пользователя, имея для вас информацию о геокодировании браузера, а затем передавать результаты на свой сервер.Вы можете прорваться через дневной лимит пользователя и рискнуть, чтобы кто-то выдал фиктивные данные, но если вы идете ко всем этим неприятностям, вас это действительно волнует?
В любом случае приведенных выше советов должно быть достаточно для временного использования длябольшинство пользователей получают рабочий API v3.Я сам столкнулся с этой проблемой, так что решил поделиться с сообществом достойным решением.Я все еще думаю, что v2 был лучшим API - целочисленные оценки точности вместо уродливых текстовых строк всегда побеждают.