我使用的是osmdroid,并在地图上添加了MyLocationNewOverlay以显示当前位置。看起来不错。我想要的是一个按钮,该按钮会将地图中心放在我的当前位置,类似于Google Maps。

有内置的方法吗?如果没有,我该如何创建自定义叠加层来做到这一点?

我意识到MyLocationNewOverlay具有启用跟踪位置的功能。我不想这样。我只想要一个按需的中心按钮。

最佳答案

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)


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

08-18 08:35