Intro to apps with maps for series 40 russian
Upcoming SlideShare
Loading in...5
×
 

Intro to apps with maps for series 40 russian

on

  • 923 views

Приложения, использующие карты и location API, все больше востребованны в повседневном использовании. ...

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

Statistics

Views

Total Views
923
Views on SlideShare
923
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 Intro to apps with maps for series 40 russian Presentation Transcript

  • Nokia Series 40Разработка приложений спомощью Nokia карт и LocationAPI для телефонов Series 40Владимир БезкоровайныйSenior Software EngineerMaps Platform1 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • Agenda1. Введение в Nokia Maps API для Java ME2. Требования для начала работы3. Базовые концепции карт4. Введение в сервисы для поиска (Search) и маршрутизации (Routing)5. Введение в позиционирование (positioning) (JSR-179)2 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • Nokia Maps API для Java ME3 “© 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 MapAPI)• одиночный 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.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
  • Инструкция по установке 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 ofinterest) для указанного местоположения на карте.Существует 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 могут быть помещены в MapContainer21 “© 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) • Sharing23 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • Geocoding Search• Поиск местоположения на карте по заданному адресу• Синхронный и асинхронный поиск• Желательно использовать асинхроный.1. Реализация GeoCodeRequestListener2. Создание GeoCodeRequest3. Обработка полученного результата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. Более детальная информация может быть получена из Result27 “© 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 • GPS31 “© 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 WLAN34 “© Nokia 2012 Intro to Maps on Apps Russian.pptx
  • GPS Примеры1. Создание GPS LocationProvider2. Настройка провайдера для получения данных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/Maps36 “© Nokia 2012 Intro to Maps on Apps Russian.pptx