SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Google Cardboard (Winter Nights'15)
Google Cardboard (Winter Nights'15)Google Cardboard (Winter Nights'15)
Google Cardboard (Winter Nights'15)Natalia Efimtseva
 
Александр Зинчук "Секретные (и не очень) фишки в API Яндекс.Карт"
Александр Зинчук "Секретные (и не очень) фишки в API Яндекс.Карт"Александр Зинчук "Секретные (и не очень) фишки в API Яндекс.Карт"
Александр Зинчук "Секретные (и не очень) фишки в API Яндекс.Карт"Yandex
 
создание HTML игр на элементе canvas
создание HTML игр на элементе canvasсоздание HTML игр на элементе canvas
создание HTML игр на элементе canvasAlexander Samantsov
 
CodeFest 2013. Агафонкин В. — Высокопроизводительные визуализации данных в бр...
CodeFest 2013. Агафонкин В. — Высокопроизводительные визуализации данных в бр...CodeFest 2013. Агафонкин В. — Высокопроизводительные визуализации данных в бр...
CodeFest 2013. Агафонкин В. — Высокопроизводительные визуализации данных в бр...CodeFest
 
Разработка игр с помощью Cocos2d
Разработка игр с помощью Cocos2dРазработка игр с помощью Cocos2d
Разработка игр с помощью Cocos2dStanislav Krasnoyarov
 
Эффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр ЗиминЭффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр ЗиминCocoaHeads
 
JavaScript. Уровень 3г. HTML5 API
JavaScript. Уровень 3г. HTML5 APIJavaScript. Уровень 3г. HTML5 API
JavaScript. Уровень 3г. HTML5 APIIvan Matiishyn
 
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов —  Кастомная кнопка: взгляд изнутриКирилл Аверьянов —  Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутриCocoaHeads
 
Кастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутриКастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутриKirill Averyanov
 
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15MoscowJS
 

Tendances (10)

Google Cardboard (Winter Nights'15)
Google Cardboard (Winter Nights'15)Google Cardboard (Winter Nights'15)
Google Cardboard (Winter Nights'15)
 
Александр Зинчук "Секретные (и не очень) фишки в API Яндекс.Карт"
Александр Зинчук "Секретные (и не очень) фишки в API Яндекс.Карт"Александр Зинчук "Секретные (и не очень) фишки в API Яндекс.Карт"
Александр Зинчук "Секретные (и не очень) фишки в API Яндекс.Карт"
 
создание HTML игр на элементе canvas
создание HTML игр на элементе canvasсоздание HTML игр на элементе canvas
создание HTML игр на элементе canvas
 
CodeFest 2013. Агафонкин В. — Высокопроизводительные визуализации данных в бр...
CodeFest 2013. Агафонкин В. — Высокопроизводительные визуализации данных в бр...CodeFest 2013. Агафонкин В. — Высокопроизводительные визуализации данных в бр...
CodeFest 2013. Агафонкин В. — Высокопроизводительные визуализации данных в бр...
 
Разработка игр с помощью Cocos2d
Разработка игр с помощью Cocos2dРазработка игр с помощью Cocos2d
Разработка игр с помощью Cocos2d
 
Эффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр ЗиминЭффективность на рубеже UITableView — Александр Зимин
Эффективность на рубеже UITableView — Александр Зимин
 
JavaScript. Уровень 3г. HTML5 API
JavaScript. Уровень 3г. HTML5 APIJavaScript. Уровень 3г. HTML5 API
JavaScript. Уровень 3г. HTML5 API
 
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов —  Кастомная кнопка: взгляд изнутриКирилл Аверьянов —  Кастомная кнопка: взгляд изнутри
Кирилл Аверьянов — Кастомная кнопка: взгляд изнутри
 
Кастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутриКастомная кнопка: взгляд изнутри
Кастомная кнопка: взгляд изнутри
 
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
 

Similaire à Максим Хромцов "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 лекция. РазноеГлеб Тарасов
 
Всеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексВсеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексElena Voynova
 
"Погружение в 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
 
Роман Ермолов - Отладка приложений под 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 лекция. Интерфейсы, прололжениеГлеб Тарасов
 
Байки из склепа. Реальный опыт разработок для iOS и Android
Байки из склепа. Реальный опыт разработок для iOS и AndroidБайки из склепа. Реальный опыт разработок для iOS и Android
Байки из склепа. Реальный опыт разработок для iOS и AndroidHeads&Hands
 
Интуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. ViewsИнтуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. ViewsГлеб Тарасов
 
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)2Niversity
 
Memory managment in i os (1)
Memory managment in i os (1)Memory managment in i os (1)
Memory managment in i os (1)it-park
 

Similaire à Максим Хромцов "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 лекция. Разное
 
Всеволод Шмыров, Яндекс
Всеволод Шмыров, ЯндексВсеволод Шмыров, Яндекс
Всеволод Шмыров, Яндекс
 
"Погружение в 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+: давно пора!
 
Роман Ермолов - Отладка приложений под 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 лекция. Интерфейсы, прололжение
 
Байки из склепа. Реальный опыт разработок для iOS и Android
Байки из склепа. Реальный опыт разработок для iOS и AndroidБайки из склепа. Реальный опыт разработок для iOS и Android
Байки из склепа. Реальный опыт разработок для iOS и Android
 
Foxdevs
FoxdevsFoxdevs
Foxdevs
 
Интуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. ViewsИнтуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. Views
 
Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)Создание игр с помощью Cocos2D (Станислав Краснояров)
Создание игр с помощью Cocos2D (Станислав Краснояров)
 
Memory managment in i os (1)
Memory managment in i os (1)Memory managment in i os (1)
Memory managment in i os (1)
 

Plus de 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
 

Plus de 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