mirror of
https://github.com/rt-bishop/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Now setting a correct min zoom level in MapFragment.kt #42
This commit is contained in:
1 parent
124def913a
commit
9199765c61
1 file changed
+14
-3
@@ -43,7 +43,9 @@ import org.osmdroid.tileprovider.tilesource.TileSourcePolicy
|
|||||||
import org.osmdroid.tileprovider.tilesource.XYTileSource
|
import org.osmdroid.tileprovider.tilesource.XYTileSource
|
||||||
import org.osmdroid.util.GeoPoint
|
import org.osmdroid.util.GeoPoint
|
||||||
import org.osmdroid.views.CustomZoomButtonsController
|
import org.osmdroid.views.CustomZoomButtonsController
|
||||||
|
import org.osmdroid.views.MapView
|
||||||
import org.osmdroid.views.overlay.*
|
import org.osmdroid.views.overlay.*
|
||||||
|
import timber.log.Timber
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@@ -55,6 +57,8 @@ class MapFragment : Fragment(R.layout.fragment_map) {
|
|||||||
private lateinit var binding: FragmentMapBinding
|
private lateinit var binding: FragmentMapBinding
|
||||||
private val mapViewModel: MapViewModel by viewModels()
|
private val mapViewModel: MapViewModel by viewModels()
|
||||||
private val sharedViewModel: SharedViewModel by activityViewModels()
|
private val sharedViewModel: SharedViewModel by activityViewModels()
|
||||||
|
private val minLat = MapView.getTileSystem().minLatitude
|
||||||
|
private val maxLat = MapView.getTileSystem().maxLatitude
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
@@ -63,14 +67,15 @@ class MapFragment : Fragment(R.layout.fragment_map) {
|
|||||||
mapView.apply {
|
mapView.apply {
|
||||||
setMultiTouchControls(true)
|
setMultiTouchControls(true)
|
||||||
setTileSource(getTileSource())
|
setTileSource(getTileSource())
|
||||||
|
val minZoom = getMinZoom(resources.displayMetrics.heightPixels)
|
||||||
minZoomLevel = 2.5
|
minZoomLevel = 2.5
|
||||||
maxZoomLevel = 6.0
|
maxZoomLevel = 6.0
|
||||||
controller.setZoom(3.0)
|
controller.setZoom(minZoom + 0.5)
|
||||||
zoomController.setVisibility(CustomZoomButtonsController.Visibility.NEVER)
|
zoomController.setVisibility(CustomZoomButtonsController.Visibility.NEVER)
|
||||||
overlayManager.tilesOverlay.loadingBackgroundColor = Color.TRANSPARENT
|
overlayManager.tilesOverlay.loadingBackgroundColor = Color.TRANSPARENT
|
||||||
overlayManager.tilesOverlay.loadingLineColor = Color.TRANSPARENT
|
overlayManager.tilesOverlay.loadingLineColor = Color.TRANSPARENT
|
||||||
overlayManager.tilesOverlay.setColorFilter(getColorFilter())
|
overlayManager.tilesOverlay.setColorFilter(getColorFilter())
|
||||||
setScrollableAreaLimitLatitude(85.0, -85.0, 0)
|
setScrollableAreaLimitLatitude(maxLat, minLat, 0)
|
||||||
// add overlays: 0 - GSP, 1 - SatTrack, 2 - SatFootprint, 3 - SatIcons
|
// add overlays: 0 - GSP, 1 - SatTrack, 2 - SatFootprint, 3 - SatIcons
|
||||||
overlays.addAll(Array(4) { FolderOverlay() })
|
overlays.addAll(Array(4) { FolderOverlay() })
|
||||||
}
|
}
|
||||||
@@ -183,6 +188,12 @@ class MapFragment : Fragment(R.layout.fragment_map) {
|
|||||||
tintedMatrix.preConcat(negativeMatrix)
|
tintedMatrix.preConcat(negativeMatrix)
|
||||||
return ColorMatrixColorFilter(tintedMatrix)
|
return ColorMatrixColorFilter(tintedMatrix)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getMinZoom(screenHeight: Int): Double {
|
||||||
|
val minZoom = MapView.getTileSystem().getLatitudeZoom(maxLat, minLat, screenHeight)
|
||||||
|
Timber.d("Min zoom level for this screen: $minZoom")
|
||||||
|
return minZoom
|
||||||
|
}
|
||||||
|
|
||||||
private fun getTileSource(): ITileSource {
|
private fun getTileSource(): ITileSource {
|
||||||
val copyright = resources.getString(R.string.map_copyright)
|
val copyright = resources.getString(R.string.map_copyright)
|
||||||
@@ -191,6 +202,6 @@ class MapFragment : Fragment(R.layout.fragment_map) {
|
|||||||
1, TileSourcePolicy.FLAG_NO_BULK and TileSourcePolicy.FLAG_NO_PREVENTIVE and
|
1, TileSourcePolicy.FLAG_NO_BULK and TileSourcePolicy.FLAG_NO_PREVENTIVE and
|
||||||
TileSourcePolicy.FLAG_USER_AGENT_MEANINGFUL and TileSourcePolicy.FLAG_USER_AGENT_NORMALIZED
|
TileSourcePolicy.FLAG_USER_AGENT_MEANINGFUL and TileSourcePolicy.FLAG_USER_AGENT_NORMALIZED
|
||||||
)
|
)
|
||||||
return XYTileSource("wikimedia", 2, 6, 256, ".png", sources, copyright, policy)
|
return XYTileSource("wikimedia", 0, 6, 256, ".png", sources, copyright, policy)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user