feat: Map controller basics
This commit is contained in:
parent
c923f8825d
commit
756b760d5c
2 changed files with 37 additions and 0 deletions
|
@ -20,6 +20,7 @@ import androidx.lifecycle.LifecycleOwner
|
|||
import com.mapbox.navigation.base.options.NavigationOptions
|
||||
import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
|
||||
import eu.ztsh.garmin.databinding.ActivityMainBinding
|
||||
import eu.ztsh.garmin.mapbox.MapControl
|
||||
import eu.ztsh.garmin.mapbox.NavigationObserver
|
||||
import eu.ztsh.garmin.util.PermissionsHelper
|
||||
import java.lang.ref.WeakReference
|
||||
|
@ -30,6 +31,7 @@ class MainActivity : AppCompatActivity() {
|
|||
lateinit var garmin: Garmin
|
||||
|
||||
private lateinit var binding: ActivityMainBinding
|
||||
private lateinit var mapControl: MapControl
|
||||
private val navigationObserver = NavigationObserver()
|
||||
val permissionsHelper = PermissionsHelper(WeakReference(this))
|
||||
|
||||
|
@ -51,6 +53,7 @@ class MainActivity : AppCompatActivity() {
|
|||
super.onCreate(savedInstanceState)
|
||||
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
binding.mapView
|
||||
permissionsHelper.checkPermissions {
|
||||
if (!MapboxNavigationApp.isSetup()) {
|
||||
MapboxNavigationApp.setup {
|
||||
|
@ -60,6 +63,8 @@ class MainActivity : AppCompatActivity() {
|
|||
}
|
||||
}
|
||||
MapboxNavigationApp.current()?.startTripSession()
|
||||
mapControl = MapControl(binding.mapView, resources)
|
||||
mapControl.follow()
|
||||
}
|
||||
bluetoothInit()
|
||||
}
|
||||
|
|
32
app/src/main/java/eu/ztsh/garmin/mapbox/MapControl.kt
Normal file
32
app/src/main/java/eu/ztsh/garmin/mapbox/MapControl.kt
Normal file
|
@ -0,0 +1,32 @@
|
|||
package eu.ztsh.garmin.mapbox
|
||||
|
||||
import android.content.res.Resources
|
||||
import android.util.Log
|
||||
import com.mapbox.maps.EdgeInsets
|
||||
import com.mapbox.maps.MapView
|
||||
import com.mapbox.maps.plugin.viewport.data.FollowPuckViewportStateBearing
|
||||
import com.mapbox.maps.plugin.viewport.data.FollowPuckViewportStateOptions
|
||||
import com.mapbox.maps.plugin.viewport.state.FollowPuckViewportState
|
||||
import com.mapbox.maps.plugin.viewport.viewport
|
||||
|
||||
class MapControl(private val mapView: MapView, private val resources: Resources) {
|
||||
|
||||
fun follow() {
|
||||
val viewportPlugin = mapView.viewport
|
||||
// transition to followPuckViewportState with default transition
|
||||
val followPuckViewportState: FollowPuckViewportState = viewportPlugin.makeFollowPuckViewportState(
|
||||
FollowPuckViewportStateOptions.Builder()
|
||||
// .bearing(FollowPuckViewportStateBearing.Constant(0.0))
|
||||
.padding(EdgeInsets(200.0 * resources.displayMetrics.density, 0.0, 0.0, 0.0))
|
||||
.build()
|
||||
)
|
||||
val immediateTransition = viewportPlugin.makeImmediateViewportTransition()
|
||||
viewportPlugin.transitionTo(followPuckViewportState, immediateTransition) { success ->
|
||||
Log.d(TAG, "follow: $success")
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val TAG = "MAPCTRL"
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue