solovyov.net

Google Maps API vs API Яндекс.Карт

· · programming

Описанный в прошлом посте сервис Дислокации использовал с самого начала Яндекс.Карты как движок карт. Причин на то было несколько - я думал, что они будут распознавать адреса лучше, чем гуглевские; у них значительно лучше документация, чем у Мапии; нет вопросов с получением ключика к АПИ, в отличии от Визикома.

В результате я написал всë с их использованием, и в основном был доволен - в документации описано всë подробно, с кучей примеров. Всë работало, я был доволен. :)

Но мне предложили перейти на карты от гугля - у них значительно больше охват по территориям (геокодер знает о моëм родном Кривом Роге, в отличии от яндексового :), плюс они лучше распознают адреса (которые встречаются, как оказалось, в довольно стрëмном виде). Почему сервис не перешëл - я в принципе всë сделал и оно заработало - это отдельный вопрос: гугль ограничивает количество запросов к геокодеру в 15000 в день (это мало, текст со страницы адресов отделений ВТБ24 - 1500 строк) плюс ограничивает частоту запросов - 5 запросов в секунду уже перебор, два - обычно всë ок, но бывают траблы. Это по-моему неприемлемо, ждать пару минут, пока оно раздуплится. :)

Но в посте я хотел затронуть совсем другой вопрос - о разнице в АПИ. В некоторых местах логичнее гугль: функция обработы результатов поиска адреса в виде коллбека к геокодеру это явно более стандартный подход, чем использование событий; в некоторых - яндекс: мне кажется более логичным на карту добавлять оверлей (map.addOverlay(mark)), а не обратное (mark.setMap(map)).

Но проблема лежит глубже. Во-первых, документация АПИ у гугла значительно хуже - хуже структурирована, в некоторых местах приходилось догадываться экспериментально (не могу вспомнить, где), примеров меньше. Базовых возможностей (всякие крутые штуки типа прокладывания маршрутов я не щупал, но у яндекса они только для Москвы - минус серьëзный) тоже меньше - к примеру, внешний вид карты надо предопределять до создания карты. После того уже изменить ничего невозможно, в отличии от яндексовых карт - там всë на лету меняется без проблем.

Но самое плохое - это наличие абсолютно дурацких глюков. Например, если выключить панель навигации, панель зума исчезает сама и добавить еë невозможно. Если передвинуть панель зума направо, расположению элементов управления на карте сносит крышу и оно принимает очень странный вид - даже в примерах от гугля, где они показывают, как это клëво работает. :)

С другой стороны, центр Киева (на счëт других городов лень смотреть :) у Яндекса явно смещëн на юг - можно зайти на сайт и полюбоваться отрезанным севером. :) Но улица Мазепы у гугла отсутствует и это настораживает - не Путин ли покопался? :D

В общем и целом должен сказать, что бекенд у Google Maps лучше - у него куда более обширная база и (в большинстве случаев) лучше работающий геокодер. Зато у Яндекса лучше фронтенд - кроме всего прочего, увеличение региона, выделенного правой кнопкой мышки, меня просто прëт. :) А учитывая нечеловечность ограничителя геокодера у гугла, остаëтся ждать улучшений сервиса Яндекса. ;)

UPD. Надо, правда, сказать, что я совсем пропустил мимо глаз то, что я пользовался 3 версией API, которая еще находится в бета-тестировании, что несколько извиняет гугль. :)