我的 android 应用程序中有 Osmdroid map ,需要为 CompassOverlay 设置 OnClickListener。实际上,我需要在点击指南针时将 map 方向设置为北方。
我怎样才能让指南针具有这种功能?
最佳答案
我为有同样问题的其他人回答我自己的问题。
我扩展了 CompassOverlay 并创建了一个覆盖 onSingleTapConfirmed 方法的新对象。
class MyCompassOverlay : CompassOverlay {
constructor(context: Context?, mapView: MapView) : super(context, mapView)
constructor(context: Context?, iOrientationProvider: IOrientationProvider, mapView: MapView) : super(
context,
iOrientationProvider,
mapView
)
override fun onSingleTapConfirmed(e: MotionEvent?, mapView: MapView?): Boolean {
mapView?.mapOrientation = 0f
return super.onSingleTapConfirmed(e, mapView)
}
}
注意:它有一个问题,点击 map 上的任何地方都会改变 map 的方向(不仅仅是点击指南针)。
关于android - OSMDroid 为 CompassOverlay 设置点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57537111/