Как поставить на навигатор андроид: Как установить навигатор на телефон бесплатно (Android)?
Как установить навигатор на телефон бесплатно (Android)?
Руководства • Руководства Android29.06.2019
Автор: lembos
Навигатор — это незаменимая утилита для тех, кто часто путешествует и нуждается в верном помощнике для перемещений в пределах города или страны.
Практически на всех современных Android устройствах навигатор от Google установлен по умолчанию. При желании вы можете скачать на смартфон любое другое аналогичное приложение из Play Маркет. Далее мы расскажем, как установить навигатор на Андроид и настроить основные параметры.
Как установить навигатор от Google
Google Карты
Developer: Google LLC
Price: Free
Приложение Карты от Google предустановлено практически на всех современных Android смартфонах. Это бесплатный навигатор с помощью которого можно получать информацию о загруженности дорог, создавать списки любимых мест и прокладывать маршруты. Как установить навигатор на смартфон:
Шаг 1. Если приложение отсутствует в списке загруженных по умолчанию, то загрузите его вручную. Для этого запустите Play Маркет и воспользуйтесь поиском по ключевому слову «Карты». На открывшейся странице нажмите «Установить» или «Обновить», чтобы скачать приложение на телефон.
Шаг 2. Запустите навигатор. Чтобы проложить путь в навигаторе тапните на синюю кнопку «В путь». В верхней части страницы укажите точки отправления и прибытия. Здесь же выберите тип транспорта (личный автомобиль, общественный транспорт, пешком).
Шаг 3. Когда вы укажите точки отправления и прибытия, то сможете просмотреть примеры доступных маршрутов на карте. Если вы прокладываете маршрут для личного транспорта, то для вас будет доступна кнопка «Путь и парковка», где вы сможете посмотреть загруженность трафика.
Шаг 4. Если вы прокладываете маршрут для пешеходной прогулки, то сможете просмотреть другие подробности. Для этого нажмите «По шагам». Здесь отобразятся пешеходные переходы и другие безопасные места для пересечения дороги.
Шаг 5. Нажмите на синюю кнопку «В путь», чтобы начать движение по маршруту. Для этого следуйте голосовым рекомендациям навигатора и указаниям на карте.
В целом навигатор от Google может похвастаться проработанными картами городов и высокой точностью построения маршрутов, а главное, может использоваться без регистрации.
Как установить Яндекс Навигатор
Яндекс Навигатор
Developer: Intertech Services AG
Price: Free
Вместо Карты от Google вы можете бесплатно скачать на смартфон или планшет любой другой аналогичный софт. Подробнее о лучших навигаторах для Android читайте в нашей подборке приложений. Далее мы расскажем, как установить и настроить навигатор от Yandex:
Шаг 1. Откройте Play Маркет и найдите через поиск приложение «Яндекс.Навигатор». Нажмите «Установить», чтобы начать загрузку.
Шаг 2. Примите условия лицензионного соглашения и выдайте навигатору доступ к микрофону (для управления голосом), к данным о местоположении Андроид устройства.
Шаг 3. Откроется карта города. Если вы разрешили приложению использовать микрофон для доступа к голосовым командам, то для построения маршрута скажите «Привет, Алиса»
и уточните адрес.Шаг 4. Вы также можете указать пункт назначения вручную. Для этого перейдите на главный экран и нажмите на иконку в виде лупы. Здесь выберите категорию из списка (для быстрого поиска) или введите адрес.
Шаг 5. Нажмите «Поехали», чтобы построить маршрут. Еще раз тапните «Поехали», чтобы начать движение или «Отмена», чтобы выбрать другой пункт назначения.
Практически все популярные навигаторы доступны на русском языке и могут похвастаться высокой точностью построения маршрутов. Но не забывайте, что точность навигатора зависит и от технических характеристик Android-устройства.
Читайте также
Настройка навигации — Мобильные Яндекс Карты. Справка
- Зафиксировать подсказки о манёврах в углу экрана
- Север всегда сверху
- Автомасштабирование
- 3D-режим
- Показывать альтернативные маршруты во время движения
- Избегать платных дорог
- Избегать плохих и грунтовых дорог
- Фоновое ведение
- Тип транспорта
Примечание. При движении по маршруту учитываются все настройки навигации.
При движении по маршруту на автомобиле подсказки о следующем маневре и полосах движения появляются на карте вдоль маршрута. Чтобы они всегда отображались в углу экрана:
Нажмите (значок профиля). Если вы не вошли в аккаунт, нажмите кнопку .
Нажмите кнопку Настройки → Навигация.
Включите опцию Зафиксировать подсказки о манёврах в углу экрана.
Чтобы при движении по маршруту карта всегда была ориентирована на север:
Нажмите (значок профиля). Если вы не вошли в аккаунт, нажмите кнопку .
Нажмите кнопку Настройки → Навигация.
Включите опцию Север всегда сверху.
Примечание. Если эта настройка включена, в режиме Навигатор карта будет в 2D.
Чтобы включить или выключить автоматическое масштабирование карты при движении по маршруту:
Нажмите (значок профиля). Если вы не вошли в аккаунт, нажмите кнопку .
Нажмите кнопку Настройки → Навигация.
Включите или выключите опцию Автомасштабирование.
3D-режим показывает объемное изображение карты в режиме Навигатор. Режим включен по умолчанию.
Чтобы выключить 3D-режим:
Нажмите (значок профиля). Если вы не вошли в аккаунт, нажмите кнопку .
Нажмите Настройки → Навигация.
Выключите опцию 3D-режим. Карта в режиме Навигатор теперь будет отображаться в 2D.
Если включить опцию Север всегда сверху, 3D-режим в Навигаторе выключится и станет недоступен.
Чтобы видеть на карте альтернативные маршруты движения к выбранной точке:
Нажмите (значок профиля). Если вы не вошли в аккаунт, нажмите кнопку .
Нажмите кнопку Настройки → Навигация.
Включите опцию Показывать альтернативные маршруты во время движения.
Чтобы маршруты строились с учетом или без учета платных дорог:
Нажмите (значок профиля).
Если вы не вошли в аккаунт, нажмите кнопку .
Нажмите кнопку Настройки → Навигация.
Включите или выключите опцию Избегать платных дорог.
Чтобы маршруты строились с учетом или без учета плохих и грунтовых дорог:
Нажмите (значок профиля). Если вы не вошли в аккаунт, нажмите кнопку .
Нажмите кнопку Настройки → Навигация.
Включите или выключите опцию Избегать плохих и грунтовых дорог.
Примечание. Иногда построить маршрут без плохих и грунтовых дорог невозможно.
Примечание. Включено по умолчанию.
Карты могут работать в фоновом режиме: вести по маршруту и давать подсказки, когда приложение свернуто или экран выключен. Чтобы настроить фоновое ведение:
Нажмите (значок профиля). Если вы не вошли в аккаунт, нажмите кнопку .
Нажмите кнопку Настройки → Навигация.
Включите или выключите опцию Фоновое ведение.
Чтобы получать уведомления, когда приложение свернуто, включите опцию Подсказки в фоновом режиме.
Примечание. Доступно только для устройств с Android.
Уведомления о маневрах могут воспроизводиться, когда приложение свернуто. Чтобы включить подсказки в фоновом режиме:
Нажмите (значок профиля). Если вы не вошли в аккаунт, нажмите кнопку .
Нажмите кнопку Настройки → Навигация.
Включите опцию Подсказки в фоновом режиме.
Откройте настройки устройства.
В списке приложений выберите Яндекс Карты.
Нажмите Управление уведомлениями.
Включите опции Подсказки в фоновом режиме и Фоновое ведение.
Не работает фоновое ведение
Примечание. Инструкция может отличаться в зависимости от версии Android и модели устройства.
Ограничение. Функция доступна только онлайн, для устройств с Android и для маршрутов по территории Российской Федерации.
Вы можете добавить до 5 грузовиков, чтобы строить маршруты с учетом ограничений для грузовых автомобилей, а также ехать в режиме Навигатор. Карты заранее подскажут, что на пути есть ограничение.
Войдите с Яндекс ID — нажмите → Войти, чтобы пользоваться сохраненными грузовиками на других устройствах.
Чтобы добавить грузовик:
Постройте маршрут и нажмите .
Примечание. Другой способ — нажмите (значок профиля) и выберите Настройки → Навигация.
Нажмите Добавить грузовик.
Введите название и выберите тоннаж — параметры грузовика заполнятся автоматически. Измените их при необходимости.
Параметры грузовика
Укажите, есть ли прицеп.
Выберите экологический класс.
Нажмите Добавить грузовик.
Постройте маршрут и нажмите .
Примечание. Другой способ — нажмите (значок профиля) и выберите Настройки → Навигация.
Нажмите .
Измените значения параметров и нажмите Сохранить изменения.
Постройте маршрут и нажмите .
Примечание. Другой способ — нажмите (значок профиля) и выберите Настройки → Навигация.
Выберите грузовик, который нужно удалить, и нажмите → Удалить грузовик.
Отредактировать грузовик
Удалить грузовик
Написать в службу поддержки
Навигационный SDK | Андроид | Mapbox
Навигационный SDK | Андроид | MapboxAll docschevron-rightarrow-leftNavigation SDK для Androidchevron-rightGuides
Navigation SDK для Android позволяет создать полную навигацию с помощью API Mapbox Directions. Вы можете создать полный пользовательский интерфейс с пошаговой навигацией внутри своего приложения, используя наши предварительно созданные компоненты, или напрямую использовать базовую логику, чтобы создать что-то действительно индивидуальное.
Navigation SDK предоставляет набор функций, имеющих решающее значение при создании навигационных проектов, в том числе:
- Навигационные маршруты
- Точное обновление местоположения устройства
- Голосовые инструкции
- Продвижение пользователя к месту назначения в режиме реального времени
- Обнаружение отклонений от маршрута и изменение маршрута
- Динамические настройки камеры во время пошаговой навигации
- До
- встроенные компоненты пользовательского интерфейса для отображения меняющейся навигационной информации
- Поддержка навигации с ограниченным сетевым подключением или без него
Navigation SDK предлагает два типа навигации: пошаговая навигация и режим свободного вождения.
Пошаговая навигация
Пошаговая навигация, также называемая активным руководством, скорее всего, это то, что приходит на ум, когда вы думаете о типичной пошаговой навигации: пользователь получает пошаговую поворачивайте инструкции по мере их продвижения по маршруту. Подробнее читайте в пошаговых руководствах по навигации.
Free-drive
Навигация Free-drive, также называемая пассивной навигацией, представляет собой уникальную функцию Mapbox Navigation SDK, которая позволяет водителям использовать некоторые функции навигации без выбора маршрута и следования пошаговым инструкциям до места назначения. установить пункт назначения. Подробнее читайте в руководстве Free-drive.
Mapbox Navigation SDK для Android совместим с приложениями, которые:
- Созданы с использованием Android SDK 21 или более поздней версии.
- Используйте Java 8 для
sourceCompatibility
иtargetCompatibility
, как показано в руководстве по установке.
Mapbox Navigation SDK для Android построен на Kotlin, официальном языке, рекомендованном Google для разработки под Android. Kotlin на 100% совместим с Java.
Приложения с кодовой базой Java могут правильно взаимодействовать с общедоступными API, предоставляемыми Mapbox SDK для Android. Если у вас возникли проблемы с использованием Mapbox Navigation SDK для Android с Java, свяжитесь с нами.
Mapbox Navigation SDK для Android предназначен для использования с несколькими другими продуктами Mapbox.
Directions API
Navigation SDK поставляется с доступом к Mapbox Directions API для создания маршрутов между двумя или более координатами. API Directions имеет множество параметров маршрута, таких как настройка профиля
(например, вождение автомобиля, вождение с пробками или ходьба), азимут
(чтобы повлиять на направление начала маршрута) и исключение
(например, уклонение от платы за проезд). Подробнее об API Directions читайте в документации API.
Maps SDK для Android
По умолчанию Navigation SDK поставляется с доступом к Mapbox Maps SDK для Android. Navigation SDK использует Maps SDK для отображения маршрутов на карте и отображения местоположения пользователя на карте на протяжении всей поездки, чтобы предоставить как контекст, связанный с навигацией, так и близлежащие места, которые могут представлять интерес для водителя. Пакет SDK для навигации использует SDK для Карт. Подробнее читайте в документации Maps SDK.
Атрибуция
Если вы используете карту Mapbox в своем приложении, вы должны указать авторство в соответствии с документацией Mapbox Maps SDK.
Условия
Mapbox Navigation SDK распространяется в соответствии с Условиями использования Mapbox.
Цены
Подробнее о ценах на Navigation SDK читайте в руководстве по ценам.
Ищете старую версию Navigation SDK? См. документацию Navigation SDK v1.
Пример использования навигации | TomTom SDK для Android
ВЕРСИЯ 0.3.1617
ПУБЛИЧНАЯ ПРЕДВАРИТЕЛЬНАЯ ПРОВЕРКА
SDK навигации для Android доступен только по запросу. Свяжитесь с нами, чтобы начать.
В этом руководстве показано, как создать простое навигационное приложение с помощью TomTom Navigation
SDK для Android. Приложение использует встроенные компоненты пользовательского интерфейса. Однако вы можете создавать собственные компоненты и интегрировать их с SDK.
Приложение отображает карту и показывает местоположение пользователя. После того, как пользователь выбирает пункт назначения долгим щелчком, приложение планирует маршрут и рисует его на карте. Навигация запускается, когда пользователь нажимает на маршрут.
Начало работы
- Установите Android Studio, если она еще не установлена.
- Создайте новый проект или откройте существующий. Убедитесь, что для
- Добавьте
опции упаковки
.1android {
3 PackagingOptions {
4 jniLibs.pickFirsts.add("lib/**/libc++_shared.so")
- Поскольку репозиторий Navigation SDK является частным, вам необходимо связаться с нами, чтобы получить доступ.
- Получив доступ, перейдите на repositories.
tomtom.com и войдите под своей учетной записью. Разверните меню пользователя в правом верхнем углу и выберите «Редактировать профиль» → «Создать токен идентификации». Скопируйте свой токен и поместите его вместе со своим логином в файл
settings.gradle
вашего проекта, заменив заполнители репозиторийUsername и репозиторийToken.1 -rependencyResolutionManagement {
2 RepositoriesMode.Set (RepositoriesMode.fail_on_project_Repos)
3 Repositories {
4 Google ()
5 Mavencentral ()
9000 2 9000 3 9000. 9 пароль = репозиторийToken11 url = uri("https://repositories.tomtom.com/artifactory/maven")
- В файл
app/build.gradle
добавьте зависимости для модулей «Отображение карты», «Маршрутизация», «Местоположение» и «Навигация».1dependencies {
2 def version = "0.
3.1617"
3 реализация "com.tomtom.sdk.maps:map-display:$version"
4 реализация "com.tomtom.sdk.routing:route- planner-online:$version"
5 реализация "com.tomtom.sdk.location:provider-android:$version"
6 реализация "com.tomtom.sdk.location:provider-simulation:$version"
7 реализация "com.tomtom.sdk.location:provider-map-matched:$version"
8 реализация "com.tomtom.sdk.navigation:navigation-online:$version"
9 реализация "com.tomtom .sdk.navigation:ui:$версия"
- Добавьте соответствующий ключ TomTom API. Если у вас нет ключа API, перейдите к разделу Как получить ключ API TomTom, чтобы узнать, как его создать.
Отображение карты
После настройки проекта с соответствующими зависимостями можно инициализировать карту. Для инициализации карты подготовьте FragmentContainerView
для карты. Карта отображается в этом макете.
1
2 android:id="@+id/map_container"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent" />
03
MapOptions
требуется для инициализации карты.![]()
- Используйте
MapFragment
для отображения карты.- Необязательная конфигурация: Вы можете дополнительно настроить карту, установив различные свойства
MapOptions
объект. Вы можете узнать больше в руководстве по настройке карты.- Последним шагом является добавление
MapFragment
в ранее созданный контейнер.Любое взаимодействие с картой, например добавление маркера или рисование маршрута, осуществляется через объект
TomTomMap
. Поскольку инициализация карты может занять некоторое время, получение объектаTomTomMap
должно выполняться асинхронно. Сохраните его экземпляр для дальнейших действий.1private fun initMap() {
2 val mapOptions = MapOptions(mapKey = "YOUR_MAP_API_KEY")
3 mapFragment = MapFragment.newInstance(mapOptions)
4 supportFragmentManager.beginTransaction()
3
3 .map_container, mapFragment)
6 .commit()
7 mapFragment.
getMapAsync { map ->
8 tomTomMap = map
Отображение местоположения пользователя
Отображение местоположения пользователя имеет решающее значение в навигационном приложении. Для этого приложение должно использовать службы определения местоположения устройства, для чего требуются соответствующие разрешения. Система Android требует, чтобы пользователь предоставил разрешения для ACCESS_FINE_LOCATION и ACCESS_COARSE_LOCATION .
На устройствах под управлением Android 6.0 или выше необходимо запрашивать разрешения во время выполнения. Узнайте, как предоставить разрешения на определение местоположения, в документе о разрешениях на определение местоположения для Android.
TomTom SDK предоставляет интерфейс LocationProvider
, который используется между различными модулями для получения обновлений местоположения. В этом руководстве используется AndroidLocationProvider
. Под капотом движок использует системные службы определения местоположения Android. ПРИМЕЧАНИЕ: чтобы получать обновления местоположения,
Метод LocationProvider.enable()
должен быть вызван. Чтобы узнать больше о LocationProvider
, обратитесь к краткому руководству по местоположению.
1private fun initLocationProvider() {
2 locationProvider = AndroidLocationProvider(context = this)
Сам LocationProvider
сообщает только об изменениях местоположения. Он не взаимодействует внутри с картой или навигацией. Таким образом, чтобы показать местоположение пользователя на карте, вы должны установить LocationProvider
в TomTomMap
. Вы также должны вручную включить индикатор местоположения. Его можно настроить с помощью класса LocationMarkerOptions
. Дополнительные сведения о местоположении пользователя на карте см. в документе Отображение местоположения пользователя.
1private fun showUserLocation() {
2 locationProvider.
enable()
3 tomTomMap.setLocationProvider(locationProvider)
4 val locationMarker = LocationMarkerOptions(type = LocationMarkerOptions.Type.Pointer)
5 tomTomMap.enableLocationMarker(locationMarker)
Создание маршрута
В этом разделе описывается, как рассчитать маршрут между двумя точками и отобразить его на карте. Более подробную информацию о корректировке критериев планирования и учете профилей транспортных средств можно найти в документации по маршруту.
В этом руководстве по созданию маршрута отправной точкой является местоположение пользователя, а пункт назначения определяется пользователем, выбирающим местоположение на карте. Чтобы отметить пункт назначения на карте, добавьте Обработчик событий MapLongClickListener
для просмотра карты. Метод удаляет все полигоны, круги, маршруты и маркеры, которые ранее были добавлены на карту. Затем он создает маршрут между местоположением пользователя и выбранным местоположением. Метод должен возвращать логическое значение при использовании обратного вызова.
1private val mapLongClickListener = MapLongClickListener { geoPoint ->
2 clearMap()
3 calculateRouteTo(geoPoint)
4 true
7private fun setUpMapListeners() {
8 tomTomMap.addMapLongClickListener(mapLongClickListener)
Обязательно добавьте слушателей, когда экземпляр карты будет готов к использованию.
См. Полный метод1mapfragment.getMapasync {map ->
2 tomtommap = map
3 EnableSerlocation ()
4 SetupMapListeners ()
. mapKey = "ВАШ_КАРТА_API_KEY")1 Private In initmap ()
3 mapFragment = MapFragment.newInstance(mapOptions)
4 supportFragmentManager.beginTransaction()
5 .replace(R.id.map_container, mapFragment)
6 .commit()
->. 7 mapFragment.
8 tomTomMap = map
9 enableUserLocation()
10 setUpMapListeners()
Точкой входа для службы маршрутизации является
. Чтобы инициализировать его, используйте реализацию TomTom по умолчанию, основанную на TomTom
Routing API
.
1Private Fun Initroutinging () {
2 routeplanner =
3 onlinerouteplanner.create (context = this, apikey = "your_routing_api_key")
. RoutePlanningCallback :
см. полный методroutePlanner.planRoute(routePlanningOptions, routePlanningCallback)
1 private fun calculateRouteTo(destination: GeoPoint) {
2 val userLocation =
3 tomTomMap.currentLocation?.position ?: return
4 val itinerary = Itinerary(origin = userLocation )
5 routePlanningOptions = RoutePlanningOptions(
6 itinerary = itinerary,
7 guideOptions = GuidanceOptions(
8 инструкцияType = InstructionType.Text,
9 Phoneticstype = TrancePhoneticStype.ipa,
10 Объявления. planRoute(routePlanningOptions, routePlanningCallback)
Для удобства пользователя во время навигации установите следующие параметры навигации в RoutePlanningOptions
:
-
InstructionType
— указывает, что результат маршрутизации должен содержать инструкции по навигации. -
InstructionPhoneticsType
— указывает, следует ли включать фонетические транскрипции в ответ. -
AnnouncementPoints
— если указан этот параметр, инструкция в ответе включает до трех дополнительных точек объявления с детальной детализацией, каждая со своим местоположением, типом маневра и расстоянием до точки инструкции. -
ExtendedSections
— Указывает, следует ли включать в ответ расширенные разделы навигации, такие как разделы дорожного щита, полосы движения и ограничения скорости. -
ProgressPoints
— указывает, следует ли включать в ответ точки выполнения.
1routePlanningOptions = RoutePlanningOptions(
2 itinerary = itinerary,
3 guideOptions = GuidanceOptions(
4 инструкцияType = InstructionType.Text,
5 Phoneticstype = TrancePhoneticStype.ipa,
6 Объявления. Сам RoutePlanningCallback имеет два метода. Первый метод срабатывает, если запрос не выполняется.
Второй метод возвращает
RoutePlanningResponse
, содержащий результаты маршрутизации. В этом учебном пособии первый найденный маршрут рисуется на карте с помощьюRouteOptions
класс. Вы можете показать обзор добавленных маршрутов, используя методTomTomMap.zoomToRoutes(Int)
. Обратите внимание, что его параметр заполнения выражается в пикселях. Подробнее о добавлении маршрута на карту можно прочитать в документе «Планирование маршрута и вождение».1private val routePlanningCallback = объект: RoutePlanningCallback {
2 переопределить удовольствие при успехе (результат: RoutePlanningResponse) {
3 route = result.routes.first()
4 drawRoute(route!!)
7 override fun onFailure(failure: RoutingFailure) {
8 Toast.makeText(this@MainActivity, failure.message, Toast.LENGTH_SHORT).show()
11 override fun onRoutePlanned (маршрут: Route) = Unit
13private fun drawRoute(route: Route) {
14 значных инструкций = route.
mapInstructions()
15 значных routeOptions = RouteOptions(
16 геометрия = route.geometry,
17 destinationmarkervisible = true,
18 DepareRemarkervisible = true,
19 (ZOOM_TO_ROUTE_PADDING)
25companion object {
26 private const val ZOOM_TO_ROUTE_PADDING = 100
В случае использования навигации инструкции могут быть нанесены на маршрут в виде стрелок, указывающих маневры. Для этого сопоставьте 9Объект 0042 Instruction , предоставленный маршрутизацией к объекту
Instruction
, используемому картой. Обратите внимание, что во время навигации вам необходимо обновить свойство progress нарисованного маршрута, чтобы отобразить следующие инструкции.1private fun Route.mapInstructions(): List
{ 2 val routeInstructions = leg.flatMap { routeLeg -> routeLeg.instructions }
3 return routeInstructions.map {
4 Instruction(
5 routeOffset = it.routeOffset,
6 combWithNext = it.
combineWithNext
Запуск навигации
В этом руководстве используется встроенный пользовательский интерфейс навигации и механизм моделирования местоположения, чтобы добавить в ваше приложение пошаговый режим. Используя встроенный пользовательский интерфейс, приложение будет отображать предстоящие маневры, оставшееся расстояние, расчетное время прибытия (ETA), текущую скорость и информацию об ограничении скорости. Подробнее об этом читайте в пошаговой навигации. Его можно использовать с предоставленными компонентами пользовательского интерфейса или вашими пользовательскими компонентами. В этом руководстве используется пользовательский интерфейс навигации по умолчанию в форме
Фрагмент навигации
.Чтобы использовать навигацию в приложении, начните с /android/navigation/documentation/guides/quickstart#_navigation_configuration, создав объект
TomTomNavigation
.1@optin (ExperimentalOnlineVigationFactory :: Class)
2Private Fun INITNAVigation () {
3 TomTomNavigation = TomTomNavigationFactory.
createonNavigation (
4 контекст = This,
5 APIKEYAVGIGETIGETIGETIGETITION0003
6 locationProvider = locationProvider,
7 routePlanner = routePlanner
Затем добавьте
NavigationFragment
для отображения навигационной информации пользовательского интерфейса.Удаление
TomTom Navigation
не обрабатываетсяNavigationFragment
. Вы должны вызватьTomTomNavigation.close()
самостоятельно, как только навигация больше не нужна.1
2 android:id="@+id/navigation_fragment_container"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 app:layout_constraintBottom_toBottomOf="@+erid/map_>
1private fun initNavigationFragment() {
2 val navigationUiOptions = NavigationUiOptions(
3 keepInBackground = true
5 navigationFragment = NavigationFragment.
newInstance(navigation9UiOptions)0003
6 supportFragmentManager.beginTransaction()
7 .add(R.id.navigation_fragment_container, navigationFragment)
8 .commitNow()
Начать навигацию, передав объект
Route
, по которому будет осуществляться навигацияRoutePlanningOptions
используется при планировании маршрута. Обратите внимание, что вы должны установить ранее созданный объектTomTomNavigation
вNavigationFragment
перед его использованием.1Private Fun Startnavigation (маршрут: маршрут) {
2 initNavigationFragment ()
3 NavigationFragment.SetTomTomnavigation (TomTomNavigation)
4 Routeplan = Routeplan (routeplAnvationOpations)
5 5. 5.straplan.
Обработка обновлений состояний навигации с помощью
NavigationListener
:
- Используйте
CameraChangeListener
для наблюдения за режимом отслеживания камеры и определения того, заблокирована ли камера на шевроне.Если пользователь начнет перемещать камеру, она изменится, и вы сможете настроить пользовательский интерфейс в соответствии с ним.
1private val cameraChangeListener by lazy {
2 CameraChangeListener {
3 val cameraTrackingMode = tomTomMap.cameraTrackingMode
4 if (cameraTrackingMode == CameraTrackingMode.FollowRoute) {
5 navigationFragment.navigationView.showSpeedView()
6 } else {
7 navigationFragment.navigationView.hideSpeedView()
- Используйте
SimulationLocationProvider
для тестирования.1private fun setSimulationLocationProviderToNavigation(route: Route) {
2 val routeGeoLocations = route.geometry.map { GeoLocation(it) }
3 val SimulationStrategy = InterpolationStrategy(routeGeoLocations) =createStrategyProvider Simulation(routeStrategyLocations)
4 location )
5 tomTomNavigation.navigationEngineRegistry.
updateEngines(
6 locationProvider = locationProvider
8 locationProvider.enable()
- После запуска навигации камера настраивается на отслеживание положения пользователя, а индикатор местоположения меняется на шеврон. Чтобы сопоставить необработанные обновления местоположения с маршрутами, используйте
MapMatchedLocationProvider
и задайте для него значениеTomTomMap
.1private fun setMapMatchedLocationProvider() {
2 val mapMatchedLocationProvider = MapMatchedLocationProvider(tomTomNavigation)
3 tomTomMap.setLocationProvider(mapMatchedLocationProvider)
4 mapMatchedLocationProvider.enable()
- Установите нижний отступ на карте. Заполнение устанавливает безопасную область
MapView
, в которой взаимодействие с пользователем не принимается. Он используется для раскрытия шеврона на панели навигации.1private fun setMapNavigationPadding() {
2 val paddingBottom = resources.
getDimensionPixelOffset(R.dimen.map_padding_bottom)
3 val padding = Padding(0, 0, 0, paddingBottom)
4 tomTomMap.setPadding(заполнение)
- Остановить процесс навигации с помощью
NavigationFragment
. Это скрывает элементы пользовательского интерфейса и вызывает метод TomTomNavigation.stop() . Не забудьте сбросить все настройки карты, которые были изменены, такие как отслеживание камеры, маркер местоположения и заполнение карты.1private fun stopNavigation() {
2 navigationFragment.stopNavigation()
3 tomTomMap.cameraTrackingMode = CameraTrackingMode.None
4 tomtommap.enablelocation Marker (locationMarkeroptions (locationmarkeroptions.type.pointer))
5 ResetMappadding ()
6 NavigationFragment.RemovenavigationListener (NavigationListener)
7 TomtomNavigation.RemovenavigationListenerStenerEner). ()
10 enableUserLocation()
Не забудьте закрыть
TomTomNavigation
, если больше не нужно освобождать ресурсы.