aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt
diff options
context:
space:
mode:
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt40
1 files changed, 23 insertions, 17 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 f577613..6a80f95 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
@@ -17,6 +17,7 @@ import mil.nga.sf.util.SFException
import mil.nga.sf.wkt.GeometryReader
import java.io.File
import mx.trackermap.TrackerMap.android.R
+import mx.trackermap.TrackerMap.android.shared.MarkerTransformations
import mx.trackermap.TrackerMap.client.models.Geofence
import mx.trackermap.TrackerMap.client.models.MapLayer
import mx.trackermap.TrackerMap.utils.MapCalculus
@@ -65,7 +66,7 @@ class MapFragment : GlobeMapFragment() {
val tmpInfo = RemoteTileInfoNew(layer[0], layer[1].toInt(), layer[2].toInt())
tileInfo = tileInfoSetCacheDir(layer[0], tmpInfo)
tileInfo?.let {
- setZoomLimits(it.minZoom, it.maxZoom)
+ setZoomLimits(layer[1].toInt(), layer[2].toInt())
}
}
@@ -81,9 +82,9 @@ class MapFragment : GlobeMapFragment() {
loader = QuadImageLoader(params, tileInfo, baseControl)
loader?.setImageFormat(RenderController.ImageFormat.MaplyImageUShort565)
- val latitude = 23.191
- val longitude = -100.36
- focusOn(latitude, longitude, height = 0.4, animated = false)
+ val latitude = 23.191 * Math.PI / 180
+ val longitude = -100.36 * Math.PI / 180
+ mapControl.setPositionGeo(latitude, longitude, 0.4)
}
override fun mapDidStopMoving(
@@ -92,7 +93,7 @@ class MapFragment : GlobeMapFragment() {
userMotion: Boolean
) {
super.mapDidStopMoving(mapControl, corners, userMotion)
- Log.d("MapFragment", "Height: ${mapControl?.height}")
+ Log.d("MapFragment", "Height: %7.7f".format(mapControl?.height))
}
override fun userDidSelect(
@@ -235,9 +236,9 @@ class MapFragment : GlobeMapFragment() {
}
mbr.expandByFraction(0.1)
- mapControl.addPostSurfaceRunnable {
- val zoom = mapControl.zoomLimitMax.coerceAtLeast(
- mapControl.findHeightToViewBounds(mbr, mbr.middle()))
+ mapControl?.addPostSurfaceRunnable {
+ val zoom = mapControl.findHeightToViewBounds(mbr, mbr.middle())
+ .coerceAtLeast(mapControl.zoomLimitMin)
mapControl.setPositionGeo(mbr.middle(), zoom)
}
}
@@ -320,17 +321,22 @@ class MapFragment : GlobeMapFragment() {
fun focusOn(
latitude: Double,
longitude: Double,
- height: Double? = 0.00001,
+ height: Double = 0.00001,
animated: Boolean = true
) {
- val lat = latitude * Math.PI / 180
- val lon = longitude * Math.PI / 180
- // Ensure height is equal or higher than bottom limit
- val z = mapControl.zoomLimitMin.coerceAtLeast(height ?: 0.0)
- if (animated) {
- mapControl.animatePositionGeo(lon, lat, z, 0.2)
- } else {
- mapControl.setPositionGeo(lon, lat, z)
+ mapControl?.addPostSurfaceRunnable {
+ val lat = latitude * Math.PI / 180
+ val lon = longitude * Math.PI / 180
+ // Ensure height is equal or higher than bottom limit
+ Log.d("MapFragment", "Target: %7.7f".format(height))
+ Log.d("MapFragment", "Min: %7.7f".format(mapControl.zoomLimitMin))
+ val z = height.coerceAtLeast(mapControl.zoomLimitMin)
+ Log.d("MapFragment", "Final: %7.7f".format(z))
+ if (animated) {
+ mapControl.animatePositionGeo(lon, lat, z, 0.2)
+ } else {
+ mapControl.setPositionGeo(lon, lat, z)
+ }
}
}