Adding AddMarkerOverlay, which allows the user to put markers on the map when double tapping

pull/7/head
Arthur VALIN 2 years ago
parent 7e03969c04
commit debb6ca2a6

@ -4,11 +4,13 @@
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_A"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28"
tools:ignore="ScopedStorage" />
<application
android:allowBackup="true"

@ -19,17 +19,23 @@ import android.location.LocationListener
import android.util.Log
import android.widget.ProgressBar
import androidx.activity.result.contract.ActivityResultContracts
import org.osmdroid.config.IConfigurationProvider
import org.osmdroid.library.BuildConfig
import org.osmdroid.tileprovider.tilesource.TileSourceFactory
import org.osmdroid.tileprovider.util.StorageUtils.getStorage
import org.osmdroid.views.overlay.compass.CompassOverlay
import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider
import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider
import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay
import uca.baptistearthur.geocaching.R
import uca.baptistearthur.geocaching.ui.overlay.AddMarkerOverlay
import uca.baptistearthur.geocaching.ui.overlay.RecenterOverlay
class Map : Fragment() {
private lateinit var map : MapView
private lateinit var spinner: ProgressBar;
private lateinit var locationManager: LocationManager;
private lateinit var spinner: ProgressBar
private lateinit var locationManager: LocationManager
val defaultPoint = GeoPoint(48.8583, 2.2944)
var isMapCentered = false;
val locationListener = object : LocationListener {
@ -48,7 +54,7 @@ class Map : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Configuration.getInstance().userAgentValue = "Geocaching"
Configuration.getInstance().userAgentValue = "RoadTrip"
}
@ -58,6 +64,7 @@ class Map : Fragment() {
private fun configureMap(view: View){
Log.d("GeoMap", "MAP CONFIGURE")
map = view.findViewById(R.id.mapView)
map.setTileSource(TileSourceFactory.MAPNIK);
spinner = view.findViewById(R.id.mapLoading);
spinner.visibility=View.VISIBLE;
map.minZoomLevel = 10.0
@ -83,6 +90,9 @@ class Map : Fragment() {
recenter.enableMyLocation()
map.overlays.add(recenter);
val addMarker = AddMarkerOverlay()
map.overlays.add(addMarker);
}
override fun onCreateView(

@ -0,0 +1,18 @@
package uca.baptistearthur.geocaching.ui.overlay
import android.view.MotionEvent
import org.osmdroid.util.GeoPoint
import org.osmdroid.views.MapView
import org.osmdroid.views.overlay.Marker
class PlaceMarker(val mapView: MapView, val locations: MutableSet<GeoPoint>) : Marker(mapView) {
override fun onLongPress(e: MotionEvent?, mapView: MapView?): Boolean {
if(this.hitTest(e, mapView)) {
locations.remove(this.position)
this.closeInfoWindow()
mapView?.overlays?.remove(this)
}
return true
}
}

@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '7.3.0' apply false
id 'com.android.library' version '7.3.0' apply false
id 'com.android.application' version '7.4.1' apply false
id 'com.android.library' version '7.4.1' apply false
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false
}

@ -1,6 +1,6 @@
#Fri Mar 03 14:28:35 CET 2023
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

Loading…
Cancel
Save