我使用的是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)
关于叠加按钮,您可以在地图顶部放置一个静态按钮。它可能不是完美的解决方案,但可以解决问题。