36
Разработка приложений с помощью Nokia карт и Location API для телефонов Series 40 Nokia Series 40 1 “© Nokia 2012 Intro to Maps on Apps Russian.pptx Владимир Безкоровайный Senior Software Engineer Maps Platform

Intro to apps with maps for series 40 russian

Embed Size (px)

DESCRIPTION

Приложения, использующие карты и location API, все больше востребованны в повседневном использовании. Интегрируйте Nokia Maps сервисы в ваше Java MEприложение и используйте Location API для Series 40 телефонов, чтобы сделать ваши приложения умнее. В этом webinarе вы получите базовые навыки отображения карты и научитесь выполнять базовые операции с ней, научитесь добавлять стандартные маркеры на карту и создавать свои собственные. Будут представлены компоненты карт, узнаете как использовать сервисы доступные для карты, и как обмениватся информацией о выбранном географическом положении между устройствами.

Citation preview

Page 1: Intro to apps with maps for series 40 russian

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

Nokia Series 40

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

Владимир Безкоровайный Senior Software Engineer Maps Platform

Page 2: Intro to apps with maps for series 40 russian

1. Введение в Nokia Maps API для Java ME

2. Требования для начала работы 3. Базовые концепции карт 4. Введение в сервисы для поиска

(Search) и маршрутизации (Routing) 5. Введение в позиционирование

(positioning) (JSR-179)

Agenda

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

Page 3: Intro to apps with maps for series 40 russian

Nokia Maps API для Java ME

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

Page 4: Intro to apps with maps for series 40 russian

Что такое Nokia Maps API для Java ME?

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

Для детальной информации пройдите по ссылке: http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/

• API предназначено для Series 40 Phones. Позволяет разрабатывать мобильные приложения для Nokia карт.

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

• Поддерживаемые устройства MIDP 2.0 или

выше.

• В данный момент не является частью SDK

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

• Улучшена скорость разработки, а также скорость самих

приложений

Page 5: Intro to apps with maps for series 40 russian

Почему следует использовать Nokia Maps API для Java ME?

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

• Различные типы карт, оптимизированные для мобильных устройств.

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

• Готовая поддержка наиболее популярных вариантов

использования (Markers, Images, Polygons, Polylines, Pan and Zoom)

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

• Компоненты карты позволяют расширять и

переопределять их функциональность.

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

Page 6: Intro to apps with maps for series 40 russian

Сравнение Nokia Java ME карт со статическими картами на основе картинки

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

Статическая Карта (т.е. RESTful Map API) • одиночный http запрос для одной карты одно изображение возвращается в ответ • новый запрос на каждое изменение. Карты для Java ME • Несколько http запросов для

соответствующих фрагментов карты. • Полученные фрагменты кэшитуются. • Затем они «склеиваются» вместе и обьекты

добавляются поверх. • Дополнительные запросы делаются только в

случае необходимости.

Результат • Благодаря встроенной разумной отрисовки карты, увеличивается скорость

работы и уменьшается сетевой трафик. Использование кэширования и разбитие на фрагменты лучше для мобильных девайсов.

Page 7: Intro to apps with maps for series 40 russian

Инструкция по установке

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

Page 8: Intro to apps with maps for series 40 russian

Инструкция по установке

8 “© 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/

Page 9: Intro to apps with maps for series 40 russian

2.

Инструкция по установке

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

4. Конфигурирование Nokia SDK в NetBeans

1.

3.

Page 10: Intro to apps with maps for series 40 russian

Инструкция по установке

10 “© 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/

Page 11: Intro to apps with maps for series 40 russian

Инструкция по установке

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

6. Бесплатная регистрация для разработчиков на www.developer.nokia.com

Page 12: Intro to apps with maps for series 40 russian

Инструкция по установке

12 “© 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 проекте.

Page 13: Intro to apps with maps for series 40 russian

Базовые концепции

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

• Минимальные возможности карты • Типы карт

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

• Маркеры

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

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

Page 14: Intro to apps with maps for series 40 russian

Минимальные возможности карты

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

Реализация Pan и Zoom функциональности в несколько строк кода. 1. Передать credentials в ApplicationContext

2. Создать MapCanvas

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

Page 15: Intro to apps with maps for series 40 russian

Типы Карт

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

Выберете подходящий тип для Вашей карты

Page 16: Intro to apps with maps for series 40 russian

Типы карт – Простой Метод

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

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

Пример кода

Page 17: Intro to apps with maps for series 40 russian

Типы карт – Продвинутый метод

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

1) Реализуйте интерфейс MapSchemeListener и вызовите getAvailableMaps()

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

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

Page 18: Intro to apps with maps for series 40 russian

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

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

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

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

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

Английский

Page 19: Intro to apps with maps for series 40 russian

Маркеры

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

Маркеры – это облегченная версия POI (points of interest) для указанного местоположения на карте. Существует 2 типа: • MapStandardMarker

• Различные геометрические фигуры, плюс Balloon • Легко добавить text, изменить color (и прозрачность)

• MapMarker • Используется для иконок. • Нужно определить местоположение к которому будет

привязан маркер. • Используйте MapFactory для создания экземпляров

MapStandardMarkers и MapMarkers

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

Page 20: Intro to apps with maps for series 40 russian

Polyline и Polygon

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

• MapPolyline – это последовательность соединенных точек

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

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

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

Page 21: Intro to apps with maps for series 40 russian

MapCanvas MapDisplay MapObject

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

• MapCanvas содержит MapFactory и

MapDisplay

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

• MapFactory может быть использована для

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

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

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

Page 22: Intro to apps with maps for series 40 russian

Map Events

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

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

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

Page 23: Intro to apps with maps for series 40 russian

Введение в Location-Based сервисы

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

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

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

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

• Sharing

Page 24: Intro to apps with maps for series 40 russian

Geocoding Search

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

• Поиск местоположения на карте по заданному адресу

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

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

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

2. Создание GeoCodeRequest

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

Page 25: Intro to apps with maps for series 40 russian

Reverse Geocoding Search

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

• Поиск адреса для заданого географического положения (location). • Поиск так же может быть синхронным или асинхронным • Желательно использовать асинхронный

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

2. Создание ReverseGeoCodeRequest

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

Page 26: Intro to apps with maps for series 40 russian

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

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

• Гибкий локальный поиск (Local Search) • Обычный текстовый поиск (Text Search, например: “Пицца”) • Поиск по категориям (Category Search, например: ресторан) • Комбинированный поиск (например: “Итальянский” +

ресторан)

• Получение более детальной информации

• Контактная информация • Часы работы • Описание и отзывы • Изображения и т.п.

Page 27: Intro to apps with maps for series 40 russian

Поиск Мест (Places Search)

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

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

2. Создание PlaceSearchRequest

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

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

Page 28: Intro to apps with maps for series 40 russian

Сервис Маршрутизации (Routing )

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

• Routing сервис предназначен для построения маршрута между двумя и более точками (Waypoints).

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

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

2. Создание RouteRequest

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

Page 29: Intro to apps with maps for series 40 russian

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

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

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

Routing сервис

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

• Построение маршрута может быть оптимизировано с помощью задания RoutingMode

Page 30: Intro to apps with maps for series 40 russian

Sharing Manager

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

• Создание зашифрованного URL для RESTful Maps API

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

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

Page 31: Intro to apps with maps for series 40 russian

Позиционирование (Positioning)

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

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

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

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

Page 32: Intro to apps with maps for series 40 russian

Cell-ID Location

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

• A MIDlet может получить приблизительную позицию с помощью Cell-ID.

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

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

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

Page 33: Intro to apps with maps for series 40 russian

Cell-ID Примеры

1) Создание Cell-ID LocationProvider с помощью LocationUtils Прим.: В данный момент вместо второго параметра в getLocationProvider()передается null. Это сделано для дальнейшего расширения библиотеки.

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

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

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

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

Page 34: Intro to apps with maps for series 40 russian

LocationUtil • Метод определения местоположения может

быть любой комбинацией из методов перечисленных в JSR-179:

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

• Standalone GPS

• Assisted GPS

• Online Cell ID an/or WLAN

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

Page 35: Intro to apps with maps for series 40 russian

GPS Примеры

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

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

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

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

Page 36: Intro to apps with maps for series 40 russian

Дополнительная информация

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