mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
62 lines
1.9 KiB
Kotlin
62 lines
1.9 KiB
Kotlin
|
|
package com.geeksville.mesh.util
|
||
|
|
|
||
|
|
import android.graphics.Color
|
||
|
|
import android.graphics.Paint
|
||
|
|
import org.osmdroid.events.DelayedMapListener
|
||
|
|
import org.osmdroid.events.MapListener
|
||
|
|
import org.osmdroid.events.ScrollEvent
|
||
|
|
import org.osmdroid.events.ZoomEvent
|
||
|
|
import org.osmdroid.views.MapView
|
||
|
|
import org.osmdroid.views.overlay.CopyrightOverlay
|
||
|
|
import org.osmdroid.views.overlay.gridlines.LatLonGridlineOverlay2
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Adds copyright to map depending on what source is showing
|
||
|
|
*/
|
||
|
|
fun MapView.addCopyright() {
|
||
|
|
if (overlays.none { it is CopyrightOverlay }) {
|
||
|
|
val copyrightNotice: String = tileProvider.tileSource.copyrightNotice ?: return
|
||
|
|
val copyrightOverlay = CopyrightOverlay(context)
|
||
|
|
copyrightOverlay.setCopyrightNotice(copyrightNotice)
|
||
|
|
overlays.add(copyrightOverlay)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Create LatLong Grid line overlay
|
||
|
|
* @param enabled: turn on/off gridlines
|
||
|
|
*/
|
||
|
|
fun MapView.createLatLongGrid(enabled: Boolean) {
|
||
|
|
val latLongGridOverlay = LatLonGridlineOverlay2()
|
||
|
|
latLongGridOverlay.isEnabled = enabled
|
||
|
|
if (latLongGridOverlay.isEnabled) {
|
||
|
|
val textPaint = Paint().apply {
|
||
|
|
textSize = 40f
|
||
|
|
color = Color.GRAY
|
||
|
|
isAntiAlias = true
|
||
|
|
isFakeBoldText = true
|
||
|
|
textAlign = Paint.Align.CENTER
|
||
|
|
}
|
||
|
|
latLongGridOverlay.textPaint = textPaint
|
||
|
|
latLongGridOverlay.setBackgroundColor(Color.TRANSPARENT)
|
||
|
|
latLongGridOverlay.setLineWidth(3.0f)
|
||
|
|
latLongGridOverlay.setLineColor(Color.GRAY)
|
||
|
|
overlays.add(latLongGridOverlay)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private const val INACTIVITY_DELAY_MILLIS = 500L
|
||
|
|
fun MapView.addMapEventListener(onEvent: () -> Unit) {
|
||
|
|
addMapListener(DelayedMapListener(object : MapListener {
|
||
|
|
override fun onScroll(event: ScrollEvent): Boolean {
|
||
|
|
onEvent()
|
||
|
|
return true
|
||
|
|
}
|
||
|
|
|
||
|
|
override fun onZoom(event: ZoomEvent): Boolean {
|
||
|
|
onEvent()
|
||
|
|
return true
|
||
|
|
}
|
||
|
|
}, INACTIVITY_DELAY_MILLIS))
|
||
|
|
}
|