SlideShare a Scribd company logo
1 of 36
Download to read offline
Nokia Series 40

Разработка приложений с
помощью Nokia карт и Location
API для телефонов Series 40


Владимир Безкоровайный
Senior Software Engineer
Maps Platform
1   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Agenda
1. Введение в Nokia Maps API для Java
   ME
2. Требования для начала работы
3. Базовые концепции карт
4. Введение в сервисы для поиска
   (Search) и маршрутизации (Routing)
5. Введение в позиционирование
   (positioning) (JSR-179)

2   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Nokia Maps API для Java ME




3   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Что такое Nokia Maps API для Java
•ME?
  API предназначено для Series 40 Phones.
  Позволяет разрабатывать мобильные
        приложения для Nokia карт.

•       Façade Pattern – скрывает детали реализации –
        низкоуровневые сетевые вызовы, манипуляции
        с изображениями и тому подобное.

•       Поддерживаемые устройства MIDP 2.0 или
        выше.
•       В данный момент не является частью SDK

•       Доступно одним JAR файлом, приблизительно 150 kB.

•  Улучшена скорость разработки, а также скорость самих
   приложений
Для детальной информации пройдите по ссылке:
http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/

    4     “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Почему следует использовать Nokia Maps API
для Java ME?
•       Различные типы карт, оптимизированные для
        мобильных устройств.

•       Уменьшение сетевого трафика по сравнению со
        статическими картами

•       Готовая поддержка наиболее популярных вариантов
        использования (Markers, Images, Polygons, Polylines,
        Pan and Zoom)

•       Встроенные в библиотеку сервисы для доступа к
        POI информации, выполнения поиска, построения
        маршрута.

•       Компоненты карты позволяют расширять и
        переопределять их функциональность.

•       Продвинутые возможности как стандарт, например KML parsing и дополнительные
        пользовательские слои.

    5     “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Сравнение Nokia Java ME карт со
статическими картами на основе
картинки
Статическая Карта (т.е. RESTful Map
API)
•           одиночный http запрос для одной карты
            одно изображение возвращается в ответ
•           новый запрос на каждое изменение.

Карты для Java ME
•           Несколько http запросов для
            соответствующих фрагментов карты.
•           Полученные фрагменты кэшитуются.
•           Затем они «склеиваются» вместе и обьекты
            добавляются поверх.
•           Дополнительные запросы делаются только в
            случае необходимости.


        Результат
        •    Благодаря встроенной разумной отрисовки карты, увеличивается скорость
             работы и уменьшается сетевой трафик. Использование кэширования и
             разбитие на фрагменты лучше для мобильных девайсов.
    6         “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Инструкция по установке




7   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Инструкция по установке
1. Установите Java Runtime Environment 6
     http://www.java.com/en/download/index.jsp

2. Установите IDE (например NetBeans)
     Netbeans.org

3. Установите Nokia SDK для Java (бесплатно)
     http://www.developer.nokia.com/Develop/Java/Tools/




 8    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Инструкция по установке
                                                              1.
4. Конфигурирование Nokia SDK в NetBeans

 2.




                                                         3.
9     “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Инструкция по установке
5. Загрузка бинарного Jar файла
      http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/Getting_started/




 10     “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Инструкция по установке
6. Бесплатная регистрация для разработчиков на www.developer.nokia.com




 11   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Инструкция по установке
7. Получите бесплатно credentials (App Id иToken) для
   аутентификации:          https://api.developer.nokia.com/ovi-
      api/ui/registration
      − Уникальные App ID иToken, необходимы для каждого приложения


8. После создания нового NetBeans проекта, Вы должны
   добавить Nokia Maps API бинарный jar файл -
   Maps_API.jar. Ссылка появится в папке ”Resources” в
   NetBeans проекте.




 12    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Базовые концепции
• Минимальные возможности карты

• Типы карт

• Языки поддерживаемые картой

• Маркеры

• Полилайн и полигон

• Взаимодействие компонентов




13   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Минимальные возможности карты
Реализация Pan и Zoom функциональности в несколько строк кода.

      1. Передать credentials в ApplicationContext

      2. Создать MapCanvas

      3. Установить в него Display




 14   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Типы Карт
Выберете подходящий тип для Вашей карты




15   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Типы карт – Простой Метод

Стандартные схемы




Пример кода




16   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Типы карт – Продвинутый метод
1)    Реализуйте интерфейс MapSchemeListener и вызовите getAvailableMaps()




2)    Обработайте полученный результат(Success или Failure)




3)    Установите BaseMapType из списка доступных MapProviders




 17    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Языки поддерживаемые картой

• В данный момент доступны восемь
  языков: Арабский, Китайский,
  Немецкий, Английский, Французский,
  Итальянский, Испанский и Русский

• Просто выберите DefaultLanguage в
  ApplicationContext


• По умолчанию используется
  Английский


18   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Маркеры
Маркеры – это облегченная версия POI (points of
interest) для указанного местоположения на карте.
Существует 2 типа:
• MapStandardMarker
           •      Различные геометрические фигуры, плюс Balloon
           •      Легко добавить text, изменить color
                                                (и прозрачность)
•        MapMarker
           •      Используется для иконок.
           •      Нужно определить местоположение к которому будет
                  привязан маркер.
•        Используйте MapFactory для создания экземпляров
         MapStandardMarkers и MapMarkers



•        Маркер по умолчанию ‘Синий Nokia’ Balloon


    19     “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Polyline и Polygon
•        MapPolyline – это последовательность соединенных точек




•        MapPolygon - это область ограниченная замкнутой ломаной




•        Каждый экземпляр MapPolygon или MapPolyline создается
         с помощью MapFactory

•        Оба обьекта имеют GeoBoundingBox.




    20     “© Nokia 2012 Intro to Maps on Apps Russian.pptx
MapCanvas MapDisplay MapObject
•    MapCanvas содержит MapFactory и
     MapDisplay

•    Используйте MapFactory для создания
     MapObjects

•    MapFactory может быть использована для
     создания MapDisplay, т.е. для
     автоматического кэшировамия статической
     карты


•    MapDisplay содержит MapObjects, а так же он и сам являтся MapObject.

•    MapObjects могут быть помещены в MapContainer




21    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Map Events



     • Создание MapComponent для взаимодействия с MapDisplay


     • Добавление EventListener в MapComponent для получения
       уведомлений о взаимодействии с экраном и нажатии клавиш




22    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Введение в Location-Based сервисы

     • Поиск (Geocoding Search and Reverse Geocoding
       Search )

     • Поиск мест (Places Search)

     • Маршрутизация (Routing)

     • Sharing




23   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Geocoding Search
•    Поиск местоположения на карте по
     заданному адресу

•    Синхронный и асинхронный поиск

•    Желательно использовать асинхроный.


1. Реализация GeoCodeRequestListener


2. Создание GeoCodeRequest



3. Обработка полученного результата




24    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Reverse Geocoding Search
     •   Поиск адреса для заданого географического положения (location).
     •   Поиск так же может быть синхронным или асинхронным
     •   Желательно использовать асинхронный



     1. Реализация ReverseGeocodeRequestListener


     2. Создание ReverseGeoCodeRequest




     3. Обработка полученного результата




25       “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Поиск мест (Places Search)
• Гибкий локальный поиск (Local Search)
          •      Обычный текстовый поиск (Text Search, например: “Пицца”)
          •      Поиск по категориям (Category Search, например: ресторан)
          •      Комбинированный поиск (например: “Итальянский” +
                 ресторан)




•    Получение более детальной информации
     • Контактная информация
     • Часы работы
     • Описание и отзывы
     • Изображения и т.п.



26    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Поиск Мест (Places Search)
     1. Реализация PlaceSearchRequestListener


     2. Создание PlaceSearchRequest




     3. Обработка полученного результата



     4. Более детальная информация может быть получена из Result




27    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Сервис Маршрутизации (Routing )
     • Routing сервис предназначен для построения маршрута
       между двумя и более точками (Waypoints).

     • Построение маршрута – дорогостоящая операция и
       может занять много времени. Рекомендуется выполнять
       RouteRequests асинхронно.
     1. Реализация RouteListener

     2. Создание RouteRequest




     3. Обработка полученных результатов




28    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Routing сервис
 •   Построение маршрута может быть оптимизировано с помощью задания
     RoutingMode

     •       Тип маршрутизации – по умолчанию RoutingType.Shortest




     •     Транспортный режим – по умолчанию TransportMode.CAR




     •     Дополнительные ограничения (по умолчанию отсутствуют)




29   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Sharing Manager
      • Создание зашифрованного URL для RESTful Maps API


      • Отправка URL через SMS клиенту для получения статической
        карты.

      • Сервис перенаправляет на maps.nokia.com или на
        m.maps.nokia.com используя встроенный броузер




30   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Позиционирование (Positioning)

• Отдельный вспомогательный пакет для позиционирования (JSR-
  179)

• Зачастую поставлятся с Nokia Maps API для Java ME, тем не менее
  не является частью API

• Используются два метода
  • Cell ID positioning
  • GPS




31   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Cell-ID Location
• A MIDlet может получить приблизительную позицию с помощью
  Cell-ID.

• Метод состоит из передачи Cell ID,к которой в данный момент
  присоединено устройство, на сервис. Сервис вернет позицию для
  данной cell-ID.

• Cell ID предоставляет возможность позиционирования для
  устройств, которые не имеют GPS модуля.

Прим.: Степень погрешности может варьироваться от нескольких
метров до нескольких километров, и зависит от инфраструктуры сети
и данных доступных для данного региона.




32   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Cell-ID Примеры
1) Создание Cell-ID LocationProvider с помощью LocationUtils


     Прим.: В данный момент вместо второго параметра в
     getLocationProvider()передается null. Это сделано для
     дальнейшего расширения библиотеки.

2) Вызовите getLocation() и обработайте результат



Аттрибуты из QualifiedCoordinate класса соответствуют
GeoCoordinate классу.

Обрабатывайте информацию об изменении позиции в цикле.

33      “© Nokia 2012 Intro to Maps on Apps Russian.pptx
LocationUtil
• Метод определения местоположения может
  быть любой комбинацией из методов
  перечисленных в JSR-179:


Часто используемые комбинации
• Offline Cell ID

• Standalone GPS

• Assisted GPS

• Online Cell ID an/or WLAN


34    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
GPS Примеры

1. Создание GPS LocationProvider




2. Настройка провайдера для получения данных

3. Получение и обработка результата




35    “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Дополнительная информация

 Nokia SDK for Java
 http://developer.nokia.com/ru

 Nokia Developer Library
 http://library.developer.nokia.com

 Nokia Maps API
 http://developer.nokia.com/Maps




36   “© Nokia 2012 Intro to Maps on Apps Russian.pptx

More Related Content

Similar to Intro to apps with maps for series 40 russian

И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
Stanfy
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
PVasili
 
Drupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константинDrupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константин
drupalconf
 
Пример внедрения композитных приложений
Пример внедрения композитных приложенийПример внедрения композитных приложений
Пример внедрения композитных приложений
Galina Masalykina
 
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0. Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Cisco Russia
 

Similar to Intro to apps with maps for series 40 russian (20)

Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  МоскалёвПереводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
 
Diplom 1
Diplom 1Diplom 1
Diplom 1
 
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  МоскалёвПереводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
 
Here community 2015_rus2
Here community 2015_rus2Here community 2015_rus2
Here community 2015_rus2
 
Создай свое первое Android приложение.
Создай свое первое Android приложение. Создай свое первое Android приложение.
Создай свое первое Android приложение.
 
Собрать нельзя клонировать. Как выбрать подход к созданию кроссплатформенных ...
Собрать нельзя клонировать. Как выбрать подход к созданию кроссплатформенных ...Собрать нельзя клонировать. Как выбрать подход к созданию кроссплатформенных ...
Собрать нельзя клонировать. Как выбрать подход к созданию кроссплатформенных ...
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и Kubernetes
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Drupal и мобильные устройства
Drupal и мобильные устройстваDrupal и мобильные устройства
Drupal и мобильные устройства
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
 
Drupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константинDrupal и мобильные устройства комелин константин
Drupal и мобильные устройства комелин константин
 
Google appengine for_starupweekend2010
Google appengine for_starupweekend2010Google appengine for_starupweekend2010
Google appengine for_starupweekend2010
 
Александр Ларьяновский "Виджеты для главной страницы Яндекса. Кто у кого "отн...
Александр Ларьяновский "Виджеты для главной страницы Яндекса. Кто у кого "отн...Александр Ларьяновский "Виджеты для главной страницы Яндекса. Кто у кого "отн...
Александр Ларьяновский "Виджеты для главной страницы Яндекса. Кто у кого "отн...
 
Введение во фронтенд-разработку
Введение во фронтенд-разработкуВведение во фронтенд-разработку
Введение во фронтенд-разработку
 
Пример внедрения композитных приложений
Пример внедрения композитных приложенийПример внедрения композитных приложений
Пример внедрения композитных приложений
 
Александр Ларьяновский "Виджеты для главной страницы Яндекса. Кто у кого «отн...
Александр Ларьяновский "Виджеты для главной страницы Яндекса. Кто у кого «отн...Александр Ларьяновский "Виджеты для главной страницы Яндекса. Кто у кого «отн...
Александр Ларьяновский "Виджеты для главной страницы Яндекса. Кто у кого «отн...
 
Андрей Сибирёв "Ваше собственное облако — война за независимость"
Андрей Сибирёв "Ваше собственное облако — война за независимость"Андрей Сибирёв "Ваше собственное облако — война за независимость"
Андрей Сибирёв "Ваше собственное облако — война за независимость"
 
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0. Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
 

More from Microsoft Mobile Developer

More from Microsoft Mobile Developer (20)

Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and tools
 
Lumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK betaLumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK beta
 
Nokia Asha from idea to app - Imaging
Nokia Asha from idea to app - ImagingNokia Asha from idea to app - Imaging
Nokia Asha from idea to app - Imaging
 
Healthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia AshaHealthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia Asha
 
Push notifications on Nokia X
Push notifications on Nokia XPush notifications on Nokia X
Push notifications on Nokia X
 
DIY Nokia Asha app usability studies
DIY Nokia Asha app usability studiesDIY Nokia Asha app usability studies
DIY Nokia Asha app usability studies
 
Lessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviewsLessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviews
 
Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tag
 
HERE Maps for the Nokia X platform
HERE Maps for the Nokia X platformHERE Maps for the Nokia X platform
HERE Maps for the Nokia X platform
 
Nokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerationsNokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerations
 
Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)
 
UX considerations when porting to Nokia X
UX considerations when porting to Nokia XUX considerations when porting to Nokia X
UX considerations when porting to Nokia X
 
Kids' games and educational app design
Kids' games and educational app designKids' games and educational app design
Kids' games and educational app design
 
Nokia X: opportunities for developers
Nokia X: opportunities for developersNokia X: opportunities for developers
Nokia X: opportunities for developers
 
Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1
 
Intro to Nokia X software platform and tools
Intro to Nokia X software platform and toolsIntro to Nokia X software platform and tools
Intro to Nokia X software platform and tools
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra app
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo store
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progetto
 

Recently uploaded

Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 

Recently uploaded (9)

Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 

Intro to apps with maps for series 40 russian

  • 1. Nokia Series 40 Разработка приложений с помощью Nokia карт и Location API для телефонов Series 40 Владимир Безкоровайный Senior Software Engineer Maps Platform 1 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 2. Agenda 1. Введение в Nokia Maps API для Java ME 2. Требования для начала работы 3. Базовые концепции карт 4. Введение в сервисы для поиска (Search) и маршрутизации (Routing) 5. Введение в позиционирование (positioning) (JSR-179) 2 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 3. Nokia Maps API для Java ME 3 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 4. Что такое Nokia Maps API для Java •ME? API предназначено для Series 40 Phones. Позволяет разрабатывать мобильные приложения для Nokia карт. • Façade Pattern – скрывает детали реализации – низкоуровневые сетевые вызовы, манипуляции с изображениями и тому подобное. • Поддерживаемые устройства MIDP 2.0 или выше. • В данный момент не является частью SDK • Доступно одним JAR файлом, приблизительно 150 kB. • Улучшена скорость разработки, а также скорость самих приложений Для детальной информации пройдите по ссылке: http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/ 4 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 5. Почему следует использовать Nokia Maps API для Java ME? • Различные типы карт, оптимизированные для мобильных устройств. • Уменьшение сетевого трафика по сравнению со статическими картами • Готовая поддержка наиболее популярных вариантов использования (Markers, Images, Polygons, Polylines, Pan and Zoom) • Встроенные в библиотеку сервисы для доступа к POI информации, выполнения поиска, построения маршрута. • Компоненты карты позволяют расширять и переопределять их функциональность. • Продвинутые возможности как стандарт, например KML parsing и дополнительные пользовательские слои. 5 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 6. Сравнение Nokia Java ME карт со статическими картами на основе картинки Статическая Карта (т.е. RESTful Map API) • одиночный http запрос для одной карты одно изображение возвращается в ответ • новый запрос на каждое изменение. Карты для Java ME • Несколько http запросов для соответствующих фрагментов карты. • Полученные фрагменты кэшитуются. • Затем они «склеиваются» вместе и обьекты добавляются поверх. • Дополнительные запросы делаются только в случае необходимости. Результат • Благодаря встроенной разумной отрисовки карты, увеличивается скорость работы и уменьшается сетевой трафик. Использование кэширования и разбитие на фрагменты лучше для мобильных девайсов. 6 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 7. Инструкция по установке 7 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 8. Инструкция по установке 1. Установите Java Runtime Environment 6 http://www.java.com/en/download/index.jsp 2. Установите IDE (например NetBeans) Netbeans.org 3. Установите Nokia SDK для Java (бесплатно) http://www.developer.nokia.com/Develop/Java/Tools/ 8 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 9. Инструкция по установке 1. 4. Конфигурирование Nokia SDK в NetBeans 2. 3. 9 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 10. Инструкция по установке 5. Загрузка бинарного Jar файла http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/Getting_started/ 10 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 11. Инструкция по установке 6. Бесплатная регистрация для разработчиков на www.developer.nokia.com 11 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 12. Инструкция по установке 7. Получите бесплатно credentials (App Id иToken) для аутентификации: https://api.developer.nokia.com/ovi- api/ui/registration − Уникальные App ID иToken, необходимы для каждого приложения 8. После создания нового NetBeans проекта, Вы должны добавить Nokia Maps API бинарный jar файл - Maps_API.jar. Ссылка появится в папке ”Resources” в NetBeans проекте. 12 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 13. Базовые концепции • Минимальные возможности карты • Типы карт • Языки поддерживаемые картой • Маркеры • Полилайн и полигон • Взаимодействие компонентов 13 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 14. Минимальные возможности карты Реализация Pan и Zoom функциональности в несколько строк кода. 1. Передать credentials в ApplicationContext 2. Создать MapCanvas 3. Установить в него Display 14 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 15. Типы Карт Выберете подходящий тип для Вашей карты 15 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 16. Типы карт – Простой Метод Стандартные схемы Пример кода 16 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 17. Типы карт – Продвинутый метод 1) Реализуйте интерфейс MapSchemeListener и вызовите getAvailableMaps() 2) Обработайте полученный результат(Success или Failure) 3) Установите BaseMapType из списка доступных MapProviders 17 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 18. Языки поддерживаемые картой • В данный момент доступны восемь языков: Арабский, Китайский, Немецкий, Английский, Французский, Итальянский, Испанский и Русский • Просто выберите DefaultLanguage в ApplicationContext • По умолчанию используется Английский 18 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 19. Маркеры Маркеры – это облегченная версия POI (points of interest) для указанного местоположения на карте. Существует 2 типа: • MapStandardMarker • Различные геометрические фигуры, плюс Balloon • Легко добавить text, изменить color (и прозрачность) • MapMarker • Используется для иконок. • Нужно определить местоположение к которому будет привязан маркер. • Используйте MapFactory для создания экземпляров MapStandardMarkers и MapMarkers • Маркер по умолчанию ‘Синий Nokia’ Balloon 19 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 20. Polyline и Polygon • MapPolyline – это последовательность соединенных точек • MapPolygon - это область ограниченная замкнутой ломаной • Каждый экземпляр MapPolygon или MapPolyline создается с помощью MapFactory • Оба обьекта имеют GeoBoundingBox. 20 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 21. MapCanvas MapDisplay MapObject • MapCanvas содержит MapFactory и MapDisplay • Используйте MapFactory для создания MapObjects • MapFactory может быть использована для создания MapDisplay, т.е. для автоматического кэшировамия статической карты • MapDisplay содержит MapObjects, а так же он и сам являтся MapObject. • MapObjects могут быть помещены в MapContainer 21 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 22. Map Events • Создание MapComponent для взаимодействия с MapDisplay • Добавление EventListener в MapComponent для получения уведомлений о взаимодействии с экраном и нажатии клавиш 22 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 23. Введение в Location-Based сервисы • Поиск (Geocoding Search and Reverse Geocoding Search ) • Поиск мест (Places Search) • Маршрутизация (Routing) • Sharing 23 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 24. Geocoding Search • Поиск местоположения на карте по заданному адресу • Синхронный и асинхронный поиск • Желательно использовать асинхроный. 1. Реализация GeoCodeRequestListener 2. Создание GeoCodeRequest 3. Обработка полученного результата 24 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 25. Reverse Geocoding Search • Поиск адреса для заданого географического положения (location). • Поиск так же может быть синхронным или асинхронным • Желательно использовать асинхронный 1. Реализация ReverseGeocodeRequestListener 2. Создание ReverseGeoCodeRequest 3. Обработка полученного результата 25 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 26. Поиск мест (Places Search) • Гибкий локальный поиск (Local Search) • Обычный текстовый поиск (Text Search, например: “Пицца”) • Поиск по категориям (Category Search, например: ресторан) • Комбинированный поиск (например: “Итальянский” + ресторан) • Получение более детальной информации • Контактная информация • Часы работы • Описание и отзывы • Изображения и т.п. 26 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 27. Поиск Мест (Places Search) 1. Реализация PlaceSearchRequestListener 2. Создание PlaceSearchRequest 3. Обработка полученного результата 4. Более детальная информация может быть получена из Result 27 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 28. Сервис Маршрутизации (Routing ) • Routing сервис предназначен для построения маршрута между двумя и более точками (Waypoints). • Построение маршрута – дорогостоящая операция и может занять много времени. Рекомендуется выполнять RouteRequests асинхронно. 1. Реализация RouteListener 2. Создание RouteRequest 3. Обработка полученных результатов 28 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 29. Routing сервис • Построение маршрута может быть оптимизировано с помощью задания RoutingMode • Тип маршрутизации – по умолчанию RoutingType.Shortest • Транспортный режим – по умолчанию TransportMode.CAR • Дополнительные ограничения (по умолчанию отсутствуют) 29 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 30. Sharing Manager • Создание зашифрованного URL для RESTful Maps API • Отправка URL через SMS клиенту для получения статической карты. • Сервис перенаправляет на maps.nokia.com или на m.maps.nokia.com используя встроенный броузер 30 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 31. Позиционирование (Positioning) • Отдельный вспомогательный пакет для позиционирования (JSR- 179) • Зачастую поставлятся с Nokia Maps API для Java ME, тем не менее не является частью API • Используются два метода • Cell ID positioning • GPS 31 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 32. Cell-ID Location • A MIDlet может получить приблизительную позицию с помощью Cell-ID. • Метод состоит из передачи Cell ID,к которой в данный момент присоединено устройство, на сервис. Сервис вернет позицию для данной cell-ID. • Cell ID предоставляет возможность позиционирования для устройств, которые не имеют GPS модуля. Прим.: Степень погрешности может варьироваться от нескольких метров до нескольких километров, и зависит от инфраструктуры сети и данных доступных для данного региона. 32 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 33. Cell-ID Примеры 1) Создание Cell-ID LocationProvider с помощью LocationUtils Прим.: В данный момент вместо второго параметра в getLocationProvider()передается null. Это сделано для дальнейшего расширения библиотеки. 2) Вызовите getLocation() и обработайте результат Аттрибуты из QualifiedCoordinate класса соответствуют GeoCoordinate классу. Обрабатывайте информацию об изменении позиции в цикле. 33 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 34. LocationUtil • Метод определения местоположения может быть любой комбинацией из методов перечисленных в JSR-179: Часто используемые комбинации • Offline Cell ID • Standalone GPS • Assisted GPS • Online Cell ID an/or WLAN 34 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 35. GPS Примеры 1. Создание GPS LocationProvider 2. Настройка провайдера для получения данных 3. Получение и обработка результата 35 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • 36. Дополнительная информация Nokia SDK for Java http://developer.nokia.com/ru Nokia Developer Library http://library.developer.nokia.com Nokia Maps API http://developer.nokia.com/Maps 36 “© Nokia 2012 Intro to Maps on Apps Russian.pptx

Editor's Notes

  1. Intro – Why bother?Prereqs - What you need to get started how to get a basic map up on screen.Basic– blobs on the map - this is where the code will get started.Routing, search are included in the API
  2. http://www.developer.nokia.com/info/sw.nokia.com/id/6bdf62e2-c739-4c29-bd9f-ddf8455f563e/JavaME.htmlFaçade Pattern - hides all the “plumbing” code - the low level connection calls, image manipulation etc. leaving a simple and consistent interface so you don’t need to reinvent the wheel.
  3. Does all the hard bits so you don’t have to bother.
  4. The Examples were built using Nokia SDK 1.0.The API will be integrated into Nokia SDK 2.0
  5. If phone supports landscape, map will display as landscape.Nokia-MIDlet-App-Orientation: landscape JAD file.You will want http permission javax.microedition.io.Connector.http
  6. Why bother? – could use alternate maps – e.g. small text “Standard Web” versions.Easter Egg maps – e.g. Low Glare “Night Mode”. Recommendation – have a fallback.
  7. All map objects are created through the MapFactoryBalloon is the classic blob on the map. The right size for a thumb.Probably want to retain a reference to the marker. (When I Click on X do Y) getObjectsAt()Don’t make icons too small. Png for transparency.Readability of text – wouldn’t recommend it. Less is more . Use tooltip to get feedback.
  8. All map objects are created through the MapFactoryDefault width of a line.zoomTo
  9. Cust
  10. All map objects are created through the MapFactoryDefault width of a line.zoomTo
  11. Search/Places Routing make requests to online REST services, an interpret the result.Sharing is a URL minfying service for nokia maps – allows the return of an image.
  12. Geocoding is Address to Location.Can supply hint – The Toledo problem ( two cities similar size same name) = other example Hamilton. HENCE THE NULL above!
  13. How to get the central point of the map.
  14. A general places search - What is there to see and do around here?   A category-based places search - What restaurants are there within walking distance of here?A text based search – Is there a Chinese restaurant within walking distance?An in depth search – Is that Chinese restaurant within walking distance, open at this time of night, and is it any good?
  15. Synchronous (obviously)
  16. -1 is the timeout parameter
  17. -1 is the timeout parameterThe major difference between these two methods, is that the values of the interval update and time out parameters are set in a different way. In the first example both parameters are passed as arguments to the setLocationListener() method, while in the second example, the interval value is indirectly set by forcing the running thread to sleep for the given time, and the time out parameter is passed as argument when calling the getLocation() method. When frequent location queries are needed, setting a Location Listener should be preferred compared to repeatedly calling the getLocation() method for the following reasons: a) The call to getLocation() generates screen prompts because it requires the user's permission to query the location information. The same applies for the setLocationListener() method. The difference is, that the former is called continuously within the loop, thus making it impractical to use, unless the application is signed, while the latter is called only once. Note that whether the getLocation() method requires signing, in order not to prompt for the location retrieval, depends on the permission level needed per device. Using the setLocationListener() method, ensures that there are minimal prompts without the need to sign the application among the largest set of devices possible. b) By using the setLocationListener() method, it is possible for the implementation to reuse location results if it already has a recent location result when the update is due to be delivered. This is done by passing an additional argument, the maxAge parameter that defines how old the location result is allowed to be, when the update is made. However when the application needs to retrieve the device's location only once, the getLocation() method should be preferred. This is due to simplicity in the implementation. If the setLocationListener() method was preferred in this case, some additional logic would be needed so that the location listener was replaced by another one that does not listen for location updates, as soon as a valid location has been retrieved once. Otherwise, even if the application ignored the location updates provided by the locationUpdated() method, those would still run in the background, causing increased usage of battery power.