android - OSMDroid 为 CompassOverlay 设置点击

标签 android osmdroid

我的 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/

相关文章:

android - 设置 InAppBrowser 或 Themeable Browser 高度以显示应用程序的底部选项卡

java - Android 在使用 ListView 和 Bitmap 时出现内存不足错误

android - 当字符串包含 "-"时无法删除 sqlite 中的特定行

android - osmdroid XYTileSource 不显示来自 Android 服务器的图 block

java - 如何从 Osmdroid map 上删除标记

android - 在不使用位图的情况下裁剪相机拍摄的图像

android - 如何在键盘处于 Activity 状态时使布局可滚动?

java - 如何获取我当前位置的街道的车道数?

java - map 在 OpenStreetMap (osm) 中不可见

java - Osmdroid:单击时显示和隐藏标记描述