Сбил с ног Гугли

Есть старая поговорка, которая говорит нам: “вы ничего не получаете бесплатно”, и это, безусловно, доказано API Google Maps и геокодированием почтовых кодов. Теперь, прежде чем вы отправите мне по электронной почте разглагольствования о том, какой замечательный бесплатный сервис Google Maps (мнение, с которым я в основном согласен), позвольте мне объяснить подробнее. На днях мне пришла в голову идея добавить небольшое усовершенствование на один из наших веб-сайтов: я подумал, что было бы полезно разместить карту Google с кнопками, чтобы показать расположение мест проведения мероприятий. В этой колонке рассказывается о моем тяжелом пути к достижению этой цели, путешествии, которое временами было очень ухабистым и влекло за собой несколько тупиков, но в конечном итоге привело к нескольким новым контактам и рабочей веб-странице.

Сбил с ног Гугли

Моей первой проблемой было то, как точно определить места проведения мероприятий, и использование их почтовых кодов казалось очевидным подходом. Однако картографическое программное обеспечение использует широту и долготу для размещения маркеров или кнопок, поэтому мне также понадобится какой-то способ преобразования почтового индекса в эквивалентные широту и долготу. Беглый просмотр документации для Google Maps API показал, что она действительно включает в себя процедуру, которая может принимать почтовый индекс и возвращать информацию о карте, процесс, известный как “геокодирование”. Однако имейте в виду, что геокодирование, как правило, требует достаточно больших затрат процессора на сервере-если вы хотите сделать это для многих мест, вам может потребоваться использовать другой подход, который я опишу позже.

Однако на данный момент в моем собственном проекте я имел дело только с несколькими местами. Тем не менее, я быстро обнаружил, что возможности геокодирования в API Google практически бесполезны! Какой смысл ставить предположительно точные кнопки на карту, если эти маркеры могут быть удалены на целых пару миль, как это было в моем случае? Я сам не мог в это поверить, как и никто из моих коллег-поклонников Google.

Я решил провести несколько тестов, поэтому схватил свой GPS Garmin и заставил его указать широту и долготу тестового почтового индекса: мой собственный офис. Это дало бы мне “реальное” местоположение. Затем я сравнил это с местоположением, возвращаемым функцией Google Maps API, с таким результатом:

GPS Garmin 52.06609 : 0,71071

Google API 52.04560 : 0.777727

Я включил пару скриншотов, чтобы дать вам некоторое представление о том, что означает эта степень несоответствия на реальной карте.

Помните, что сейчас я говорю о функции Google Maps API, которую вам нужно вызвать Google Maps из вашего собственного кода, а не из самого приложения Google Maps, в которое вы можете ввести почтовый индекс и получить довольно точно расположенную кнопку, показывающую его местоположение. Так в чем же разница? Я отправил электронное письмо в отдел по связям с общественностью Google, который переслал мое сообщение в технический отдел, который ответил, что ему известно о неточности – по-видимому, это вызвано тем, что API использует другой способ поиска почтовых индексов из основного приложения Google Maps.

Странно, подумал я, поэтому моим следующим шагом было попробовать главного конкурента Google Maps на рынке бесплатного картографического программного обеспечения, а именно Виртуальную Землю Microsoft. По-видимому, у этого также были некоторые проблемы с геокодированием по почтовым кодам, но в последней версии (версия 6) Microsoft утверждает, что улучшила это. Примерно через час у меня был запущен какой-то код, который запрашивал Виртуальную Землю и возвращал широту и долготу из моего тестового почтового индекса. Результаты выглядели гораздо более многообещающими:

GPS Garmin 52.06609 : 0,71071

Microsoft Virtual Earth API 52.06605 : 0,711029

Это гораздо более точный результат, так какова же была причина ограничения со стороны Google? Эти ответы по электронной почте были очень уклончивыми, соглашаясь с тем, что его нужно исправить, но не указывая временные рамки для исправления, и причинами, приведенными для неработающего поиска, были “ограничения на использование данных”. Для меня это звучало как какое-то лицензионное ограничение, и когда я спросил представителя Google, так ли это, она ответила, что “мы [Google] не комментируем особенности наших отношений с партнерами по передаче данных”. Так что, вероятно, это “да”, тогда…

Сохранить статью?
Андроид мафия
Андроид мафия