Nokia Series 40Разработка приложений спомощью Nokia карт и LocationAPI для телефонов Series 40Владимир БезкоровайныйSenior...
Agenda1. Введение в Nokia Maps API для Java   ME2. Требования для начала работы3. Базовые концепции карт4. Введение в серв...
Nokia Maps API для Java ME3   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Что такое Nokia Maps API для Java•ME?  API предназначено для Series 40 Phones.  Позволяет разрабатывать мобильные        п...
Почему следует использовать Nokia Maps APIдля Java ME?•       Различные типы карт, оптимизированные для        мобильных у...
Сравнение Nokia Java ME карт состатическими картами на основекартинкиСтатическая Карта (т.е. RESTful MapAPI)•           од...
Инструкция по установке7   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Инструкция по установке1. Установите Java Runtime Environment 6     http://www.java.com/en/download/index.jsp2. Установите...
Инструкция по установке                                                              1.4. Конфигурирование Nokia SDK в Net...
Инструкция по установке5. Загрузка бинарного Jar файла      http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_...
Инструкция по установке6. Бесплатная регистрация для разработчиков на www.developer.nokia.com 11   “© Nokia 2012 Intro to ...
Инструкция по установке7. Получите бесплатно credentials (App Id иToken) для   аутентификации:          https://api.develo...
Базовые концепции• Минимальные возможности карты• Типы карт• Языки поддерживаемые картой• Маркеры• Полилайн и полигон• Вза...
Минимальные возможности картыРеализация Pan и Zoom функциональности в несколько строк кода.      1. Передать credentials в...
Типы КартВыберете подходящий тип для Вашей карты15   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Типы карт – Простой МетодСтандартные схемыПример кода16   “© Nokia 2012 Intro to Maps on Apps Russian.pptx
Типы карт – Продвинутый метод1)    Реализуйте интерфейс MapSchemeListener и вызовите getAvailableMaps()2)    Обработайте п...
Языки поддерживаемые картой• В данный момент доступны восемь  языков: Арабский, Китайский,  Немецкий, Английский, Французс...
МаркерыМаркеры – это облегченная версия POI (points ofinterest) для указанного местоположения на карте.Существует 2 типа:•...
Polyline и Polygon•        MapPolyline – это последовательность соединенных точек•        MapPolygon - это область огранич...
MapCanvas MapDisplay MapObject•    MapCanvas содержит MapFactory и     MapDisplay•    Используйте MapFactory для создания ...
Map Events     • Создание MapComponent для взаимодействия с MapDisplay     • Добавление EventListener в MapComponent для п...
Введение в Location-Based сервисы     • Поиск (Geocoding Search and Reverse Geocoding       Search )     • Поиск мест (Pla...
Geocoding Search•    Поиск местоположения на карте по     заданному адресу•    Синхронный и асинхронный поиск•    Желатель...
Reverse Geocoding Search     •   Поиск адреса для заданого географического положения (location).     •   Поиск так же може...
Поиск мест (Places Search)• Гибкий локальный поиск (Local Search)          •      Обычный текстовый поиск (Text Search, на...
Поиск Мест (Places Search)     1. Реализация PlaceSearchRequestListener     2. Создание PlaceSearchRequest     3. Обработк...
Сервис Маршрутизации (Routing )     • Routing сервис предназначен для построения маршрута       между двумя и более точкам...
Routing сервис •   Построение маршрута может быть оптимизировано с помощью задания     RoutingMode     •       Тип маршрут...
Sharing Manager      • Создание зашифрованного URL для RESTful Maps API      • Отправка URL через SMS клиенту для получени...
Позиционирование (Positioning)• Отдельный вспомогательный пакет для позиционирования (JSR-  179)• Зачастую поставлятся с N...
Cell-ID Location• A MIDlet может получить приблизительную позицию с помощью  Cell-ID.• Метод состоит из передачи Cell ID,к...
Cell-ID Примеры1) Создание Cell-ID LocationProvider с помощью LocationUtils     Прим.: В данный момент вместо второго пара...
LocationUtil• Метод определения местоположения может  быть любой комбинацией из методов  перечисленных в JSR-179:Часто исп...
GPS Примеры1. Создание GPS LocationProvider2. Настройка провайдера для получения данных3. Получение и обработка результата...
Дополнительная информация Nokia SDK for Java http://developer.nokia.com/ru Nokia Developer Library http://library.develope...
Upcoming SlideShare
Loading in...5
×

Intro to apps with maps for series 40 russian

641
-1

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
641
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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
  • 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.
  • Does all the hard bits so you don’t have to bother.
  • The Examples were built using Nokia SDK 1.0.The API will be integrated into Nokia SDK 2.0
  • 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
  • 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.
  • 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.
  • All map objects are created through the MapFactoryDefault width of a line.zoomTo
  • Cust
  • All map objects are created through the MapFactoryDefault width of a line.zoomTo
  • 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.
  • Geocoding is Address to Location.Can supply hint – The Toledo problem ( two cities similar size same name) = other example Hamilton. HENCE THE NULL above!
  • How to get the central point of the map.
  • 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?
  • Synchronous (obviously)
  • -1 is the timeout parameter
  • -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.
  • Intro to apps with maps for series 40 russian

    1. 1. Nokia Series 40Разработка приложений спомощью Nokia карт и LocationAPI для телефонов Series 40Владимир БезкоровайныйSenior Software EngineerMaps Platform1 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    2. 2. Agenda1. Введение в Nokia Maps API для Java ME2. Требования для начала работы3. Базовые концепции карт4. Введение в сервисы для поиска (Search) и маршрутизации (Routing)5. Введение в позиционирование (positioning) (JSR-179)2 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    3. 3. Nokia Maps API для Java ME3 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    4. 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. 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. 6. Сравнение Nokia Java ME карт состатическими картами на основекартинкиСтатическая Карта (т.е. RESTful MapAPI)• одиночный http запрос для одной карты одно изображение возвращается в ответ• новый запрос на каждое изменение.Карты для Java ME• Несколько http запросов для соответствующих фрагментов карты.• Полученные фрагменты кэшитуются.• Затем они «склеиваются» вместе и обьекты добавляются поверх.• Дополнительные запросы делаются только в случае необходимости. Результат • Благодаря встроенной разумной отрисовки карты, увеличивается скорость работы и уменьшается сетевой трафик. Использование кэширования и разбитие на фрагменты лучше для мобильных девайсов. 6 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    7. 7. Инструкция по установке7 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    8. 8. Инструкция по установке1. Установите Java Runtime Environment 6 http://www.java.com/en/download/index.jsp2. Установите IDE (например NetBeans) Netbeans.org3. Установите Nokia SDK для Java (бесплатно) http://www.developer.nokia.com/Develop/Java/Tools/ 8 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    9. 9. Инструкция по установке 1.4. Конфигурирование Nokia SDK в NetBeans 2. 3.9 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    10. 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. 11. Инструкция по установке6. Бесплатная регистрация для разработчиков на www.developer.nokia.com 11 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    12. 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. Базовые концепции• Минимальные возможности карты• Типы карт• Языки поддерживаемые картой• Маркеры• Полилайн и полигон• Взаимодействие компонентов13 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    14. 14. Минимальные возможности картыРеализация Pan и Zoom функциональности в несколько строк кода. 1. Передать credentials в ApplicationContext 2. Создать MapCanvas 3. Установить в него Display 14 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    15. 15. Типы КартВыберете подходящий тип для Вашей карты15 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    16. 16. Типы карт – Простой МетодСтандартные схемыПример кода16 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    17. 17. Типы карт – Продвинутый метод1) Реализуйте интерфейс MapSchemeListener и вызовите getAvailableMaps()2) Обработайте полученный результат(Success или Failure)3) Установите BaseMapType из списка доступных MapProviders 17 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    18. 18. Языки поддерживаемые картой• В данный момент доступны восемь языков: Арабский, Китайский, Немецкий, Английский, Французский, Итальянский, Испанский и Русский• Просто выберите DefaultLanguage в ApplicationContext• По умолчанию используется Английский18 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    19. 19. МаркерыМаркеры – это облегченная версия POI (points ofinterest) для указанного местоположения на карте.Существует 2 типа:• MapStandardMarker • Различные геометрические фигуры, плюс Balloon • Легко добавить text, изменить color (и прозрачность)• MapMarker • Используется для иконок. • Нужно определить местоположение к которому будет привязан маркер.• Используйте MapFactory для создания экземпляров MapStandardMarkers и MapMarkers• Маркер по умолчанию ‘Синий Nokia’ Balloon 19 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    20. 20. Polyline и Polygon• MapPolyline – это последовательность соединенных точек• MapPolygon - это область ограниченная замкнутой ломаной• Каждый экземпляр MapPolygon или MapPolyline создается с помощью MapFactory• Оба обьекта имеют GeoBoundingBox. 20 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    21. 21. MapCanvas MapDisplay MapObject• MapCanvas содержит MapFactory и MapDisplay• Используйте MapFactory для создания MapObjects• MapFactory может быть использована для создания MapDisplay, т.е. для автоматического кэшировамия статической карты• MapDisplay содержит MapObjects, а так же он и сам являтся MapObject.• MapObjects могут быть помещены в MapContainer21 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    22. 22. Map Events • Создание MapComponent для взаимодействия с MapDisplay • Добавление EventListener в MapComponent для получения уведомлений о взаимодействии с экраном и нажатии клавиш22 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    23. 23. Введение в Location-Based сервисы • Поиск (Geocoding Search and Reverse Geocoding Search ) • Поиск мест (Places Search) • Маршрутизация (Routing) • Sharing23 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    24. 24. Geocoding Search• Поиск местоположения на карте по заданному адресу• Синхронный и асинхронный поиск• Желательно использовать асинхроный.1. Реализация GeoCodeRequestListener2. Создание GeoCodeRequest3. Обработка полученного результата24 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    25. 25. Reverse Geocoding Search • Поиск адреса для заданого географического положения (location). • Поиск так же может быть синхронным или асинхронным • Желательно использовать асинхронный 1. Реализация ReverseGeocodeRequestListener 2. Создание ReverseGeoCodeRequest 3. Обработка полученного результата25 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    26. 26. Поиск мест (Places Search)• Гибкий локальный поиск (Local Search) • Обычный текстовый поиск (Text Search, например: “Пицца”) • Поиск по категориям (Category Search, например: ресторан) • Комбинированный поиск (например: “Итальянский” + ресторан)• Получение более детальной информации • Контактная информация • Часы работы • Описание и отзывы • Изображения и т.п.26 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    27. 27. Поиск Мест (Places Search) 1. Реализация PlaceSearchRequestListener 2. Создание PlaceSearchRequest 3. Обработка полученного результата 4. Более детальная информация может быть получена из Result27 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    28. 28. Сервис Маршрутизации (Routing ) • Routing сервис предназначен для построения маршрута между двумя и более точками (Waypoints). • Построение маршрута – дорогостоящая операция и может занять много времени. Рекомендуется выполнять RouteRequests асинхронно. 1. Реализация RouteListener 2. Создание RouteRequest 3. Обработка полученных результатов28 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    29. 29. Routing сервис • Построение маршрута может быть оптимизировано с помощью задания RoutingMode • Тип маршрутизации – по умолчанию RoutingType.Shortest • Транспортный режим – по умолчанию TransportMode.CAR • Дополнительные ограничения (по умолчанию отсутствуют)29 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    30. 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. 31. Позиционирование (Positioning)• Отдельный вспомогательный пакет для позиционирования (JSR- 179)• Зачастую поставлятся с Nokia Maps API для Java ME, тем не менее не является частью API• Используются два метода • Cell ID positioning • GPS31 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    32. 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. 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. 34. LocationUtil• Метод определения местоположения может быть любой комбинацией из методов перечисленных в JSR-179:Часто используемые комбинации• Offline Cell ID• Standalone GPS• Assisted GPS• Online Cell ID an/or WLAN34 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    35. 35. GPS Примеры1. Создание GPS LocationProvider2. Настройка провайдера для получения данных3. Получение и обработка результата35 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    36. 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/Maps36 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×