【问题标题】:osmdroid overlay to center on current locationosmdroid 覆盖以当前位置为中心
【发布时间】:2016-05-14 15:49:42
【问题描述】:

我正在使用 osmdroid,并在我的地图中添加了一个 MyLocationNewOverlay 以显示我当前的位置。这看起来不错。我想要的是一个按钮,可以让地图以我当前的位置为中心,类似于 Google 地图。

有没有办法做到这一点?如果没有,我该如何创建自定义叠加层来执行此操作?

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

【问题讨论】:

  • 获取当前位置并设置到地图中。
  • 我在询问是否包含一个按钮作为地图本身的叠加层,但会触发该操作。
  • 为什么不将按钮添加为地图上方的视图?无论如何它应该是静态的。
  • 是的,我知道我可以添加一些随机按钮并将其放入活动中并执行代码以使地图居中。我问的是把它作为一个覆盖。它会很好地集成,就像指南针和缩放按钮一样。
  • 我遇到了同样的问题。您找到解决方案了吗?

标签: android dictionary openstreetmap osmdroid


【解决方案1】:

mapView.controller 中的 setCenter() 方法和 animateTo() 应该使地图居中。

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)

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

【讨论】:

    猜你喜欢
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多