Showing confirmation overlay after adding points to the map

pull/7/head
Arthur VALIN 2 years ago
parent 8163c75932
commit 027ef27758

@ -30,6 +30,7 @@ class AddMarkerOverlay(val roadManager: RoadManager) : Overlay() {
marker.title = "Step " + locations.size
mapView.overlays.add(marker)
computeRoad(mapView)
addNewRoadtripOverlay(mapView);
}
return true;
}
@ -41,7 +42,6 @@ class AddMarkerOverlay(val roadManager: RoadManager) : Overlay() {
val road = roadManager.getRoad(ArrayList(locations))
withContext(Dispatchers.Main) {
roadOverlay = RoadManager.buildRoadOverlay(road)
roadOverlay.width=10.0f;
mapView.overlays.add(roadOverlay)
mapView.invalidate()
}
@ -49,7 +49,13 @@ class AddMarkerOverlay(val roadManager: RoadManager) : Overlay() {
}
}
fun addNewRoadtripOverlay(mapView: MapView){
if (locations.size > 1) {
mapView.overlays.add(NewRoadtripOverlay())
}else{
mapView.overlays.remove(mapView.overlays.find { it is NewRoadtripOverlay})
}
}

@ -0,0 +1,48 @@
package uca.baptistearthur.geocaching.ui.overlay
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.graphics.RectF
import androidx.core.content.ContextCompat
import org.osmdroid.views.MapView
import org.osmdroid.views.overlay.Overlay
import uca.baptistearthur.geocaching.R
class NewRoadtripOverlay() : Overlay() {
private var circleRectF=RectF()
override fun draw(canvas: Canvas, mapView: MapView, shadow: Boolean) {
val circleSize = 300f
val circlePadding = 20f
val circleX = canvas.width - circleSize - circlePadding
val circleY = canvas.height - circleSize - circlePadding
circleRectF=RectF(circleX, circleY, circleX + circleSize, circleY + circleSize)
val paint = Paint().apply {
color = Color.WHITE
style = Paint.Style.FILL
}
canvas.drawCircle(
circleSize / 2 + circlePadding,
circleY + circleSize / 2,
circleSize / 2,
paint
)
val iconSize = 180
val icon = ContextCompat.getDrawable(mapView.context, R.drawable.check)
val iconX = (circleSize / 2 - iconSize / 2 + circlePadding).toInt()
val iconY = (circleY + circleSize / 2 - iconSize / 2).toInt()
icon?.setBounds(iconX, iconY, iconX + iconSize, iconY + iconSize)
icon?.draw(canvas)
}
}

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
</vector>
Loading…
Cancel
Save