|
|
|
@ -17,7 +17,6 @@ import org.osmdroid.views.overlay.mylocation.IMyLocationProvider
|
|
|
|
|
class RecenterOverlay(val myLocationProvider: IMyLocationProvider, val mapView: MapView) : Overlay(), GestureDetector.OnGestureListener, IMyLocationConsumer {
|
|
|
|
|
|
|
|
|
|
private val gestureDetector: GestureDetector = GestureDetector(mapView.context, this)
|
|
|
|
|
|
|
|
|
|
private var circleRectF=RectF();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -54,14 +53,36 @@ class RecenterOverlay(val myLocationProvider: IMyLocationProvider, val mapView:
|
|
|
|
|
myLocationProvider.startLocationProvider(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fun disableMyLocation(){
|
|
|
|
|
myLocationProvider.stopLocationProvider();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onSingleTapConfirmed(e: MotionEvent?, mapView: MapView?) =
|
|
|
|
|
myLocationProvider.lastKnownLocation?.let {
|
|
|
|
|
if (e != null && circleRectF.contains(e.x, e.y)) {
|
|
|
|
|
mapView?.controller?.setCenter(GeoPoint(it.latitude, it.longitude))
|
|
|
|
|
mapView?.controller?.setZoom(20.0);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
true
|
|
|
|
|
} ?: false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onResume() {
|
|
|
|
|
super.onResume()
|
|
|
|
|
enableMyLocation()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onPause(){
|
|
|
|
|
disableMyLocation()
|
|
|
|
|
super.onPause()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onDetach(mapView: MapView?) {
|
|
|
|
|
disableMyLocation()
|
|
|
|
|
super.onDetach(mapView)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onDown(p0: MotionEvent) = true
|
|
|
|
|
override fun onShowPress(p0: MotionEvent) = Unit
|
|
|
|
|
override fun onSingleTapUp(p0: MotionEvent) = true
|
|
|
|
|