diff options
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/map')
-rw-r--r-- | androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt index f3d7cac..f0ec769 100644 --- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt @@ -13,6 +13,7 @@ import kotlinx.coroutines.DelicateCoroutinesApi import mx.trackermap.TrackerMap.android.R import mx.trackermap.TrackerMap.android.databinding.MapFragmentBinding import mx.trackermap.TrackerMap.android.units.UnitsViewModel +import mx.trackermap.TrackerMap.client.models.UnitInformation import org.koin.androidx.viewmodel.ext.android.viewModel import java.io.File @@ -23,6 +24,8 @@ class MapFragment: GlobeMapFragment() { private val unitsViewModel: UnitsViewModel by viewModel() + private val markers = mutableListOf<ScreenMarker>() + override fun chooseDisplayType(): MapDisplayType { return MapDisplayType.Map } @@ -116,11 +119,23 @@ class MapFragment: GlobeMapFragment() { marker.image = icon marker.size = markerSize marker.userObject = unit + markers.add(marker) mapControl.addScreenMarker(marker, markerInfo, ThreadMode.ThreadAny) } } } } + unitsViewModel.selectedUnit.observe(this) { + it?.let { unit -> + Log.d("MapFragment", "Centering map on ${it.position?.latitude}, ${it.position?.longitude}") + unit.position?.let { position -> + val latitude = position.latitude!! * Math.PI / 180 + val longitude = position.longitude!! * Math.PI / 180 + val zoom = 0.000008 + mapControl.animatePositionGeo(longitude, latitude, zoom, 1.0) + } + } + } } }
\ No newline at end of file |