SlideShare a Scribd company logo
1 of 25
Download to read offline
Yandex Map Kit
для Android OS в примерах
Максим Хромцов
Разработчик



Я.Субботник, Алматы, 15 октября 2011 года
Android Map Kit Framework
    • Что это?
    • Где можно использовать
    • Функциональные возможности
    • Архитектура
    • Проблемы при разработке
    • Немного об iOS
2
Что это ?




3
Где можно использовать
    •   Социальные приложения
    •   Информационно-справочные ресурсы
    •   Игры
    •   Навигация



4
Функциональные возможности
• Управление картой (сдвиг, изменение
  масштаба)
• Показ статичных объектов на карте
• Возможность передвигать объекты на карте
• Гибкая настройка подсказок к объектам
• Отображение местоположения
• Отображение пробок и баллов в пробках
• Поддержка различных видов карт: схема,
  гибрид и народная
5
Архитектура
         MapView


       Map Kit Core



       MapController


      OverlayManager




6
Архитектура
Добавление в ваш layout

    <ru.yandex.yandexmapkit.MapView
       android:id="@+id/map"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:apiKey=“you are api key"
       />




7
Архитектура
      Возможности MapController
• Перемещение карты;
• Изменение масштаба;
• Изменение видов карт: схема, гибрид и
  народная;
• Подписка на получение событий от карты;



8
Архитектура
              Работа с MapController
    …
    // Получаем объект MapView
    final MapView mMapView = (MapView) findViewById(R.id.map);

    // Получаем объект MapController
    MapController mMapController = mapView.getMapController();

    // Перемещаем карту на Отель Достык
    mMapController. setPositionAnimationTo(new GeoPoint(43.244276, 76.951331));

    // Изменяем зум
    mMapController.setZoomCurrent(17);
    …


9
Архитектура
         Возможности OverlayManager
•    Добавление нового слоя на карту;
•    Удаление слоя с карты;
•    Отрисовка слоев;
•    Передача пользовательских
     сообщений слоям;

10
Архитектура
           Возможности Overlay

•    Добавление нового объекта на слой;
•    Удаление объекта со слоя;
•    Отрисовка объектов;
•    Действие с выбранным объектом;


11
Архитектура
Работа с OverlayManager добовления слоя
      …
      // Получаем объект MapView
      final MapView mMapView = (MapView) findViewById(R.id.map);

      // Получаем объект MapController
      MapController mMapController = mapView.getMapController();

      // Получаем объект OverlayManager
      OverlayManager mOverlayManager = mMapController.getOverlayManager();

      //Добавляем новый слой
      mOverlayManager.addOverlay(overlay);
      …


 12
Архитектура
  Работа с Overlay: добавление объекта
…
//Создаем новый слой
Overlay overlay = new Overlay(mMapController);

// Создаем объект слоя
OverlayItem yandex = new OverlayItem(new GeoPoint(55.734029 , 37.588499), bitmap);

// Добавляем объект на слой
overlay.addOverlayItem(yandex);

// Добавляем слой на карту
mOverlayManager.addOverlay(overlay);
…


 13
Архитектура
     Работа с Overlay




14
Архитектура
 Работа с Overlay: добавление балуна
…
// Создаем объект балуна
BalloonItem balloonYandex = null;
balloonYandex = new BalloonItem(new GeoPoint(43.244276, 76.951331), bitmap);
balloonYandex.setText("<b>Я.Субботник</b><br/>Отель Достык");

// Добавляем балун
yandex.setBalloonItem(balloonYandex);
…




15
Архитектура
  Работа с Overlay : получение GeoCode
public class MyHistoryGeoCode implements
GeoCodeListener {
…
//Вызываем запрос на получение GeoCode
mMapController.getDownloader().getGeoCode
(this, new GeoPoint(43.244276, 76.951331));
 …

// Обрабатываем ответ о GeoCode
public boolean onFinishGeoCode(GeoCode geoCode) {
    if (geoCode!= null){
          // Информация по данной точке
    }
…

  16
Проблемы при разработке
• Отображение объектов из разных слоев;
• Взаимодействие с объектами из разных
  слоев;




 17
Немного об iOS
                    Архитектура

• Преемственность с Apple Map Kit Framework
     – MKMapView -> YMKMapView
     – MKMapViewDelegate -> YMKMapViewDelegate
     – MKAnnotation -> YMKAnnotation
     – MKAnnotationView -> YMKAnnotationView
     – MKPinAnnotationView -> YMKPinAnnotationView


18
Немного об iOS
        Архитектура
             • YMKMapView




19
Немного об iOS
        Архитектура
             • YMKAnnotation
             • YMKPinAnnotationView




20
Немного об iOS
          Добавление объекта на карту
Объект, удовлетворяющий протоколу
YMKAnnotation
     @interface PointAnnotation : NSObject <YMKAnnotation>

     + (id)pointAnnotation;

     @property (nonatomic, copy) NSString * title;
     @property (nonatomic, copy) NSString * subtitle;
     @property (nonatomic, assign) YMKMapCoordinate coordinate;

     @end
21
Немного об iOS
            Добавление объекта на карту
     - (void)configureAndInstallAnnotations {
        self.metroAnnotation = [PointAnnotation pointAnnotation];

      self.metroAnnotation.coordinate =
     YMKMapCoordinateMake(43.244276, 76.951331);
      self.metroAnnotation.title = @"Я.Субботник";
      self.metroAnnotation.subtitle = @"Отель Достык";

         [self.mapView addAnnotation:self.metroAnnotation];

         self.mapView.selectedAnnotation = self.metroAnnotation;
     }

22
Немного об iOS
               Добавление объекта на карту
- (YMKAnnotationView *)mapView:(YMKMapView *)mapView
         viewForAnnotation:(id<YMKAnnotation>)annotation
{
   static NSString * identifier = @"pointAnnotation";
   YMKPinAnnotationView * view = (YMKPinAnnotationView *)
           [mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
   if (view == nil) {
      view = [[[YMKPinAnnotationView alloc] initWithAnnotation:annotation
                              reuseIdentifier:identifier] autorelease];
      view.canShowCallout = YES;

         UIButton * rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
         view.rightCalloutAccessoryView = rightButton;
    }
    view.annotation = self.metroAnnotation;
    return view;
}   23
Полезные ссылки
     http://legal.yandex.ru/mapkit

     http://clubs.ya.ru/mobilemaps

     https://github.com/yandexmobile/yandexmapkit-ios

     https://github.com/yandexmobile/yandexmapkit-android




24
Максим Хромцов
Разработчик
mksaint13@yandex-team.ru

More Related Content

What's hot

Private cloud without vendor lock // Serverless
Private cloud without vendor lock // ServerlessPrivate cloud without vendor lock // Serverless
Private cloud without vendor lock // ServerlessTimur Shemsedinov
 
QThreads: Are You Using Them Wrong?
QThreads: Are You Using Them Wrong? QThreads: Are You Using Them Wrong?
QThreads: Are You Using Them Wrong? ICS
 
Summary of linux kernel security protections
Summary of linux kernel security protectionsSummary of linux kernel security protections
Summary of linux kernel security protectionsShubham Dubey
 
Amp notes unit 4-6 by badebhau
Amp notes unit 4-6 by badebhauAmp notes unit 4-6 by badebhau
Amp notes unit 4-6 by badebhauEr. Bade Bhausaheb
 
Angular Dependency Injection
Angular Dependency InjectionAngular Dependency Injection
Angular Dependency InjectionNir Kaufman
 
Clean backends with NestJs
Clean backends with NestJsClean backends with NestJs
Clean backends with NestJsAymene Bennour
 
Nestjs MasterClass Slides
Nestjs MasterClass SlidesNestjs MasterClass Slides
Nestjs MasterClass SlidesNir Kaufman
 
Server side rendering with React and Symfony
Server side rendering with React and SymfonyServer side rendering with React and Symfony
Server side rendering with React and SymfonyIgnacio Martín
 
AngularJS - Services
AngularJS - ServicesAngularJS - Services
AngularJS - ServicesNir Kaufman
 
RESTful API In Node Js using Express
RESTful API In Node Js using Express RESTful API In Node Js using Express
RESTful API In Node Js using Express Jeetendra singh
 
A Brief Introduction to React.js
A Brief Introduction to React.jsA Brief Introduction to React.js
A Brief Introduction to React.jsDoug Neiner
 
Best practices: Async vs. coroutines - Unite Copenhagen 2019
Best practices: Async vs. coroutines - Unite Copenhagen 2019Best practices: Async vs. coroutines - Unite Copenhagen 2019
Best practices: Async vs. coroutines - Unite Copenhagen 2019Unity Technologies
 
Try Jetpack Compose
Try Jetpack ComposeTry Jetpack Compose
Try Jetpack ComposeLutasLin
 
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesKillzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesGuerrilla
 
End to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux SagaEnd to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux SagaBabacar NIANG
 

What's hot (20)

Private cloud without vendor lock // Serverless
Private cloud without vendor lock // ServerlessPrivate cloud without vendor lock // Serverless
Private cloud without vendor lock // Serverless
 
QThreads: Are You Using Them Wrong?
QThreads: Are You Using Them Wrong? QThreads: Are You Using Them Wrong?
QThreads: Are You Using Them Wrong?
 
Summary of linux kernel security protections
Summary of linux kernel security protectionsSummary of linux kernel security protections
Summary of linux kernel security protections
 
Amp notes unit 4-6 by badebhau
Amp notes unit 4-6 by badebhauAmp notes unit 4-6 by badebhau
Amp notes unit 4-6 by badebhau
 
Angular Dependency Injection
Angular Dependency InjectionAngular Dependency Injection
Angular Dependency Injection
 
Node.js
Node.jsNode.js
Node.js
 
Clean backends with NestJs
Clean backends with NestJsClean backends with NestJs
Clean backends with NestJs
 
Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1
 
Nestjs MasterClass Slides
Nestjs MasterClass SlidesNestjs MasterClass Slides
Nestjs MasterClass Slides
 
Server side rendering with React and Symfony
Server side rendering with React and SymfonyServer side rendering with React and Symfony
Server side rendering with React and Symfony
 
AngularJS - Services
AngularJS - ServicesAngularJS - Services
AngularJS - Services
 
RESTful API In Node Js using Express
RESTful API In Node Js using Express RESTful API In Node Js using Express
RESTful API In Node Js using Express
 
A Brief Introduction to React.js
A Brief Introduction to React.jsA Brief Introduction to React.js
A Brief Introduction to React.js
 
ReactJS
ReactJSReactJS
ReactJS
 
Best practices: Async vs. coroutines - Unite Copenhagen 2019
Best practices: Async vs. coroutines - Unite Copenhagen 2019Best practices: Async vs. coroutines - Unite Copenhagen 2019
Best practices: Async vs. coroutines - Unite Copenhagen 2019
 
Try Jetpack Compose
Try Jetpack ComposeTry Jetpack Compose
Try Jetpack Compose
 
Getting started with typescript
Getting started with typescriptGetting started with typescript
Getting started with typescript
 
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesKillzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
 
End to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux SagaEnd to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux Saga
 
NANO FINISHING TECHNIQUES
NANO FINISHING TECHNIQUESNANO FINISHING TECHNIQUES
NANO FINISHING TECHNIQUES
 

Similar to Максим Хромцов "Yandex MapKit для Android OS в примерах"

iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKitNoveo
 
Разбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutРазбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutRambler Android
 
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...it-people
 
Марина Степанова "Много объектов на карте"
Марина Степанова "Много объектов на карте"Марина Степанова "Много объектов на карте"
Марина Степанова "Много объектов на карте"Yandex
 
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеШкола-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеГлеб Тарасов
 
Александр Тармолов "API Яндекс.Карт"
Александр Тармолов "API Яндекс.Карт"Александр Тармолов "API Яндекс.Карт"
Александр Тармолов "API Яндекс.Карт"Yandex
 
Всеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексВсеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексElena Voynova
 
Роман Бусыгин "Yandex Map Kit для iOS в примерах"
Роман Бусыгин "Yandex Map Kit для iOS в примерах"Роман Бусыгин "Yandex Map Kit для iOS в примерах"
Роман Бусыгин "Yandex Map Kit для iOS в примерах"Yandex
 
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15MoscowJS
 
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsГлеб Тарасов
 
"Погружение в Robolectric" Дмитрий Костырев (Avito)
"Погружение в Robolectric"  Дмитрий Костырев (Avito)"Погружение в Robolectric"  Дмитрий Костырев (Avito)
"Погружение в Robolectric" Дмитрий Костырев (Avito)AvitoTech
 
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”Lviv MDDay 2014. Олександр Зозуля “Google карти для android”
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”Lviv Startup Club
 
Фёдор Голубев "API Яндекс.Карт"
Фёдор Голубев "API Яндекс.Карт"Фёдор Голубев "API Яндекс.Карт"
Фёдор Голубев "API Яндекс.Карт"Yandex
 
ES2015+: давно пора!
ES2015+: давно пора!ES2015+: давно пора!
ES2015+: давно пора!Vitebsk Miniq
 
создание HTML игр на элементе canvas
создание HTML игр на элементе canvasсоздание HTML игр на элементе canvas
создание HTML игр на элементе canvasAlexander Samantsov
 
Роман Ермолов - Отладка приложений под iOS
Роман Ермолов - Отладка приложений под iOSРоман Ермолов - Отладка приложений под iOS
Роман Ермолов - Отладка приложений под iOSAlexander Zimin
 
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33MoscowJS
 
Знакомство с Papervision3d
Знакомство с Papervision3dЗнакомство с Papervision3d
Знакомство с Papervision3dIgor Ruzanov
 
Что API Карт забыл на сервере — Антон Корзунов
Что API Карт забыл на сервере — Антон КорзуновЧто API Карт забыл на сервере — Антон Корзунов
Что API Карт забыл на сервере — Антон КорзуновYandex
 
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеШкола-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеГлеб Тарасов
 

Similar to Максим Хромцов "Yandex MapKit для Android OS в примерах" (20)

iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKit
 
Разбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutРазбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayout
 
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
 
Марина Степанова "Много объектов на карте"
Марина Степанова "Много объектов на карте"Марина Степанова "Много объектов на карте"
Марина Степанова "Много объектов на карте"
 
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеШкола-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
 
Александр Тармолов "API Яндекс.Карт"
Александр Тармолов "API Яндекс.Карт"Александр Тармолов "API Яндекс.Карт"
Александр Тармолов "API Яндекс.Карт"
 
Всеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексВсеволод Шмыров, Яндекс
Всеволод Шмыров, Яндекс
 
Роман Бусыгин "Yandex Map Kit для iOS в примерах"
Роман Бусыгин "Yandex Map Kit для iOS в примерах"Роман Бусыгин "Yandex Map Kit для iOS в примерах"
Роман Бусыгин "Yandex Map Kit для iOS в примерах"
 
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
 
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
 
"Погружение в Robolectric" Дмитрий Костырев (Avito)
"Погружение в Robolectric"  Дмитрий Костырев (Avito)"Погружение в Robolectric"  Дмитрий Костырев (Avito)
"Погружение в Robolectric" Дмитрий Костырев (Avito)
 
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”Lviv MDDay 2014. Олександр Зозуля “Google карти для android”
Lviv MDDay 2014. Олександр Зозуля “Google карти для android”
 
Фёдор Голубев "API Яндекс.Карт"
Фёдор Голубев "API Яндекс.Карт"Фёдор Голубев "API Яндекс.Карт"
Фёдор Голубев "API Яндекс.Карт"
 
ES2015+: давно пора!
ES2015+: давно пора!ES2015+: давно пора!
ES2015+: давно пора!
 
создание HTML игр на элементе canvas
создание HTML игр на элементе canvasсоздание HTML игр на элементе canvas
создание HTML игр на элементе canvas
 
Роман Ермолов - Отладка приложений под iOS
Роман Ермолов - Отладка приложений под iOSРоман Ермолов - Отладка приложений под iOS
Роман Ермолов - Отладка приложений под iOS
 
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
 
Знакомство с Papervision3d
Знакомство с Papervision3dЗнакомство с Papervision3d
Знакомство с Papervision3d
 
Что API Карт забыл на сервере — Антон Корзунов
Что API Карт забыл на сервере — Антон КорзуновЧто API Карт забыл на сервере — Антон Корзунов
Что API Карт забыл на сервере — Антон Корзунов
 
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеШкола-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
 

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айт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Максим Хромцов "Yandex MapKit для Android OS в примерах"

  • 1. Yandex Map Kit для Android OS в примерах Максим Хромцов Разработчик Я.Субботник, Алматы, 15 октября 2011 года
  • 2. Android Map Kit Framework • Что это? • Где можно использовать • Функциональные возможности • Архитектура • Проблемы при разработке • Немного об iOS 2
  • 4. Где можно использовать • Социальные приложения • Информационно-справочные ресурсы • Игры • Навигация 4
  • 5. Функциональные возможности • Управление картой (сдвиг, изменение масштаба) • Показ статичных объектов на карте • Возможность передвигать объекты на карте • Гибкая настройка подсказок к объектам • Отображение местоположения • Отображение пробок и баллов в пробках • Поддержка различных видов карт: схема, гибрид и народная 5
  • 6. Архитектура MapView Map Kit Core MapController OverlayManager 6
  • 7. Архитектура Добавление в ваш layout <ru.yandex.yandexmapkit.MapView android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey=“you are api key" /> 7
  • 8. Архитектура Возможности MapController • Перемещение карты; • Изменение масштаба; • Изменение видов карт: схема, гибрид и народная; • Подписка на получение событий от карты; 8
  • 9. Архитектура Работа с MapController … // Получаем объект MapView final MapView mMapView = (MapView) findViewById(R.id.map); // Получаем объект MapController MapController mMapController = mapView.getMapController(); // Перемещаем карту на Отель Достык mMapController. setPositionAnimationTo(new GeoPoint(43.244276, 76.951331)); // Изменяем зум mMapController.setZoomCurrent(17); … 9
  • 10. Архитектура Возможности OverlayManager • Добавление нового слоя на карту; • Удаление слоя с карты; • Отрисовка слоев; • Передача пользовательских сообщений слоям; 10
  • 11. Архитектура Возможности Overlay • Добавление нового объекта на слой; • Удаление объекта со слоя; • Отрисовка объектов; • Действие с выбранным объектом; 11
  • 12. Архитектура Работа с OverlayManager добовления слоя … // Получаем объект MapView final MapView mMapView = (MapView) findViewById(R.id.map); // Получаем объект MapController MapController mMapController = mapView.getMapController(); // Получаем объект OverlayManager OverlayManager mOverlayManager = mMapController.getOverlayManager(); //Добавляем новый слой mOverlayManager.addOverlay(overlay); … 12
  • 13. Архитектура Работа с Overlay: добавление объекта … //Создаем новый слой Overlay overlay = new Overlay(mMapController); // Создаем объект слоя OverlayItem yandex = new OverlayItem(new GeoPoint(55.734029 , 37.588499), bitmap); // Добавляем объект на слой overlay.addOverlayItem(yandex); // Добавляем слой на карту mOverlayManager.addOverlay(overlay); … 13
  • 14. Архитектура Работа с Overlay 14
  • 15. Архитектура Работа с Overlay: добавление балуна … // Создаем объект балуна BalloonItem balloonYandex = null; balloonYandex = new BalloonItem(new GeoPoint(43.244276, 76.951331), bitmap); balloonYandex.setText("<b>Я.Субботник</b><br/>Отель Достык"); // Добавляем балун yandex.setBalloonItem(balloonYandex); … 15
  • 16. Архитектура Работа с Overlay : получение GeoCode public class MyHistoryGeoCode implements GeoCodeListener { … //Вызываем запрос на получение GeoCode mMapController.getDownloader().getGeoCode (this, new GeoPoint(43.244276, 76.951331)); … // Обрабатываем ответ о GeoCode public boolean onFinishGeoCode(GeoCode geoCode) { if (geoCode!= null){ // Информация по данной точке } … 16
  • 17. Проблемы при разработке • Отображение объектов из разных слоев; • Взаимодействие с объектами из разных слоев; 17
  • 18. Немного об iOS Архитектура • Преемственность с Apple Map Kit Framework – MKMapView -> YMKMapView – MKMapViewDelegate -> YMKMapViewDelegate – MKAnnotation -> YMKAnnotation – MKAnnotationView -> YMKAnnotationView – MKPinAnnotationView -> YMKPinAnnotationView 18
  • 19. Немного об iOS Архитектура • YMKMapView 19
  • 20. Немного об iOS Архитектура • YMKAnnotation • YMKPinAnnotationView 20
  • 21. Немного об iOS Добавление объекта на карту Объект, удовлетворяющий протоколу YMKAnnotation @interface PointAnnotation : NSObject <YMKAnnotation> + (id)pointAnnotation; @property (nonatomic, copy) NSString * title; @property (nonatomic, copy) NSString * subtitle; @property (nonatomic, assign) YMKMapCoordinate coordinate; @end 21
  • 22. Немного об iOS Добавление объекта на карту - (void)configureAndInstallAnnotations { self.metroAnnotation = [PointAnnotation pointAnnotation]; self.metroAnnotation.coordinate = YMKMapCoordinateMake(43.244276, 76.951331); self.metroAnnotation.title = @"Я.Субботник"; self.metroAnnotation.subtitle = @"Отель Достык"; [self.mapView addAnnotation:self.metroAnnotation]; self.mapView.selectedAnnotation = self.metroAnnotation; } 22
  • 23. Немного об iOS Добавление объекта на карту - (YMKAnnotationView *)mapView:(YMKMapView *)mapView viewForAnnotation:(id<YMKAnnotation>)annotation { static NSString * identifier = @"pointAnnotation"; YMKPinAnnotationView * view = (YMKPinAnnotationView *) [mapView dequeueReusableAnnotationViewWithIdentifier:identifier]; if (view == nil) { view = [[[YMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier] autorelease]; view.canShowCallout = YES; UIButton * rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; view.rightCalloutAccessoryView = rightButton; } view.annotation = self.metroAnnotation; return view; } 23
  • 24. Полезные ссылки http://legal.yandex.ru/mapkit http://clubs.ya.ru/mobilemaps https://github.com/yandexmobile/yandexmapkit-ios https://github.com/yandexmobile/yandexmapkit-android 24