osmdroid覆盖层以当前位置为中心

11

我正在使用osmdroid,已经添加了一个MyLocationNewOverlay到我的地图上以显示我的当前位置。这看起来很好。我想要一个按钮,可以将地图居中到我的当前位置,类似于Google Maps。

内置的方式可以实现吗?如果不行,我该如何创建自定义叠加层来实现这个功能?

我知道MyLocationNewOverlay有一个启用跟随位置的功能。但是,我不想要这个功能。我只想要一个按需居中按钮。


只需获取当前位置并将其设置到地图中。 - geNia
我正在询问如何在地图上叠加一个按钮,触发该操作。 - Stealth Rabbi
为什么不在地图上方添加一个视图按钮呢?无论如何,它应该是静态的。 - geNia
2
是的,我知道我可以添加一些随机按钮并将其放在活动中并执行代码以使地图居中。我正在询问如何将其作为覆盖层来完成。这样做会很好地集成,就像指南针和缩放按钮一样。 - Stealth Rabbi
我也遇到了同样的问题。你找到解决方法了吗? - arne.z
不需要。但您可以给这个问题点赞/投票。 - Stealth Rabbi
1个回答

5

setCenter() 方法和 animateTo() 方法在 mapView.controller 中可以将地图居中显示。

val mMyLocationOverlay = MyLocationNewOverlay(GpsMyLocationProvider(this), myMapView)
                    val mapController = mapView.controller
                    mMyLocationOverlay.disableMyLocation()
                    mMyLocationOverlay.disableFollowLocation()
                    mMyLocationOverlay.isDrawAccuracyEnabled = true
                    mMyLocationOverlay.runOnFirstFix {
                        runOnUiThread {
                       mapController.setCenter(mMyLocationOverlay.myLocation);                        
                       mapController.animateTo(mMyLocationOverlay.myLocation)
                        }
                    }
            mapView.overlays.add(mMyLocationOverlay)

关于覆盖按钮,您可以在地图顶部放置一个静态按钮。这可能不是完美的解决方案,但应该能解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接