From eb9e17472866b41b8360b06e496b7aabf473480c Mon Sep 17 00:00:00 2001 From: "arthur.valin" Date: Fri, 17 Mar 2023 17:43:46 +0100 Subject: [PATCH] Adding AddMarkerOverlay, which allows the user to put markers on the map when double tapping --- .../geocaching/ui/overlay/AddMarkerOverlay.kt | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/AddMarkerOverlay.kt diff --git a/app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/AddMarkerOverlay.kt b/app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/AddMarkerOverlay.kt new file mode 100644 index 0000000..7eff525 --- /dev/null +++ b/app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/AddMarkerOverlay.kt @@ -0,0 +1,31 @@ +package uca.baptistearthur.geocaching.ui.overlay + +import android.graphics.Rect +import android.util.Log +import android.view.MotionEvent +import org.osmdroid.util.GeoPoint +import org.osmdroid.views.MapView +import org.osmdroid.views.overlay.Overlay + +class AddMarkerOverlay : Overlay() { + + private var locations: MutableSet = mutableSetOf() + + override fun onDoubleTap(e: MotionEvent?, mapView: MapView?): Boolean { + Log.d("GeoMap", "Longpress") + val proj = mapView?.projection; + if(proj!=null){ + val loc = proj.fromPixels(e?.x?.toInt()!!, e?.y?.toInt() !! ) as GeoPoint + locations.add(loc) + val marker = PlaceMarker(mapView, locations) + marker.position = loc + marker.title = "Step " + locations.size + mapView.overlays.add(marker) + mapView.invalidate() + } + return true; + } + + + +} \ No newline at end of file