From 678e42db726950b75ae5def84a0ee777e93848a7 Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Wed, 15 Dec 2021 22:13:35 -0600 Subject: WhirlyGlobe Maply test. Map shows completely black, same as with MapLibre GL we tested earlier --- .../TrackerMap/android/map/MapFragment.kt | 39 +++++++++++++++++++--- .../TrackerMap/android/units/UnitsActivity.kt | 2 ++ 2 files changed, 37 insertions(+), 4 deletions(-) (limited to 'androidApp/src') 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..f0c2404 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 @@ -5,25 +5,56 @@ 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.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://tile.openstreetmap.org/{z}/{x}/{y}.png", 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 = 2.0 + mapControl.animatePositionGeo(longitude, latitude, zoom, 1.0) } override fun onDestroyView() { diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt index 2be6da3..60218db 100644 --- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsActivity.kt @@ -5,12 +5,14 @@ import android.util.Log import androidx.appcompat.app.AppCompatActivity import androidx.core.widget.doAfterTextChanged import androidx.fragment.app.commit +import kotlinx.coroutines.DelicateCoroutinesApi import mx.trackermap.TrackerMap.android.R import mx.trackermap.TrackerMap.android.databinding.UnitsActivityBinding import mx.trackermap.TrackerMap.android.devices.DevicesFragment import mx.trackermap.TrackerMap.android.map.MapFragment import org.koin.androidx.viewmodel.ext.android.viewModel +@DelicateCoroutinesApi class UnitsActivity : AppCompatActivity() { private var _binding: UnitsActivityBinding? = null -- cgit v1.2.3 From 0b4f8514dc3f8d510795274ae91951a1616eab1b Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Wed, 15 Dec 2021 23:23:52 -0600 Subject: Maps now showing, including a test marker in Moscow --- .../TrackerMap/android/map/MapFragment.kt | 21 +++++++++++++++++++-- androidApp/src/main/res/drawable/map_default.png | Bin 0 -> 819 bytes 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 androidApp/src/main/res/drawable/map_default.png (limited to 'androidApp/src') 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 f0c2404..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,5 +1,6 @@ package mx.trackermap.TrackerMap.android.map +import android.graphics.BitmapFactory import android.os.Bundle import android.util.Log import android.view.LayoutInflater @@ -7,6 +8,7 @@ import android.view.View import android.view.ViewGroup 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 @@ -37,7 +39,7 @@ class MapFragment: GlobeMapFragment() { val cacheDir = File(activity!!.cacheDir, cacheDirName) cacheDir.mkdir() - val tileInfo = RemoteTileInfoNew("https://tile.openstreetmap.org/{z}/{x}/{y}.png", 0, 21) + 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() @@ -53,8 +55,23 @@ class MapFragment: GlobeMapFragment() { val latitude = 23.191 * Math.PI / 180 val longitude = -100.36 * Math.PI / 180 - val zoom = 2.0 + 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 Binary files /dev/null and b/androidApp/src/main/res/drawable/map_default.png differ -- cgit v1.2.3