osmdroid 覆盖以当前位置为中心

Posted

技术标签:

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

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

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

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

【问题讨论】:

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

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

【讨论】:

以上是关于osmdroid 覆盖以当前位置为中心的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图以用户当前位置为中心加上默认位置作为备份

打开地图屏幕时,如何将 MapView 以用户当前位置为中心?反应原生博览会

html JS.Geolocate.how以当前位置为中心显示交互式Google地图

用js实现页面图片,以鼠标位置为中心,滚轮缩放图片

以鼠标位置为中心的图像缩放

设置地图缩放以覆盖所有标记;确保以特定标记为中心