Блог API Яндекс.Карт

апрель 2014
Использование собственной карты в модуле для Joomla. Обучающее видео
2 апреля 2014, 13:55

Модули для CMS отлично подходят тем, кто хочет использовать API, но не умеет программировать, а функциональности конструктора карт уже недостаточно. С помощью модуля Zh YandexMap для CMS Joomla можно, например, создавать свои собственные карты. Это могут быть схемы помещений, карты вымышленных миров или исторические карты. Как сделать такую карту и разместить ее у себя на сайте подробно рассказано в специальном обучающем видео, которое было опубликованно в блоге «Занимательная веб-картография». Для тех, кто не знаком с принципом работы модуля можно посмотреть обучающее видео о модуле Zh YandexMap.

Напоминаем, что в разделе модули для CMS на сайте API есть модули и для других популярных CMS: 1С-Битрикс, Drupal, NetCat и других.Обращаем ваше внимание, что все перечисленные модули разработаны сторонними компаниями или людьми. 

Скорее всего нам известны не все существующие модули. Если вы нашли плагин, которого нет в нашей базе, напишите о нем в клубе разработчиков или на нашей странице в Facebook. Мы ознакомимся с ним и, возможно, добавим в список.

Нет комментариев
модули,видео,joomla,API 2.0
Для Львова стали доступны баллы Яндекс.Пробок
3 апреля 2014, 18:35

Вчера Яндекс начал оценивать пробки в баллах во Львове. Это третий город Украины, где считаются баллы пробок. До этого баллы выставлялись только в Киеве и Одессе. От 1 до 3 баллов — дороги свободны, 4-6 — движение затруднено, 7-8 — серьезные пробки, 9-10 — город стоит. Информация обновляется каждые четыре минуты и доступна также в приложениях Яндекс.Карты и Навигатор. Все эти обновления доступны на картах, созданных через API Яндекс.Карт.

Напомним, что с помощью API Яндекс.Карт можно показывать пробки на картах для пользователей ваших сайтов. Пример создания такой карты есть в песочнице.

2 комментария
пробки,обновления карт
Пример поиска ближайшего пункта выдачи
8 апреля 2014, 15:40

Карта с метками офисов, розничных магазинов или пунктов выдачи — это один из самых используемых типов карт, в частности, для интернет-магазинов и коммерческих сайтов. Подобная карта отлично решает задачу пользователя, которому надо найти ближайшую к нему точку выдачи товара или постамат. В этом примере местоположение пользователя определяется при помощи Geolocation API и выводится на карту, где уже есть метки пунктов выдачи. Код примера доступен на GitHub.

Стоит отметить, что этот пример будет отлично работать не только с пунктами выдачи товара для интернет-магазинов, но также и для сетей магазинов, аптек или в любом другом случае, когда вашему пользователю необходимо выбрать что-то из списка адресов. Делать это с помощью карты — быстрее и удобнее. 

Посмотреть пример в новом окне. 

Пользуйтесь этим примером и присылайте свои собственные в комментариях. Напоминаем, что в нашем клубе разработчиков, на страничках в Facebook и ВКонтакте можно задавать вопросы на которые отвечают разработчики команды API Яндекс.Карт.

1 комментарий
геолокация,примеры,API 2.1,метки
API Яндекс.Карт версия 2.1.7
11 апреля 2014, 12:42

Опубликована новая версия API Яндекс.Карт 2.1-beta — 2.1.7. Она доступна по адресу api-maps.yandex.ru/2.1.7 и api-maps.yandex.ru/2.1-dev.

Версия 2.1.7 — это релиз-кандидат API ветки 2.1. Что значит релиз-кандидат?

Обратная совместимость более НЕ БУДЕТ ломаться начиная с 2.1.7 и далее в течение всего срока жизни ветки 2.1. Теперь вы можете безопасно переходить на ветку 2.1, начиная с версии 2.1.7 ей гарантируется полная поддержка.

Следующий релиз (2.1.8) будет объявлен официальным релизом ветки 2.1 и будет доступен под соответствующим URL (api-maps.yandex.ru/2.1). Релиз 2.1.8 будет содержать только исправления ошибок, найденных в релиз-кандидате 2.1.7.

Версии 2.1.0 - 2.1.5 продолжат существовать в течение некоторого времени, ориентировочно полгода; однако через некоторое время они будут удалены и заменены ссылками на версию 2.1.

Добавлено:

— Маршрутизатор с альтернативными маршрутами. Ссылка на описание в документации и пример будет добавлена чуть позже.

— Опция zoomMargin в SearchControl.

— Метод setAll в менеджере данных data.Manager.

Изменено:

— Обновление дизайна балунов кластеров.

— Стандартные метки кластера переведены на SVG.

— Изменен дизайн балунов дорожных событий.

— При задании опции position элементов управления значение опции float трактуется как none.

Исправлено:

— Небольшие интерфейсные ошибки.

— Мигание элементов управления при отображении карт на мобильных устройствах.

— Инициализация SearchControl из скрытого контейнера.

— Применение опции drawingCursor.

— В некоторых случаях не скрывалась подсказка геообъекта.

— В некоторых случаях pixelgeometrychange происходило в неправильное время.

— Небольшие ошибки в новом шаблонизаторе.

— Не выбирался первый найденный элемент в элементе управления «Поиск на карте».

— Некорректно отрисовывалась белая подложка линии линейки на больших расстояниях.

— Режим редактирования полигонов и полилиней не отключался по двойному клику.

— Маршрут продолжал редактироваться после деактивации соответствующего элемента управления.

— Не вовремя генерировалось событие vertexdragend.

— Не происходил клик в выпадающих списках в бразуерах операционной системы Android.

— Ошибки при анимации элемента управления «Пробки».

— Ошибки в верстке масштабного отрезка.

— В менеджере элементов управления нельзя было подписаться на события дочерних элементов.

— Неправильный индекс добавленной вершины в событии vertexadd редактора полигона.

— При изменении позиции zoomcontrol принимал неверный размер.

— Ошибки в верстке элемента управления «Поиск по карте» в Internet Explorer версий 8 и 9.

— При вызове метода search у элемента управления «Поиск на карте» в состояниях small и medium по умолчанию не показывался выпадающий список с результатами поиска.

— Линия на карте моргала, если при наведении увеличивать strokeWidth.

— Откорректированно поведение .behavior.MultiTouch.

— После удаления всех точек из полигона отключался режим рисования.

— Открывался пустой балун по клику по линии маршрута.

— Неправильное значение поля position в DOM-событиях в Internet Explorer.

— Точки маршрута не ставились поверх геообъектов.

— В некоторых случаях некорректно рассчитывались размеры содержимого балуна.

— Опции отображения геообъекта неверно обрабатывались на устройствах с высокой плотностью пикселей.

— Не изменялась активная область метки при изменении стиля метки.

— Не помещалась информация об объекте в балуне-панели.

— В некоторых случаях нажатие на объект на карте вызывало смещение карты.

— Происходила ошибка, если открыть балун кластера в момент, когда на карте уже открыт другой балун.

— Не работала опция tremor в drag behavior.

— В Internet Explorer пропадала метка после закрытия балуна.

— При переключении balloonPanelMaxMapArea некоторые опции не срабатывают корректно.

— Не срабатывала геолокация пользователя по IP.

— Тянущиеся метки не растягивались, если в содержимом метки был пробел.

— Не появлялось контекстное меню по правому клику в балунах.

— Ошибки при добавлении типов карт в TypeSelector.

— Падение приложения на iPad с Retina-экраном.

— Ошибка уничтожения карты сразу после создания.

— Ошибки в модуле geoXML.

— Смещение панели балуна и копирайтов при выделении текста.

Команда разработчиков API Яндекс.Карт

1 комментарий
API 2.1,обновление
Новые панорамы Москвы
16 апреля 2014, 18:10

На Яндекс.Картах обновились панорамы Москвы. 3 000 километров дорог, 34 километра пешеходных панорам. Впервые появились интерьерные панорамы ГУМа, экспозиция дома-музея М. Горького и Марфо-Мариинская обитель.

Заново были отсняты улицы в пределах Третьего транспортного кольца, а также север и северо-запад столицы: Строгино и Фили, некоторые южные районы: Нагатинский затон, Центральное и Южное Чертаново, Зябликово и Братеево. Впервые отсняты Новокуркинское шоссе, дублер Дмитровского шоссе, реконструированная 3-я Магистральная улица, а также Алабяно-Балтийский тоннель.

Радуга над Кремлем.

Напоминаем, что теперь любой владелец сайта может встроить панорамы Яндекса на свой сайт. На сайтах панорамы будут работать точно так же, как на Яндекс.Картах: пользователи смогут виртуально перемещаться по городу и рассматривать его улицы.

Нет комментариев
панорамы,обновления карт
Как устроены Яндекс.Карты
21 апреля 2014, 13:01

Видео лекции разработчика Владимира Зайцева о том, как же на самом деле устроены Яндекс.Карты. Владимир рассказал студентам Малого ШАДа, о том, как создавать и поддерживать такие ресурсы, а также о технологиях, которые для этого используются. Если смотреть на Яндекс.Карты со стороны они представляют из себя большой сайт, на котором собрано несколько сервисов: спутниковые снимки и карта, Народная карта, поиск, пробки, маршрутизатор и навигация, панорамы и API. Обо всем этом и рассказывает в своей лекции Владимир.

Часть лекции можно прочесть в виде статьи на ХабреДругие лекции Малого ШАДа доступны на сайте tech.yandex.ru.

Нет комментариев
видео
API Яндекс.Карт версия 2.1.9
24 апреля 2014, 19:28

Опубликована новая версия API Яндекс.Карт 2.1-beta — 2.1.9. Она доступна по адресу api-maps.yandex.ru/2.1.9 и api-maps.yandex.ru/2.1.

Добавлено:

— Опция shape в templateLayoutFactory.

— Документирована модульная система API 2.1.

— Возможность указывать пустой неймспейс (параметр загрузки ns) с получением функциональности API в качестве аргумента вызова функции onload.

— Документированы стандартные реализации интерфейса IPane.

Изменено:

— Метка кластера при наведении курсором мыши увеличивает z-index.

— Promise, возвращаемый функцией ymaps.ready, подтверждается неймспейсом ymaps.

Исправлено:

— Работа методов removeMapType и removeAllMapTypes в элементе управления «Слои».

— Ошибка выставления состояния скролла в балуне кластера по умолчанию.

— Артефакты в верстке балуна-аккордеона кластера в AndroidBrowser.

— Ошибка при разборе запроса geoQuery.search.

— «Дрожание» меток в iOS 6.

— Проблемы с активацией элементов управления «Слои» и «Пробки» на планшетах под управлением OS Android.

— Мерцание элемента управления «Пробки» в тач-интерфейсе.

— Ошибки верстки элемента управления «Пробки».

— Ошибки верстки в IE.

— Ошибка при выключении редактора графики.

— В некоторых ситуациях не изменялась высота балуна-панели при изменении высоты карты.

— Методы getElement и getBalloonElement возвращали некорректные значения в режиме панели.

— В некоторых ситуациях в балуне кластера отсутствовал горизонтальной скролл.

— Балун-панель мог перекрывать метку на которой был открыт.

— В некоторых ситуациях не скрывался хинт пробок в браузере FireFox.

— Проблемы с производительностью на iPad при включенном слое пробок.

— В некоторых ситуациях сбрасывался пресет маркера после закрытия балуна.

Команда разработчиков API Яндекс.Карт

8 комментариев
API 2.1,обновление
Земля Франца-Иосифа на панорамах
25 апреля 2014, 14:55

Теплой апрельской пятницей смотреть эти панорамы совсем не страшно, ведь уже почти везде тепло, а следующая зима и холода, надеемся будут не скоро. Самая северная точка России Земля Франца-Иосифа теперь доступна на панорамах в Яндекс.Картах. Панорамы появились благодаря фотографу Ольге Паршиной, которая летом 2013 года она поучаствовала в экспедиции на архипелаг.

Первые снимки были сделаны в начале августа — на них еще можно увидеть зеленую траву. Когда экспедиция возвращалась обратно, на тех же местах почти ничего не было — цветы и мхи достаточно быстро увядают. Потом всё затягивает льдами и начинается долгая зима.

В итоге получилось 255 панорам. Теперь вы можете совершить виртуальную прогулку там, где люди бывают редко: увидеть суровые острова и побывать в заброшенных зданиях, чьи стены помнят еще начало прошлого века. А особенно внимательные виртуальные путешественники обязательно отыщут останки разбившегося самолёта.

Напоминаем, что теперь любой владелец сайта может встроить панорамы Яндекса на свой сайт. На сайтах панорамы будут работать точно так же, как на Яндекс.Картах: пользователи смогут виртуально перемещаться по городу и рассматривать его улицы.

Нет комментариев
панорамы,обновления карт
API Яндекс.Карт 2.1 выходит из беты
28 апреля 2014, 16:18

Несколько месяцев назад мы представили новую версию API 2.1-beta. Сегодня версия 2.1 перестает быть бетой — это значит, что обратная совместимость больше не будет ломаться в течение всего срока жизни ветки 2.1. Теперь вы можете безопасно переходить на ветку 2.1.

Версия 2.1.9 объявлена официальным релизом ветки 2.1 и уже доступна под соответствующим URL api-maps.yandex.ru/2.1. Также на этот адрес была автоматически переключена ссылка api-maps.yandex.ru/2.1-dev. Версии c 2.1.0 по 2.1.8 продолжат существовать в течение полугода, однако потом они будут удалены и заменены ссылками на версию 2.1.

Примеры новой версии 2.1 уже доступны в песочницеДокументация загружена на сайт. Всем удачных реализаций! 

Адаптивный дизайн

В версии 2.1 мы реализовали новый адаптивный дизайн интерфейсов карты. Теперь пользователь получает максимум карты при любом размере контейнера и экрана. Мы подумали и о базовом наборе элементов управления — теперь, чтобы его использовать не надо делать ровным счетом ничего, все работает из коробки и подстраивается под размер экрана и контейнера карты.

Мультимаршрутизатор

Все возможные похожие по характеристикам маршруты вместо одного. Теперь самый удобный маршрут выбирает пользователь. Возможно, кто-то не любит ездить по шумному проспекту предпочитая ему зеленый бульвар — теперь пользователь видит похожие по качественным характеристикам маршруты и может самостоятельно выбрать лучший. Как и раньше для каждого маршрута рассчитывается время в пути с учетом или без учета пробок, а также предоставляется подробный маршрутный лист.

Модульная система

Версия 2.1 разработан с использованием концепции модульности. Это позволяет настраивать API под конкретные задачи и предоставляет возможность регулировать объем загружаемого трафика. В качестве модулей выступают отдельные именованные сущности, например, классы, статические объекты, функции. Список всех модулей API приведен в справочнике. Кроме этого мы предоставляем возможность добавлять в модульную систему новые модули и переопределять уже существующие.

Отображение объектов на карте

В новой версии можно создавать больше меток, чем в версии 2.0. Для меток будут созданы экземпляры классов, а сущности, которые требуются для их отображения, будут подгружены и инстанцированы отложенно. Это позволило, в том числе, убрать программную асинхронность из кластеризатора и ускорить его работу.

Команда разработчиков API Яндекс.Карт

Нет комментариев
API 2.1,обновление
Вредные советы от создателей API Яндекс.Карт. Как сделать так, чтобы всё было плохо
29 апреля 2014, 15:26

Мы решили собрать все «Вредные советы», они же часто совершаемые ошибки при работе с API Яндекс.Карт в одну статью. Разработчик интерфейсов API Яндекс.Карт Марина Степанова написала статью для Хабра в которой рассказала, что нужно делать, чтобы получилась медленная и не функциональная карта.

Если гонится за вами
Слишком много человек,
Расспросите их подробно
Чем они огорчены?
Постарайтесь всех утешить.
Дайте каждому совет,
Но снижать при этом скорость
Совершенно ни к чему.
Г. Остер

Разработка API – очень специфичная область программирования. На любую задумку дизайнера и разработчика накладываются потребности и умения пользователей API. Основной фидбек, который мы получаем – это сообщения пользователей в нашем клубе. Туда присылают примеры сайтов с Яндекс.Картами, багрепорты и рекомендации по улучшению нашего продукта. Мы видим, как API смотрится в боевых условиях, и мотаем на ус.

Некоторые вещи часто делают неправильно. Сегодня я хочу о них рассказать. Все советы, которые вы прочтете — вредные. Если вы поймете, что соблюдаете некоторые из рекомендаций этой статьи, ничего страшного – никогда не поздно сделать ваш проект немного лучше. Итак, Irony mode ON.

Ни в коем случае не читайте пользовательское соглашение

Многовековой опыт использования Windows кое-чему нас научил. Мы даже не пытаемся читать пользовательские соглашения. Мы смело говорим: «Я со всем согласен» — и думаем, что кармическое возмездие никогда нас не настигнет, — «Дураки они, что ли? Ехать из своей силиконовой долины в Гусь Хрустальный, чтобы запретить мне пользоваться моей пиратской виндой?»

В случае использования API Яндекс.Карт стоит придерживаться той же стратегии.

Потому что если вы прочитаете пользовательское соглашение, то сможете понять, что вашу клевую идею воплощать на API незаконно. Например, вы не сможете сделать мониторинг транспорта или использовать API в админке к 1С. Или еще чего похуже.

Поэтому перед самым началом работы дайте себе установку – если вы не читали соглашение, вы в принципе не в курсе ограничений и мир картографии для вас безграничен. Есть конечно в этом всем минус — API могут забанить на вашем сайте, если засекут нарушение. Но, как известно, проблемы нужно решать по мере поступления, поэтому спокойно движемся дальше.

Вообще идеальный вариант — сделать сайт, отдать его заказчику, получить честно заработанную зарплату и забыть об этом навсегда. Если сумма гонорара была большой, рекомендуется сменить место жительства. Все-таки деньги портят людей.

Избегайте чтения документации в любом виде

Как известно, хороший код в комментариях не нуждается. Точно так же хорошее API не нуждается в документации. Вообще любая библиотека или модуль должны быть понятны интуитивно, а идеальный API не должен требовать навыков программирования. Поэтому если вы хотите посмотреть примеры у нас в песочнице, или почитать что-то про возможности API в руководстве, или тем более заглянуть в справочник (!) – боритесь с порывом. Верная стратегия — случайным образом выбрать один пример (желательно наименее подробный) и послушать зов сердца – оно подскажет, как писать.

Итак, куда не надо смотреть перед началом разработки приложения:

Не стоит задумываться о знании JavaScript

Как известно, программист на JavaScript – это не программист, а так – верстальщик. Вас ни в коем случае не должно сбивать с этой мысли то, что API, который вы хотите использовать, написан на JavaScript. Изучая конструкции этого языка (если так вообще можно сказать), вы рискуете забыть что-то важное из другого языка, запутаться и все пойдет прахом.

Идеальный вариант – это печатать конструкции JavaScript с помощью PHP. Приведу пример:

<?php foreach($maps as $map): ?>
myPlacemark = new ymaps.Placemark(["<?php echo $map['lantitude']; ?>" ,"<?php echo $map['longitude']; ?>" ]);
myMap.geoObjects.add(myPlacemark);
<?php endforeach;?>

Видите, как изящно мы обошлись без JavaScript!

Этот подход позволит вам избежать многих неприятных последствий

    • Ваше приложение будет работать достаточно медленно, чтобы дать пользователю время подумать о смысле жизни.
    • Ваш код не будет требовать обфускации, так как он достаточно запутан с самого начала.
    • Код страницы не будет кешироваться браузером, а будет генерироваться каждый раз заново на сервере.

Печально, что многие программисты все-таки пытаются идти против системы. Они пишут код на чистом, хорошо структурированном JavaScript. Загружают данные пачками по одним и тем же URL, засоряя кеш браузера. В результате их приложения работают быстро, пользователи воспринимают это как должное и даже не смотрят на другие сайты. Подумайте о подрастающем поколении – хватит делать сайты, на которых школьники проводят свою молодость, освободим человечество от интернет-зависимости!

Книга, которую не стоит читать, если вы решите разработать приложение на JavaScript:

Избегайте структурирования кода 

Если вы планируете сделать что-то чуть более сложное, чем схема проезда, вам может прийти в голову продумать архитектуру вашего сайта. Возможно, вы даже захотите выделить в коде компоненты, создать классы или разбить код на функции.

Этого не стоит делать по нескольким причинам:

    • Код, разбитый на модули, сложно читать, потому что команды стоят не по порядку. 
    • На разработку архитектуры требуется много времени.
    • Приложение, использующее карты, просто недостойно вашего времени и внимания. Точка.

Вещи, которых стоит избегать при разработке приложения, использующего карты:

    • Не надо разбивать код на классы или функции.
    • Не стоит использовать модульные системы, никакие RequireJS вам не нужны.
    • Не надо разделять код и данные по разным файлам – если файлов много, в них легко запутаться

К сожалению, у нас есть примеры, которые вопреки всему используют эти подходы. Посмотреть и оценить их нелепость можно в песочнице.

// Задание собственного модуля.
ymaps.modules.define('CustomModule', function (provide) {
    var CustomModule = function (defValue) {
        this.field = defValue;
    };
    provide(CustomModule);
});

// Запрос модулей.
ymaps.modules.require(['CustomModule'])
.spread(
function (CustomModule) {
    // ...
},
this
);

В версии 2.1 разработчики API буквально расставили ловушки, открыв модульную систему, которая используется в API. Теперь слабый духом разработчик может не выдержать и разбить свой код на модули. Мужайтесь.

Книги, которые могут помешать вам писать идеальный код, писали коварные люди. У них система ценностей перевернута с ног на голову. Врага надо знать в лицо, вот некоторые из потенциально опасных изданий:

Готовьте все заранее

Если вы планируете показать на карте большое количество объектов, нужно решить, в какой момент загружать данные с сервера на клиент. Единственно правильный путь – загрузить данные сразу и желательно до загрузки контента страницы, на которой показана карта. Подумайте сами – если не сейчас, то когда? У человека может отключиться интернет и тогда плакали наши меточки. Не все программисты поняли эту простую истину и все еще пытаются загружать данные по требованию.

Вот грустный пример, показывающий, как подгрузить данные в балун метки по требованию.Вот еще один грустный пример, показывающий, как создать карту по требованию. И чего только эти разработчики не учудят…

Загружайте с запасом

API – это много кода, разбитого на модули и пакеты. После разработки вашего сайта нужно решить еще один важный вопрос: какой код API подключать на свой сайт?

Тут будет не лишним вспомнить о случаях, когда вы посылали друга за баночкой колы, а он одну и приносил. Ровно то же правило работает и для загрузки кода. Лучше загрузить весь код API целиком – никогда не знаешь, что тебе пригодится. В версии 2.0 разработчики насоздавали пакеты, которые пользователь может случайно начать использовать, если скопирует пример из песочницы не задумываясь.

Как избежать подобных ошибок? При использовании версии 2.0 любые комбинации загружаемых модулей надо поменять на package.full. При таком подходе пользователь получит намного больше кода, что хорошо. 

В версии 2.1 разработчики, к сожалению, просекли, что люди не поддаются на провокации и грузят API целиком. Поэтому в версии 2.1 вообще отменили пакеты, а package.full теперь разбит на части, которые подгружаются асинхронно по мере надобности.

Вместо пакетов теперь можно подключать одиночные модули, которые вы хотите использовать. Вообще без всякого запаса.

Программировать хорошо становится все сложнее.

Добавляйте элементы управления 

Пользователь всегда рад, когда на карте есть кнопки. Кто не любит кнопки? Кнопки любят все! Вы можете скопировать пример из песочницы для версии 2.0, демонстрирующий работу всех имеющихся элементов управления, и добавить код на свой сайт как есть.

Опытный пользователь может заметить, что на этой карте представлены не все элементы управления. Нерадивые программисты забыли добавить на карту второй элемент управления масштабом и контрол поиска. Кстати, раньше этот пример содержал сразу два элемента управления масштабом. Поэтому мы периодически находим сайты, на которых все работает как надо – на карте есть все, что нужно: и большой контрол, и маленький. Зачем понадобилось делать пример хуже, остается загадкой и по сей день.

Версия 2.1 опять поставила нам подножку. В ней стало меньше элементов управления (злодеи выпилили мини-карту), они установлены на карту по умолчанию и на маленькой карте схлопываются до небольших размеров.

Убедитесь сами – кнопок мало, сами они маленькие. Карта вообще как голая! В общем 2.1 вообще лучше не использовать.

Покажите пользователю, насколько слаб его браузер

Если вам надо показать сотни или даже тысячи объектов на карте, смело идите в бой. Создавайте метки и мужественно наносите их на карту в полном объеме. При достаточном количестве меток вы сразу покажете пользователю, кто в мире хозяин – человек или браузер. Потому что при большом количестве меток (100 для IE, 500 для всех остальных) браузер крякнет и зависнет на неопределенный срок. Так ему и надо.

Разработчики, пытающиеся скрыть несовершенство браузеров, маскируют их недостатки весьма изощренными способами:

    • Используют кластеризацию объектов. Этому хитроумному приему у нас посвящено немало примеров и даже целая статья.
    • Используют технологию активных областей. Несмотря на сложность разработки, она снимает любые ограничения на количество отображаемых объектов. Оценить коварство замысла можно, прочитав руководство разработчика или посмотрев примерв песочнице.

Не пытайтесь экономить запросы к геокодеру

Очень часто пользователи сталкиваются вот с какой задачей. У них есть список адресов магазинов, аптек, достопримечательностей и многого другого. Все эти адреса нужно показать на карте. Задача решается просто – нужно взять все адреса, отправить их на клиентскую сторону, и просто-напросто геокодировать адреса в координаты меток на клиенте.

Неподготовленный читатель может спросить «Правильно ли то, что набор меток у нас один и тот же, а геокодируется он каждый раз при каждом вызове моего приложения у каждого пользователя заново?». Мы отвечаем на этот вопрос прямо: «Не волнуйтесь». Сервера Яндекса достаточно отказоустойчивы и выдержат все. Единственная загвоздка – при большом количестве запросов с вашего сайта, вы можете превысить лимит в 25 000 запросов не геокодирование и ваш сайт забанят. Но эту проблему мы уже освещали выше, поэтому не будем засорять голову по пустякам.

Разработчики, которые не читали эту статью и не верят в силу серверов Яндекса, придумали геокодировать данные на сервере. А один наш сотрудник даже написал модуль для серверного геокодирования на node.js. Этому посвящен раздел в руководстве разработчика.

И не лень же было…

Не отбирайте хлеб у службы техподдержки

В какой-то момент вы можете почувствовать странное непреодолимое желание пообщаться со службой техподдержки API Яндекс.Карт. К этому событию нужно подойти серьезно, а не абы как.

Постарайтесь не грузить службу техподдержки лишними подробностями. Идеальный багрепорт состоит из пяти слов – «все сломалось, ничего не работает». Вообще, наша служба техподдержки уже давно сократила эти пять ключевых слов в одно – «всесломалосьничегонеработает». И теперь у нас появился термин, по которому и поддержка, и разработчики мгновенно понимают суть вещей.

Вот хороший пример обращения в клубе:

Разработчик при виде этого сообщения мгновенно понимает, что вся его работа – тлен. Вселенная появилась из большого взрыва, расширяется и вот-вот схлопнется. Все пропало. Ничего не работает.

Вещи, которых стоит избегать при обращении в техподдержку или клуб:

    • Подробное описание проблемы.
    • Приведение кода, с помощью которого можно повторить баг.
    • Ссылка на страницу, где воспроизводится баг.

Если вы хотите написать о проблеме в клуб разработчиков, не стоит пользоваться поиском, читать ответ на FAQ и пытаться каким-то другим образом найти решение своей проблемы. Подумайте – если все будут находить ответы на вопросы сами, чем тогда заниматься работникам техподдержки? 

Заключение

Вот и все вредные советы, о которых мы хотели рассказать. Вообще типовые ошибки для вас – это задачи для нас. Если разработчики наступают на одни и те же грабли при использовании API, то это в какой-то мере и наша вина. Возможно мы не предусмотрели кейс, написали мало примеров, плохо сделали документацию и т.д и т.п. В частности, в версии 2.1 мы постарались сделать так, чтобы человеку было сложнее ошибиться, чем в версии 2.0. И работы в этом направлении еще выше крыши.

Не принимайте нашу статью близко к сердцу, улучшайте свои проекты, присылайте нам добрые и гневные пожелания. Мы вам все объясним и расскажем, даже если все сломалось и ничего не работает

Нет комментариев
API 2.1,статьи,API 2.0