SlideShare a Scribd company logo
1 of 35
Download to read offline
API 2.0
Новые интерфейсы Яндекс.Карт
теперь и на украинском
Александр	
  Зинчук
Разработчик	
  интерфейсов



Я.Субботник, Киев, 5 мая 2012 года
1. API Яндекс.Карт в цифрах

    2. Как мы делали 2.0

    3. Объектная модель

    4. Кастомизация

    5. Работа на touch-устройствах

2
API Яндекс.Карт в цифрах




3
4
Пользователи API с внешних сайтов:



         1 000 000 человек
               ежедневно




5
http://maps.yandex.ua/




    Аудитория: 1 300 000 человек
             ежемесячно
6
http://maps.yandex.ua/




7
Как мы делали API 2.0




8
Без ключей                   По HTTPS



                  Новый дизайн



                                 Новая
    На 4 языках
                                 архитектура
9
Проблемы 1.x           Требования к 2.0
— большое монолитное        — модульность
     ядро                   — простые интерфейсы
— большие сложные             с понятной
     интерфейсы, сильная      ответственностью
     связанность объектов   — режим для
— сложность отладки           упрощенной отладки

                            — многоязычность

10
Модульная система
     Состоит из следующих логических единиц:

           — модуль

           — пакет

           — сборщик

           — загрузчик

11
Модуль
     — атомарная единица функциональности
        с уникальным именем

     — модули делятся на 2 типа: js, css

     — js модуль это javascript замыкание,
        предоставляющее в публичную область 1 объект
        или класс

     — может использовать для работы другие модули

     — модулей много (≈ 600 в API)
12
Подключение
    Язык
интерфейса *             Порядок координат          Пространство имен (ymaps)
                              (latlong)




/?lang=uk-UA&mode=debug&coordorder=longlat&load=package.map&ns=YM




         Режим работы (release)              Загружаемые пакеты



                                                   * обязательный параметр
                                                   () значение по умолчанию
    13
2 запроса:
     1. загрузчик + информация о всех модулях и пакетах
     2. код запрошенных модулей включая зависимости




14
Объектная модель




15
Карта


         Объектная модель



     События                Опции


16
Объектная модель карты
                              Map

      .options                                      .events

                  .cursors          .behaviors

      .balloon                                       .hint

                  .controls         .geoObjects

      .action                                     .zoomRange

                  .panes              .layers

     .converter                                    .container


17
Менеджеры опций и событий
                              Map

      .options                                      .events

                  .cursors          .behaviors

      .balloon                                       .hint

                  .controls         .geoObjects

      .action                                     .zoomRange

                  .panes              .layers

     .converter                                    .container


18
Корневые коллекции карты
                              Map

      .options                                      .events

                  .cursors          .behaviors

      .balloon                                       .hint

                  .controls         .geoObjects

      .action                                     .zoomRange

                  .panes              .layers

     .converter                                    .container


19
Необязательные поля карты
                              Map

      .options                                      .events

                  .cursors          .behaviors

      .balloon                                       .hint

                  .controls         .geoObjects

      .action                                     .zoomRange

                  .panes              .layers

     .converter                                    .container


20
Геообъекты
          1.1                     2.0

—    Placemark          —    GeoObject

—    Polyline           Вспомогательные классы

—    Polygon            —   Placemark
                        —   Polyline
                        —   Polygon
                        —   Circle
                        —   Rectangle

21                                               46
Геообъект / отображение геометрии
                                    интерактивная
                                    интерактивная графика
        IOverlayFactory             статическая графика
   фабрики оверлеев                 хотспотная



                              html (на основе макета)
         IOverlay             графические статические
      оверлеи       ТИПЫ
                              хотспотные
                              графические интерактивные


                                                 макет (layout)   ILayout

                                                 графика (svg, canvas, etc.)
          частные реализации
                                                 хотспоты   IHotspotShape
 22
интерфейс

              ILayout            < IDomEventEmitter




              2. Макеты (Лейауты)
              метод                           параметры

           конструктор                    {Object} dataSet
      setParentElement() /
                                         {DOMElement} parent
       getParentElement()
      setData() / getData()               {Object} dataSet

            isEmpty()                             -

     getClientBoundingRect()                      -


23
Контролы                                   ILayout
                        Балун
Геообъекты                      Хинт


                                       templateLayoutFactory.createClass()

                                              фабрика лейаутов
              тема twirl



                            Макеты (лейауты)

                                универсальные


                        Image           ImageWithContent
    24
Работа на touch-устройствах




25
Работа	
  на	
  touch-­‐устройствах

       Код, написанный для десктопов,
       должен без изменений работать
       на touch-устройствах




26
Эмулируем события мыши




 touchstart → mouseenter, mousemove, mousedown
            touchend → mouseup (магия),
27             mousemove, mouseleave
Возможны варианты

     Был               Ничего
     touchmove?        не делаем

     Прошло
     > 400 мс?         contextmenu

     Был click
     < 250 мс назад?   dblclick

     Не было           click
     ничего



28
Мы решили проблему?



Код, написанный для десктопов, работает
без изменений на touch-устройствах
— Если, конечно, нет неочевидных интерфейсных решений на :hover




Можно пользоваться нашим touch-фреймворком



29
А можно что-то еще?




30
Яндекс API 2.0 + тайлы OSM




31
32
Собственная карта + кластеризатор




33
http://api.yandex.ru/maps/




34
Александр Зинчук
Разработчик интерфейсов



zinchuk@yandex-team.ru

@ajaxy_ru

More Related Content

Similar to Александр Зинчук "API 2.0: Новые интерфейсы Яндекс.Карт – теперь и на украинском"

Антон Корзунов "Графика на карте в API 2.0"
Антон Корзунов "Графика на карте в API 2.0"Антон Корзунов "Графика на карте в API 2.0"
Антон Корзунов "Графика на карте в API 2.0"Yandex
 
Разбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutРазбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutRambler Android
 
Фёдор Голубев, Леонид Шныр "Яндекс.Карты: между пользователем и разработчиком"
Фёдор Голубев, Леонид Шныр "Яндекс.Карты: между пользователем и разработчиком"Фёдор Голубев, Леонид Шныр "Яндекс.Карты: между пользователем и разработчиком"
Фёдор Голубев, Леонид Шныр "Яндекс.Карты: между пользователем и разработчиком"Yandex
 
Федор Голубев "Компас, секстант и другие инструменты современного картографа....
Федор Голубев "Компас, секстант и другие инструменты современного картографа....Федор Голубев "Компас, секстант и другие инструменты современного картографа....
Федор Голубев "Компас, секстант и другие инструменты современного картографа....Yandex
 
Android - 14 - Geodata
Android - 14 - GeodataAndroid - 14 - Geodata
Android - 14 - GeodataNoveo
 
Кастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутриКастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутриKirill Averyanov
 
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов —  Кастомная кнопка: взгляд изнутриКирилл Аверьянов —  Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутриCocoaHeads
 
Расчётная работа
Расчётная работаРасчётная работа
Расчётная работаLena Shashalevich
 
Интерактивные карты планировок на сайтах торговых центров
Интерактивные карты планировок на сайтах торговых центровИнтерактивные карты планировок на сайтах торговых центров
Интерактивные карты планировок на сайтах торговых центровАгентство AlterEGO
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
 
Всеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексВсеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексElena Voynova
 
Использование API Яндекс.Карт
Использование API Яндекс.КартИспользование API Яндекс.Карт
Использование API Яндекс.КартFDConf
 
Проектирование архитектуры приложений
Проектирование архитектуры приложенийПроектирование архитектуры приложений
Проектирование архитектуры приложенийAndrew Mayorov
 
Android осень 2013 лекция 1
Android осень 2013 лекция 1Android осень 2013 лекция 1
Android осень 2013 лекция 1Technopark
 
Как модуль geoQuery упрощает работу с API Яндекс.Карт.
Как модуль geoQuery упрощает работу с API Яндекс.Карт.Как модуль geoQuery упрощает работу с API Яндекс.Карт.
Как модуль geoQuery упрощает работу с API Яндекс.Карт.Optima-PROMO
 
Сергей Константинов — Простая обработка групп геообъектов на карте
Сергей Константинов — Простая обработка групп геообъектов на картеСергей Константинов — Простая обработка групп геообъектов на карте
Сергей Константинов — Простая обработка групп геообъектов на картеYandex
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorDevGAMM Conference
 
KlyuchYuriy_for_code4russia
KlyuchYuriy_for_code4russiaKlyuchYuriy_for_code4russia
KlyuchYuriy_for_code4russiaOlya Suvorova
 

Similar to Александр Зинчук "API 2.0: Новые интерфейсы Яндекс.Карт – теперь и на украинском" (20)

Антон Корзунов "Графика на карте в API 2.0"
Антон Корзунов "Графика на карте в API 2.0"Антон Корзунов "Графика на карте в API 2.0"
Антон Корзунов "Графика на карте в API 2.0"
 
Разбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutРазбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayout
 
Фёдор Голубев, Леонид Шныр "Яндекс.Карты: между пользователем и разработчиком"
Фёдор Голубев, Леонид Шныр "Яндекс.Карты: между пользователем и разработчиком"Фёдор Голубев, Леонид Шныр "Яндекс.Карты: между пользователем и разработчиком"
Фёдор Голубев, Леонид Шныр "Яндекс.Карты: между пользователем и разработчиком"
 
Паттерны проектирования
Паттерны проектированияПаттерны проектирования
Паттерны проектирования
 
Федор Голубев "Компас, секстант и другие инструменты современного картографа....
Федор Голубев "Компас, секстант и другие инструменты современного картографа....Федор Голубев "Компас, секстант и другие инструменты современного картографа....
Федор Голубев "Компас, секстант и другие инструменты современного картографа....
 
Android - 14 - Geodata
Android - 14 - GeodataAndroid - 14 - Geodata
Android - 14 - Geodata
 
Кастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутриКастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутри
 
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов —  Кастомная кнопка: взгляд изнутриКирилл Аверьянов —  Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутри
 
Расчётная работа
Расчётная работаРасчётная работа
Расчётная работа
 
Интерактивные карты планировок на сайтах торговых центров
Интерактивные карты планировок на сайтах торговых центровИнтерактивные карты планировок на сайтах торговых центров
Интерактивные карты планировок на сайтах торговых центров
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
 
Всеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексВсеволод Шмыров, Яндекс
Всеволод Шмыров, Яндекс
 
Использование API Яндекс.Карт
Использование API Яндекс.КартИспользование API Яндекс.Карт
Использование API Яндекс.Карт
 
Проектирование архитектуры приложений
Проектирование архитектуры приложенийПроектирование архитектуры приложений
Проектирование архитектуры приложений
 
динамические конструкторы
динамические конструкторыдинамические конструкторы
динамические конструкторы
 
Android осень 2013 лекция 1
Android осень 2013 лекция 1Android осень 2013 лекция 1
Android осень 2013 лекция 1
 
Как модуль geoQuery упрощает работу с API Яндекс.Карт.
Как модуль geoQuery упрощает работу с API Яндекс.Карт.Как модуль geoQuery упрощает работу с API Яндекс.Карт.
Как модуль geoQuery упрощает работу с API Яндекс.Карт.
 
Сергей Константинов — Простая обработка групп геообъектов на карте
Сергей Константинов — Простая обработка групп геообъектов на картеСергей Константинов — Простая обработка групп геообъектов на карте
Сергей Константинов — Простая обработка групп геообъектов на карте
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at Vizor
 
KlyuchYuriy_for_code4russia
KlyuchYuriy_for_code4russiaKlyuchYuriy_for_code4russia
KlyuchYuriy_for_code4russia
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Александр Зинчук "API 2.0: Новые интерфейсы Яндекс.Карт – теперь и на украинском"

  • 1. API 2.0 Новые интерфейсы Яндекс.Карт теперь и на украинском Александр  Зинчук Разработчик  интерфейсов Я.Субботник, Киев, 5 мая 2012 года
  • 2. 1. API Яндекс.Карт в цифрах 2. Как мы делали 2.0 3. Объектная модель 4. Кастомизация 5. Работа на touch-устройствах 2
  • 4. 4
  • 5. Пользователи API с внешних сайтов: 1 000 000 человек ежедневно 5
  • 6. http://maps.yandex.ua/ Аудитория: 1 300 000 человек ежемесячно 6
  • 9. Без ключей По HTTPS Новый дизайн Новая На 4 языках архитектура 9
  • 10. Проблемы 1.x Требования к 2.0 — большое монолитное — модульность ядро — простые интерфейсы — большие сложные с понятной интерфейсы, сильная ответственностью связанность объектов — режим для — сложность отладки упрощенной отладки — многоязычность 10
  • 11. Модульная система Состоит из следующих логических единиц: — модуль — пакет — сборщик — загрузчик 11
  • 12. Модуль — атомарная единица функциональности с уникальным именем — модули делятся на 2 типа: js, css — js модуль это javascript замыкание, предоставляющее в публичную область 1 объект или класс — может использовать для работы другие модули — модулей много (≈ 600 в API) 12
  • 13. Подключение Язык интерфейса * Порядок координат Пространство имен (ymaps) (latlong) /?lang=uk-UA&mode=debug&coordorder=longlat&load=package.map&ns=YM Режим работы (release) Загружаемые пакеты * обязательный параметр () значение по умолчанию 13
  • 14. 2 запроса: 1. загрузчик + информация о всех модулях и пакетах 2. код запрошенных модулей включая зависимости 14
  • 16. Карта Объектная модель События Опции 16
  • 17. Объектная модель карты Map .options .events .cursors .behaviors .balloon .hint .controls .geoObjects .action .zoomRange .panes .layers .converter .container 17
  • 18. Менеджеры опций и событий Map .options .events .cursors .behaviors .balloon .hint .controls .geoObjects .action .zoomRange .panes .layers .converter .container 18
  • 19. Корневые коллекции карты Map .options .events .cursors .behaviors .balloon .hint .controls .geoObjects .action .zoomRange .panes .layers .converter .container 19
  • 20. Необязательные поля карты Map .options .events .cursors .behaviors .balloon .hint .controls .geoObjects .action .zoomRange .panes .layers .converter .container 20
  • 21. Геообъекты 1.1 2.0 — Placemark — GeoObject — Polyline Вспомогательные классы — Polygon — Placemark — Polyline — Polygon — Circle — Rectangle 21 46
  • 22. Геообъект / отображение геометрии интерактивная интерактивная графика IOverlayFactory статическая графика фабрики оверлеев хотспотная html (на основе макета) IOverlay графические статические оверлеи ТИПЫ хотспотные графические интерактивные макет (layout) ILayout графика (svg, canvas, etc.) частные реализации хотспоты IHotspotShape 22
  • 23. интерфейс ILayout < IDomEventEmitter 2. Макеты (Лейауты) метод параметры конструктор {Object} dataSet setParentElement() / {DOMElement} parent getParentElement() setData() / getData() {Object} dataSet isEmpty() - getClientBoundingRect() - 23
  • 24. Контролы ILayout Балун Геообъекты Хинт templateLayoutFactory.createClass() фабрика лейаутов тема twirl Макеты (лейауты) универсальные Image ImageWithContent 24
  • 26. Работа  на  touch-­‐устройствах Код, написанный для десктопов, должен без изменений работать на touch-устройствах 26
  • 27. Эмулируем события мыши touchstart → mouseenter, mousemove, mousedown touchend → mouseup (магия), 27 mousemove, mouseleave
  • 28. Возможны варианты Был Ничего touchmove? не делаем Прошло > 400 мс? contextmenu Был click < 250 мс назад? dblclick Не было click ничего 28
  • 29. Мы решили проблему? Код, написанный для десктопов, работает без изменений на touch-устройствах — Если, конечно, нет неочевидных интерфейсных решений на :hover Можно пользоваться нашим touch-фреймворком 29
  • 31. Яндекс API 2.0 + тайлы OSM 31
  • 32. 32
  • 33. Собственная карта + кластеризатор 33