chore: ExampleActivity removed
This commit is contained in:
parent
fc05e543e6
commit
6b6cffc87f
1 changed files with 0 additions and 692 deletions
|
@ -1,692 +0,0 @@
|
|||
//package eu.ztsh.garmin
|
||||
//
|
||||
//import android.annotation.SuppressLint
|
||||
//import android.content.res.Configuration
|
||||
//import android.content.res.Resources
|
||||
//import android.os.Bundle
|
||||
//import android.view.View
|
||||
//import android.widget.Toast
|
||||
//import androidx.appcompat.app.AppCompatActivity
|
||||
//import com.mapbox.api.directions.v5.models.Bearing
|
||||
//import com.mapbox.api.directions.v5.models.DirectionsRoute
|
||||
//import com.mapbox.api.directions.v5.models.RouteOptions
|
||||
//import com.mapbox.bindgen.Expected
|
||||
//import com.mapbox.common.location.Location
|
||||
//import com.mapbox.geojson.Point
|
||||
//import com.mapbox.maps.EdgeInsets
|
||||
//import com.mapbox.maps.ImageHolder
|
||||
//import com.mapbox.maps.plugin.LocationPuck2D
|
||||
//import com.mapbox.maps.plugin.animation.camera
|
||||
//import com.mapbox.maps.plugin.gestures.gestures
|
||||
//import com.mapbox.maps.plugin.locationcomponent.location
|
||||
//import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
|
||||
//import com.mapbox.navigation.base.TimeFormat
|
||||
//import com.mapbox.navigation.base.extensions.applyDefaultNavigationOptions
|
||||
//import com.mapbox.navigation.base.extensions.applyLanguageAndVoiceUnitOptions
|
||||
//import com.mapbox.navigation.base.formatter.DistanceFormatterOptions
|
||||
//import com.mapbox.navigation.base.options.NavigationOptions
|
||||
//import com.mapbox.navigation.base.route.NavigationRoute
|
||||
//import com.mapbox.navigation.base.route.NavigationRouterCallback
|
||||
//import com.mapbox.navigation.base.route.RouterFailure
|
||||
//import com.mapbox.navigation.core.MapboxNavigation
|
||||
//import com.mapbox.navigation.core.directions.session.RoutesObserver
|
||||
//import com.mapbox.navigation.core.formatter.MapboxDistanceFormatter
|
||||
//import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
|
||||
//import com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver
|
||||
//import com.mapbox.navigation.core.lifecycle.requireMapboxNavigation
|
||||
//import com.mapbox.navigation.core.replay.route.ReplayProgressObserver
|
||||
//import com.mapbox.navigation.core.replay.route.ReplayRouteMapper
|
||||
//import com.mapbox.navigation.core.trip.session.LocationMatcherResult
|
||||
//import com.mapbox.navigation.core.trip.session.LocationObserver
|
||||
//import com.mapbox.navigation.core.trip.session.RouteProgressObserver
|
||||
//import com.mapbox.navigation.core.trip.session.VoiceInstructionsObserver
|
||||
//import com.mapbox.navigation.tripdata.maneuver.api.MapboxManeuverApi
|
||||
//import com.mapbox.navigation.tripdata.progress.api.MapboxTripProgressApi
|
||||
//import com.mapbox.navigation.tripdata.progress.model.DistanceRemainingFormatter
|
||||
//import com.mapbox.navigation.tripdata.progress.model.EstimatedTimeToArrivalFormatter
|
||||
//import com.mapbox.navigation.tripdata.progress.model.PercentDistanceTraveledFormatter
|
||||
//import com.mapbox.navigation.tripdata.progress.model.TimeRemainingFormatter
|
||||
//import com.mapbox.navigation.tripdata.progress.model.TripProgressUpdateFormatter
|
||||
//import com.mapbox.navigation.ui.base.util.MapboxNavigationConsumer
|
||||
//import com.mapbox.navigation.ui.components.maneuver.view.MapboxManeuverView
|
||||
//import com.mapbox.navigation.ui.components.tripprogress.view.MapboxTripProgressView
|
||||
//import com.mapbox.navigation.ui.maps.NavigationStyles
|
||||
//import com.mapbox.navigation.ui.maps.camera.NavigationCamera
|
||||
//import com.mapbox.navigation.ui.maps.camera.data.MapboxNavigationViewportDataSource
|
||||
//import com.mapbox.navigation.ui.maps.camera.lifecycle.NavigationBasicGesturesHandler
|
||||
//import com.mapbox.navigation.ui.maps.camera.state.NavigationCameraState
|
||||
//import com.mapbox.navigation.ui.maps.camera.transition.NavigationCameraTransitionOptions
|
||||
//import com.mapbox.navigation.ui.maps.location.NavigationLocationProvider
|
||||
//import com.mapbox.navigation.ui.maps.route.arrow.api.MapboxRouteArrowApi
|
||||
//import com.mapbox.navigation.ui.maps.route.arrow.api.MapboxRouteArrowView
|
||||
//import com.mapbox.navigation.ui.maps.route.arrow.model.RouteArrowOptions
|
||||
//import com.mapbox.navigation.ui.maps.route.line.api.MapboxRouteLineApi
|
||||
//import com.mapbox.navigation.ui.maps.route.line.api.MapboxRouteLineView
|
||||
//import com.mapbox.navigation.ui.maps.route.line.model.MapboxRouteLineApiOptions
|
||||
//import com.mapbox.navigation.ui.maps.route.line.model.MapboxRouteLineViewOptions
|
||||
//import com.mapbox.navigation.voice.api.MapboxSpeechApi
|
||||
//import com.mapbox.navigation.voice.api.MapboxVoiceInstructionsPlayer
|
||||
//import com.mapbox.navigation.voice.model.SpeechAnnouncement
|
||||
//import com.mapbox.navigation.voice.model.SpeechError
|
||||
//import com.mapbox.navigation.voice.model.SpeechValue
|
||||
//import com.mapbox.navigation.voice.model.SpeechVolume
|
||||
//import eu.ztsh.garmin.databinding.ActivityMainBinding
|
||||
//import java.util.Date
|
||||
//import java.util.Locale
|
||||
//
|
||||
///**
|
||||
// * This example demonstrates a basic turn-by-turn navigation experience by putting together some UI elements to showcase
|
||||
// * navigation camera transitions, guidance instructions banners and playback, and progress along the route.
|
||||
// *
|
||||
// * Before running the example make sure you have put your access_token in the correct place
|
||||
// * inside [app/src/main/res/values/mapbox_access_token.xml]. If not present then add this file
|
||||
// * at the location mentioned above and add the following content to it
|
||||
// *
|
||||
// * <?xml version="1.0" encoding="utf-8"?>
|
||||
// * <resources xmlns:tools="http://schemas.android.com/tools">
|
||||
// * <string name="mapbox_access_token"><PUT_YOUR_ACCESS_TOKEN_HERE></string>
|
||||
// * </resources>
|
||||
// *
|
||||
// * The example assumes that you have granted location permissions and does not enforce it. However,
|
||||
// * the permission is essential for proper functioning of this example. The example also uses replay
|
||||
// * location engine to facilitate navigation without actually physically moving.
|
||||
// *
|
||||
// * How to use this example:
|
||||
// * - You can long-click the map to select a destination.
|
||||
// * - The guidance will start to the selected destination while simulating location updates.
|
||||
// * You can disable simulation by commenting out the [replayLocationEngine] setter in [NavigationOptions].
|
||||
// * Then, the device's real location will be used.
|
||||
// * - At any point in time you can finish guidance or select a new destination.
|
||||
// * - You can use buttons to mute/unmute voice instructions, recenter the camera, or show the route overview.
|
||||
// */
|
||||
//@OptIn(ExperimentalPreviewMapboxNavigationAPI::class)
|
||||
//class ExampleActivity {
|
||||
//
|
||||
// private companion object {
|
||||
// private const val BUTTON_ANIMATION_DURATION = 1500L
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Debug observer that makes sure the replayer has always an up-to-date information to generate mock updates.
|
||||
// */
|
||||
// private lateinit var replayProgressObserver: ReplayProgressObserver
|
||||
//
|
||||
// /**
|
||||
// * Debug object that converts a route into events that can be replayed to navigate a route.
|
||||
// */
|
||||
// private val replayRouteMapper = ReplayRouteMapper()
|
||||
//
|
||||
// /**
|
||||
// * Bindings to the example layout.
|
||||
// */
|
||||
// private lateinit var binding: ActivityMainBinding
|
||||
//
|
||||
// /**
|
||||
// * Used to execute camera transitions based on the data generated by the [viewportDataSource].
|
||||
// * This includes transitions from route overview to route following and continuously updating the camera as the location changes.
|
||||
// */
|
||||
// private lateinit var navigationCamera: NavigationCamera
|
||||
//
|
||||
// /**
|
||||
// * Produces the camera frames based on the location and routing data for the [navigationCamera] to execute.
|
||||
// */
|
||||
// private lateinit var viewportDataSource: MapboxNavigationViewportDataSource
|
||||
//
|
||||
// /*
|
||||
// * Below are generated camera padding values to ensure that the route fits well on screen while
|
||||
// * other elements are overlaid on top of the map (including instruction view, buttons, etc.)
|
||||
// */
|
||||
// private val pixelDensity = Resources.getSystem().displayMetrics.density
|
||||
// private val overviewPadding: EdgeInsets by lazy {
|
||||
// EdgeInsets(
|
||||
// 140.0 * pixelDensity,
|
||||
// 40.0 * pixelDensity,
|
||||
// 120.0 * pixelDensity,
|
||||
// 40.0 * pixelDensity
|
||||
// )
|
||||
// }
|
||||
// private val landscapeOverviewPadding: EdgeInsets by lazy {
|
||||
// EdgeInsets(
|
||||
// 30.0 * pixelDensity,
|
||||
// 380.0 * pixelDensity,
|
||||
// 110.0 * pixelDensity,
|
||||
// 20.0 * pixelDensity
|
||||
// )
|
||||
// }
|
||||
// private val followingPadding: EdgeInsets by lazy {
|
||||
// EdgeInsets(
|
||||
// 180.0 * pixelDensity,
|
||||
// 40.0 * pixelDensity,
|
||||
// 150.0 * pixelDensity,
|
||||
// 40.0 * pixelDensity
|
||||
// )
|
||||
// }
|
||||
// private val landscapeFollowingPadding: EdgeInsets by lazy {
|
||||
// EdgeInsets(
|
||||
// 30.0 * pixelDensity,
|
||||
// 380.0 * pixelDensity,
|
||||
// 110.0 * pixelDensity,
|
||||
// 40.0 * pixelDensity
|
||||
// )
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Generates updates for the [MapboxManeuverView] to display the upcoming maneuver instructions
|
||||
// * and remaining distance to the maneuver point.
|
||||
// */
|
||||
// private lateinit var maneuverApi: MapboxManeuverApi
|
||||
//
|
||||
// /**
|
||||
// * Generates updates for the [MapboxTripProgressView] that include remaining time and distance to the destination.
|
||||
// */
|
||||
// private lateinit var tripProgressApi: MapboxTripProgressApi
|
||||
//
|
||||
// /**
|
||||
// * Generates updates for the [routeLineView] with the geometries and properties of the routes that should be drawn on the map.
|
||||
// */
|
||||
// private lateinit var routeLineApi: MapboxRouteLineApi
|
||||
//
|
||||
// /**
|
||||
// * Draws route lines on the map based on the data from the [routeLineApi]
|
||||
// */
|
||||
// private lateinit var routeLineView: MapboxRouteLineView
|
||||
//
|
||||
// /**
|
||||
// * Generates updates for the [routeArrowView] with the geometries and properties of maneuver arrows that should be drawn on the map.
|
||||
// */
|
||||
// private val routeArrowApi: MapboxRouteArrowApi = MapboxRouteArrowApi()
|
||||
//
|
||||
// /**
|
||||
// * Draws maneuver arrows on the map based on the data [routeArrowApi].
|
||||
// */
|
||||
// private lateinit var routeArrowView: MapboxRouteArrowView
|
||||
//
|
||||
// /**
|
||||
// * Stores and updates the state of whether the voice instructions should be played as they come or muted.
|
||||
// */
|
||||
// private var isVoiceInstructionsMuted = false
|
||||
// set(value) {
|
||||
// field = value
|
||||
// if (value) {
|
||||
// binding.soundButton.muteAndExtend(BUTTON_ANIMATION_DURATION)
|
||||
// voiceInstructionsPlayer.volume(SpeechVolume(0f))
|
||||
// } else {
|
||||
// binding.soundButton.unmuteAndExtend(BUTTON_ANIMATION_DURATION)
|
||||
// voiceInstructionsPlayer.volume(SpeechVolume(1f))
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Extracts message that should be communicated to the driver about the upcoming maneuver.
|
||||
// * When possible, downloads a synthesized audio file that can be played back to the driver.
|
||||
// */
|
||||
// private lateinit var speechApi: MapboxSpeechApi
|
||||
//
|
||||
// /**
|
||||
// * Plays the synthesized audio files with upcoming maneuver instructions
|
||||
// * or uses an on-device Text-To-Speech engine to communicate the message to the driver.
|
||||
// * NOTE: do not use lazy initialization for this class since it takes some time to initialize
|
||||
// * the system services required for on-device speech synthesis. With lazy initialization
|
||||
// * there is a high risk that said services will not be available when the first instruction
|
||||
// * has to be played. [MapboxVoiceInstructionsPlayer] should be instantiated in
|
||||
// * `Activity#onCreate`.
|
||||
// */
|
||||
// private lateinit var voiceInstructionsPlayer: MapboxVoiceInstructionsPlayer
|
||||
//
|
||||
// /**
|
||||
// * Observes when a new voice instruction should be played.
|
||||
// */
|
||||
// private val voiceInstructionsObserver = VoiceInstructionsObserver { voiceInstructions ->
|
||||
// speechApi.generate(voiceInstructions, speechCallback)
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Based on whether the synthesized audio file is available, the callback plays the file
|
||||
// * or uses the fall back which is played back using the on-device Text-To-Speech engine.
|
||||
// */
|
||||
// private val speechCallback =
|
||||
// MapboxNavigationConsumer<Expected<SpeechError, SpeechValue>> { expected ->
|
||||
// expected.fold(
|
||||
// { error ->
|
||||
// // play the instruction via fallback text-to-speech engine
|
||||
// voiceInstructionsPlayer.play(
|
||||
// error.fallback,
|
||||
// voiceInstructionsPlayerCallback
|
||||
// )
|
||||
// },
|
||||
// { value ->
|
||||
// // play the sound file from the external generator
|
||||
// voiceInstructionsPlayer.play(
|
||||
// value.announcement,
|
||||
// voiceInstructionsPlayerCallback
|
||||
// )
|
||||
// }
|
||||
// )
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * When a synthesized audio file was downloaded, this callback cleans up the disk after it was played.
|
||||
// */
|
||||
// private val voiceInstructionsPlayerCallback =
|
||||
// MapboxNavigationConsumer<SpeechAnnouncement> { value ->
|
||||
// // remove already consumed file to free-up space
|
||||
// speechApi.clean(value)
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * [NavigationLocationProvider] is a utility class that helps to provide location updates generated by the Navigation SDK
|
||||
// * to the Maps SDK in order to update the user location indicator on the map.
|
||||
// */
|
||||
// private val navigationLocationProvider = NavigationLocationProvider()
|
||||
//
|
||||
// /**
|
||||
// * Gets notified with location updates.
|
||||
// *
|
||||
// * Exposes raw updates coming directly from the location services
|
||||
// * and the updates enhanced by the Navigation SDK (cleaned up and matched to the road).
|
||||
// */
|
||||
// private val locationObserver = object : LocationObserver {
|
||||
// var firstLocationUpdateReceived = false
|
||||
//
|
||||
// override fun onNewRawLocation(rawLocation: Location) {
|
||||
// // not handled
|
||||
// }
|
||||
//
|
||||
// override fun onNewLocationMatcherResult(locationMatcherResult: LocationMatcherResult) {
|
||||
// val enhancedLocation = locationMatcherResult.enhancedLocation
|
||||
// // update location puck's position on the map
|
||||
// navigationLocationProvider.changePosition(
|
||||
// location = enhancedLocation,
|
||||
// keyPoints = locationMatcherResult.keyPoints,
|
||||
// )
|
||||
//
|
||||
// // update camera position to account for new location
|
||||
// viewportDataSource.onLocationChanged(enhancedLocation)
|
||||
// viewportDataSource.evaluate()
|
||||
//
|
||||
// // if this is the first location update the activity has received,
|
||||
// // it's best to immediately move the camera to the current user location
|
||||
// if (!firstLocationUpdateReceived) {
|
||||
// firstLocationUpdateReceived = true
|
||||
// navigationCamera.requestNavigationCameraToOverview(
|
||||
// stateTransitionOptions = NavigationCameraTransitionOptions.Builder()
|
||||
// .maxDuration(0) // instant transition
|
||||
// .build()
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Gets notified with progress along the currently active route.
|
||||
// */
|
||||
// private val routeProgressObserver = RouteProgressObserver { routeProgress ->
|
||||
// // update the camera position to account for the progressed fragment of the route
|
||||
// viewportDataSource.onRouteProgressChanged(routeProgress)
|
||||
// viewportDataSource.evaluate()
|
||||
//
|
||||
// // draw the upcoming maneuver arrow on the map
|
||||
// val style = binding.mapView.mapboxMap.style
|
||||
// if (style != null) {
|
||||
// val maneuverArrowResult = routeArrowApi.addUpcomingManeuverArrow(routeProgress)
|
||||
// routeArrowView.renderManeuverUpdate(style, maneuverArrowResult)
|
||||
// }
|
||||
//
|
||||
// // update top banner with maneuver instructions
|
||||
// val maneuvers = maneuverApi.getManeuvers(routeProgress)
|
||||
// maneuvers.fold(
|
||||
// { error ->
|
||||
// Toast.makeText(
|
||||
// this@ExampleActivity,
|
||||
// error.errorMessage,
|
||||
// Toast.LENGTH_SHORT
|
||||
// ).show()
|
||||
// },
|
||||
// {
|
||||
// binding.maneuverView.visibility = View.VISIBLE
|
||||
// binding.maneuverView.renderManeuvers(maneuvers)
|
||||
// }
|
||||
// )
|
||||
//
|
||||
// // update bottom trip progress summary
|
||||
// binding.tripProgressView.render(
|
||||
// tripProgressApi.getTripProgress(routeProgress)
|
||||
// )
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Gets notified whenever the tracked routes change.
|
||||
// *
|
||||
// * A change can mean:
|
||||
// * - routes get changed with [MapboxNavigation.setNavigationRoutes]
|
||||
// * - routes annotations get refreshed (for example, congestion annotation that indicate the live traffic along the route)
|
||||
// * - driver got off route and a reroute was executed
|
||||
// */
|
||||
// private val routesObserver = RoutesObserver { routeUpdateResult ->
|
||||
// if (routeUpdateResult.navigationRoutes.isNotEmpty()) {
|
||||
// // generate route geometries asynchronously and render them
|
||||
// routeLineApi.setNavigationRoutes(
|
||||
// routeUpdateResult.navigationRoutes
|
||||
// ) { value ->
|
||||
// binding.mapView.mapboxMap.style?.apply {
|
||||
// routeLineView.renderRouteDrawData(this, value)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // update the camera position to account for the new route
|
||||
// viewportDataSource.onRouteChanged(routeUpdateResult.navigationRoutes.first())
|
||||
// viewportDataSource.evaluate()
|
||||
// } else {
|
||||
// // remove the route line and route arrow from the map
|
||||
// val style = binding.mapView.mapboxMap.style
|
||||
// if (style != null) {
|
||||
// routeLineApi.clearRouteLine { value ->
|
||||
// routeLineView.renderClearRouteLineValue(
|
||||
// style,
|
||||
// value
|
||||
// )
|
||||
// }
|
||||
// routeArrowView.render(style, routeArrowApi.clearArrows())
|
||||
// }
|
||||
//
|
||||
// // remove the route reference from camera position evaluations
|
||||
// viewportDataSource.clearRouteData()
|
||||
// viewportDataSource.evaluate()
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private val mapboxNavigation: MapboxNavigation by requireMapboxNavigation(
|
||||
// onResumedObserver = object : MapboxNavigationObserver {
|
||||
// @SuppressLint("MissingPermission")
|
||||
// override fun onAttached(mapboxNavigation: MapboxNavigation) {
|
||||
// mapboxNavigation.registerRoutesObserver(routesObserver)
|
||||
// mapboxNavigation.registerLocationObserver(locationObserver)
|
||||
// mapboxNavigation.registerRouteProgressObserver(routeProgressObserver)
|
||||
// mapboxNavigation.registerVoiceInstructionsObserver(voiceInstructionsObserver)
|
||||
//
|
||||
// replayProgressObserver = ReplayProgressObserver(mapboxNavigation.mapboxReplayer)
|
||||
// mapboxNavigation.registerRouteProgressObserver(replayProgressObserver)
|
||||
//
|
||||
// // Start the trip session to being receiving location updates in free drive
|
||||
// // and later when a route is set also receiving route progress updates.
|
||||
// // In case of `startReplayTripSession`,
|
||||
// // location events are emitted by the `MapboxReplayer`
|
||||
// mapboxNavigation.startReplayTripSession()
|
||||
// }
|
||||
//
|
||||
// override fun onDetached(mapboxNavigation: MapboxNavigation) {
|
||||
// mapboxNavigation.unregisterRoutesObserver(routesObserver)
|
||||
// mapboxNavigation.unregisterLocationObserver(locationObserver)
|
||||
// mapboxNavigation.unregisterRouteProgressObserver(routeProgressObserver)
|
||||
// mapboxNavigation.unregisterRouteProgressObserver(replayProgressObserver)
|
||||
// mapboxNavigation.unregisterVoiceInstructionsObserver(voiceInstructionsObserver)
|
||||
// mapboxNavigation.mapboxReplayer.finish()
|
||||
// }
|
||||
// },
|
||||
// onInitialize = this::initNavigation
|
||||
// )
|
||||
//
|
||||
// @SuppressLint("MissingPermission")
|
||||
// override fun onCreate(savedInstanceState: Bundle?) {
|
||||
// super.onCreate(savedInstanceState)
|
||||
// binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
// setContentView(binding.root)
|
||||
//
|
||||
// // initialize Navigation Camera
|
||||
// viewportDataSource = MapboxNavigationViewportDataSource(binding.mapView.mapboxMap)
|
||||
// navigationCamera = NavigationCamera(
|
||||
// binding.mapView.mapboxMap,
|
||||
// binding.mapView.camera,
|
||||
// viewportDataSource
|
||||
// )
|
||||
// // set the animations lifecycle listener to ensure the NavigationCamera stops
|
||||
// // automatically following the user location when the map is interacted with
|
||||
// binding.mapView.camera.addCameraAnimationsLifecycleListener(
|
||||
// NavigationBasicGesturesHandler(navigationCamera)
|
||||
// )
|
||||
// navigationCamera.registerNavigationCameraStateChangeObserver { navigationCameraState ->
|
||||
// // shows/hide the recenter button depending on the camera state
|
||||
// when (navigationCameraState) {
|
||||
// NavigationCameraState.TRANSITION_TO_FOLLOWING,
|
||||
// NavigationCameraState.FOLLOWING -> binding.recenter.visibility = View.INVISIBLE
|
||||
// NavigationCameraState.TRANSITION_TO_OVERVIEW,
|
||||
// NavigationCameraState.OVERVIEW,
|
||||
// NavigationCameraState.IDLE -> binding.recenter.visibility = View.VISIBLE
|
||||
// }
|
||||
// }
|
||||
// // set the padding values depending on screen orientation and visible view layout
|
||||
// if (this.resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||
// viewportDataSource.overviewPadding = landscapeOverviewPadding
|
||||
// } else {
|
||||
// viewportDataSource.overviewPadding = overviewPadding
|
||||
// }
|
||||
// if (this.resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||
// viewportDataSource.followingPadding = landscapeFollowingPadding
|
||||
// } else {
|
||||
// viewportDataSource.followingPadding = followingPadding
|
||||
// }
|
||||
//
|
||||
// // make sure to use the same DistanceFormatterOptions across different features
|
||||
// val distanceFormatterOptions = DistanceFormatterOptions.Builder(this).build()
|
||||
//
|
||||
// // initialize maneuver api that feeds the data to the top banner maneuver view
|
||||
// maneuverApi = MapboxManeuverApi(
|
||||
// MapboxDistanceFormatter(distanceFormatterOptions)
|
||||
// )
|
||||
//
|
||||
// // initialize bottom progress view
|
||||
// tripProgressApi = MapboxTripProgressApi(
|
||||
// TripProgressUpdateFormatter.Builder(this)
|
||||
// .distanceRemainingFormatter(
|
||||
// DistanceRemainingFormatter(distanceFormatterOptions)
|
||||
// )
|
||||
// .timeRemainingFormatter(
|
||||
// TimeRemainingFormatter(this)
|
||||
// )
|
||||
// .percentRouteTraveledFormatter(
|
||||
// PercentDistanceTraveledFormatter()
|
||||
// )
|
||||
// .estimatedTimeToArrivalFormatter(
|
||||
// EstimatedTimeToArrivalFormatter(this, TimeFormat.NONE_SPECIFIED)
|
||||
// )
|
||||
// .build()
|
||||
// )
|
||||
//
|
||||
// // initialize voice instructions api and the voice instruction player
|
||||
// speechApi = MapboxSpeechApi(
|
||||
// this,
|
||||
// Locale("pl").language
|
||||
// )
|
||||
// voiceInstructionsPlayer = MapboxVoiceInstructionsPlayer(
|
||||
// this,
|
||||
// Locale("pl").language
|
||||
// )
|
||||
//
|
||||
// // initialize route line, the routeLineBelowLayerId is specified to place
|
||||
// // the route line below road labels layer on the map
|
||||
// // the value of this option will depend on the style that you are using
|
||||
// // and under which layer the route line should be placed on the map layers stack
|
||||
// val mapboxRouteLineViewOptions = MapboxRouteLineViewOptions.Builder(this)
|
||||
// .routeLineBelowLayerId("road-label-navigation")
|
||||
// .build()
|
||||
//
|
||||
// routeLineApi = MapboxRouteLineApi(MapboxRouteLineApiOptions.Builder().build())
|
||||
// routeLineView = MapboxRouteLineView(mapboxRouteLineViewOptions)
|
||||
//
|
||||
// // initialize maneuver arrow view to draw arrows on the map
|
||||
// val routeArrowOptions = RouteArrowOptions.Builder(this).build()
|
||||
// routeArrowView = MapboxRouteArrowView(routeArrowOptions)
|
||||
//
|
||||
// // load map style
|
||||
// binding.mapView.mapboxMap.loadStyle(NavigationStyles.NAVIGATION_DAY_STYLE) {
|
||||
// // Ensure that the route line related layers are present before the route arrow
|
||||
// routeLineView.initializeLayers(it)
|
||||
//
|
||||
// // add long click listener that search for a route to the clicked destination
|
||||
// binding.mapView.gestures.addOnMapLongClickListener { point ->
|
||||
// findRoute(point)
|
||||
// true
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // initialize view interactions
|
||||
// binding.stop.setOnClickListener {
|
||||
// clearRouteAndStopNavigation()
|
||||
// }
|
||||
// binding.recenter.setOnClickListener {
|
||||
// navigationCamera.requestNavigationCameraToFollowing()
|
||||
// binding.routeOverview.showTextAndExtend(BUTTON_ANIMATION_DURATION)
|
||||
// }
|
||||
// binding.routeOverview.setOnClickListener {
|
||||
// navigationCamera.requestNavigationCameraToOverview()
|
||||
// binding.recenter.showTextAndExtend(BUTTON_ANIMATION_DURATION)
|
||||
// }
|
||||
// binding.soundButton.setOnClickListener {
|
||||
// // mute/unmute voice instructions
|
||||
// isVoiceInstructionsMuted = !isVoiceInstructionsMuted
|
||||
// }
|
||||
//
|
||||
// // set initial sounds button state
|
||||
// binding.soundButton.unmute()
|
||||
// }
|
||||
//
|
||||
// override fun onDestroy() {
|
||||
// super.onDestroy()
|
||||
// maneuverApi.cancel()
|
||||
// routeLineApi.cancel()
|
||||
// routeLineView.cancel()
|
||||
// speechApi.cancel()
|
||||
// voiceInstructionsPlayer.shutdown()
|
||||
// }
|
||||
//
|
||||
// private fun initNavigation() {
|
||||
// MapboxNavigationApp.setup(
|
||||
// NavigationOptions.Builder(this)
|
||||
// .build()
|
||||
// )
|
||||
//
|
||||
// // initialize location puck
|
||||
// binding.mapView.location.apply {
|
||||
// setLocationProvider(navigationLocationProvider)
|
||||
// this.locationPuck = LocationPuck2D(
|
||||
// bearingImage = ImageHolder.Companion.from(
|
||||
// com.mapbox.navigation.ui.maps.R.drawable.mapbox_navigation_puck_icon
|
||||
// )
|
||||
// )
|
||||
// puckBearingEnabled = true
|
||||
// enabled = true
|
||||
// }
|
||||
//
|
||||
// replayOriginLocation()
|
||||
// }
|
||||
//
|
||||
// private fun replayOriginLocation() {
|
||||
// with(mapboxNavigation.mapboxReplayer) {
|
||||
// play()
|
||||
// pushEvents(
|
||||
// listOf(
|
||||
// ReplayRouteMapper.mapToUpdateLocation(
|
||||
// Date().time.toDouble(),
|
||||
// Point.fromLngLat(-122.39726512303575, 37.785128345296805)
|
||||
// )
|
||||
// )
|
||||
// )
|
||||
// playFirstLocation()
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private fun findRoute(destination: Point) {
|
||||
// val originLocation = navigationLocationProvider.lastLocation ?: return
|
||||
// val originPoint = Point.fromLngLat(originLocation.longitude, originLocation.latitude)
|
||||
//
|
||||
// // execute a route request
|
||||
// // it's recommended to use the
|
||||
// // applyDefaultNavigationOptions and applyLanguageAndVoiceUnitOptions
|
||||
// // that make sure the route request is optimized
|
||||
// // to allow for support of all of the Navigation SDK features
|
||||
// mapboxNavigation.requestRoutes(
|
||||
// RouteOptions.builder()
|
||||
// .applyDefaultNavigationOptions()
|
||||
// .applyLanguageAndVoiceUnitOptions(this)
|
||||
// .coordinatesList(listOf(originPoint, destination))
|
||||
// .apply {
|
||||
// // provide the bearing for the origin of the request to ensure
|
||||
// // that the returned route faces in the direction of the current user movement
|
||||
// originLocation.bearing?.let { bearing ->
|
||||
// bearingsList(
|
||||
// listOf(
|
||||
// Bearing.builder()
|
||||
// .angle(bearing)
|
||||
// .degrees(45.0)
|
||||
// .build(),
|
||||
// null
|
||||
// )
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
// .layersList(listOf(mapboxNavigation.getZLevel(), null))
|
||||
// .build(),
|
||||
// object : NavigationRouterCallback {
|
||||
// override fun onCanceled(routeOptions: RouteOptions, routerOrigin: String) {
|
||||
// // no impl
|
||||
// }
|
||||
//
|
||||
// override fun onFailure(reasons: List<RouterFailure>, routeOptions: RouteOptions) {
|
||||
// // no impl
|
||||
// }
|
||||
//
|
||||
// override fun onRoutesReady(
|
||||
// routes: List<NavigationRoute>,
|
||||
// routerOrigin: String
|
||||
// ) {
|
||||
// setRouteAndStartNavigation(routes)
|
||||
// }
|
||||
// }
|
||||
// )
|
||||
// }
|
||||
//
|
||||
// private fun setRouteAndStartNavigation(routes: List<NavigationRoute>) {
|
||||
// // set routes, where the first route in the list is the primary route that
|
||||
// // will be used for active guidance
|
||||
// mapboxNavigation.setNavigationRoutes(routes)
|
||||
//
|
||||
// // show UI elements
|
||||
// binding.soundButton.visibility = View.VISIBLE
|
||||
// binding.routeOverview.visibility = View.VISIBLE
|
||||
// binding.tripProgressCard.visibility = View.VISIBLE
|
||||
//
|
||||
// // move the camera to overview when new route is available
|
||||
// navigationCamera.requestNavigationCameraToOverview()
|
||||
//
|
||||
// // start simulation
|
||||
// startSimulation(routes.first().directionsRoute)
|
||||
// }
|
||||
//
|
||||
// private fun clearRouteAndStopNavigation() {
|
||||
// // clear
|
||||
// mapboxNavigation.setNavigationRoutes(listOf())
|
||||
//
|
||||
// // stop simulation
|
||||
// stopSimulation()
|
||||
//
|
||||
// // hide UI elements
|
||||
// binding.soundButton.visibility = View.INVISIBLE
|
||||
// binding.maneuverView.visibility = View.INVISIBLE
|
||||
// binding.routeOverview.visibility = View.INVISIBLE
|
||||
// binding.tripProgressCard.visibility = View.INVISIBLE
|
||||
// }
|
||||
//
|
||||
// private fun startSimulation(route: DirectionsRoute) {
|
||||
// mapboxNavigation.mapboxReplayer.stop()
|
||||
// mapboxNavigation.mapboxReplayer.clearEvents()
|
||||
// val replayData = replayRouteMapper.mapDirectionsRouteGeometry(route)
|
||||
// mapboxNavigation.mapboxReplayer.pushEvents(replayData)
|
||||
// mapboxNavigation.mapboxReplayer.seekTo(replayData[0])
|
||||
// mapboxNavigation.mapboxReplayer.play()
|
||||
// }
|
||||
//
|
||||
// private fun stopSimulation() {
|
||||
// mapboxNavigation.mapboxReplayer.stop()
|
||||
// mapboxNavigation.mapboxReplayer.clearEvents()
|
||||
// }
|
||||
//}
|
Loading…
Add table
Add a link
Reference in a new issue