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.base.options.NavigationOptions
|
||||||
import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
|
import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
|
||||||
import eu.ztsh.garmin.databinding.ActivityMainBinding
|
import eu.ztsh.garmin.databinding.ActivityMainBinding
|
||||||
|
import eu.ztsh.garmin.mapbox.MapControl
|
||||||
import eu.ztsh.garmin.mapbox.NavigationObserver
|
import eu.ztsh.garmin.mapbox.NavigationObserver
|
||||||
import eu.ztsh.garmin.util.PermissionsHelper
|
import eu.ztsh.garmin.util.PermissionsHelper
|
||||||
import java.lang.ref.WeakReference
|
import java.lang.ref.WeakReference
|
||||||
|
@ -30,6 +31,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
lateinit var garmin: Garmin
|
lateinit var garmin: Garmin
|
||||||
|
|
||||||
private lateinit var binding: ActivityMainBinding
|
private lateinit var binding: ActivityMainBinding
|
||||||
|
private lateinit var mapControl: MapControl
|
||||||
private val navigationObserver = NavigationObserver()
|
private val navigationObserver = NavigationObserver()
|
||||||
val permissionsHelper = PermissionsHelper(WeakReference(this))
|
val permissionsHelper = PermissionsHelper(WeakReference(this))
|
||||||
|
|
||||||
|
@ -51,6 +53,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding = ActivityMainBinding.inflate(layoutInflater)
|
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||||
setContentView(binding.root)
|
setContentView(binding.root)
|
||||||
|
binding.mapView
|
||||||
permissionsHelper.checkPermissions {
|
permissionsHelper.checkPermissions {
|
||||||
if (!MapboxNavigationApp.isSetup()) {
|
if (!MapboxNavigationApp.isSetup()) {
|
||||||
MapboxNavigationApp.setup {
|
MapboxNavigationApp.setup {
|
||||||
|
@ -60,6 +63,8 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MapboxNavigationApp.current()?.startTripSession()
|
MapboxNavigationApp.current()?.startTripSession()
|
||||||
|
mapControl = MapControl(binding.mapView, resources)
|
||||||
|
mapControl.follow()
|
||||||
}
|
}
|
||||||
bluetoothInit()
|
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