aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'androidApp/src/main')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapFragment.kt56
-rw-r--r--androidApp/src/main/res/drawable/map_default.pngbin0 -> 819 bytes
2 files changed, 52 insertions, 4 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 2ffaa2c..125d525 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
@@ -1,29 +1,77 @@
package mx.trackermap.TrackerMap.android.map
+import android.graphics.BitmapFactory
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import androidx.fragment.app.Fragment
+import com.mousebird.maply.*
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 org.koin.androidx.viewmodel.ext.android.viewModel
+import java.io.File
-class MapFragment: Fragment() {
+@DelicateCoroutinesApi
+class MapFragment: GlobeMapFragment() {
private var _binding: MapFragmentBinding? = null
private val binding get() = _binding!!
private val unitsViewModel: UnitsViewModel by viewModel()
+ override fun chooseDisplayType(): MapDisplayType {
+ return MapDisplayType.Map
+ }
+
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
- _binding = MapFragmentBinding.inflate(inflater, container, false)
- return binding.root
+ super.onCreateView(inflater, container, savedInstanceState)
+ return baseControl.contentView!!
+ }
+
+ override fun controlHasStarted() {
+ val cacheDirName = "stamen_watercolor6"
+ val cacheDir = File(activity!!.cacheDir, cacheDirName)
+ cacheDir.mkdir()
+
+ val tileInfo = RemoteTileInfoNew("https://mt0.google.com/vt/lyrs=m&hl=en&x={x}&y={y}&z={z}&s=Ga", 0, 21)
+ tileInfo.cacheDir = cacheDir
+
+ val params = SamplingParams()
+ params.coordSystem = SphericalMercatorCoordSystem()
+ params.coverPoles = true
+ params.edgeMatching = true
+ params.minZoom = tileInfo.minZoom
+ params.maxZoom = tileInfo.maxZoom
+ params.singleLevel = true
+
+ val loader = QuadImageLoader(params, tileInfo, baseControl)
+ loader.setImageFormat(RenderController.ImageFormat.MaplyImageUShort565)
+
+ val latitude = 23.191 * Math.PI / 180
+ val longitude = -100.36 * Math.PI / 180
+ val zoom = 0.4
+ mapControl.animatePositionGeo(longitude, latitude, zoom, 1.0)
+
+ insertMarkers()
+ }
+
+ private fun insertMarkers() {
+ val markerInfo = MarkerInfo()
+ val icon = BitmapFactory.decodeResource(activity!!.resources, R.drawable.map_default)
+ val markerSize = Point2d(80.0, 80.0)
+
+ val moscow = ScreenMarker()
+ moscow.loc = Point2d.FromDegrees(37.616667, 55.75)
+ moscow.image = icon
+ moscow.size = markerSize
+
+ mapControl.addScreenMarker(moscow, markerInfo, ThreadMode.ThreadAny)
}
override fun onDestroyView() {
diff --git a/androidApp/src/main/res/drawable/map_default.png b/androidApp/src/main/res/drawable/map_default.png
new file mode 100644
index 0000000..e7d1f72
--- /dev/null
+++ b/androidApp/src/main/res/drawable/map_default.png
Binary files differ