Get MyLocationOverlay from osmdroid MapView



我正在创建一个应用程序,您可以使用MyLocationOverlay打开和关闭FollowLocation。

我的问题是,当我早些时候已经设置了MyLocationOverlay,并想打开FollowLocation,但我似乎无法在MapView的OverlayManager中找到/获取MyLocationOverlay对象。OverlayManager似乎只返回Overlay对象,而不是MyLocationOverlay对象。

这就是我添加MyLocationOverlay的方式:

main_mapView = (MapView) findViewById(R.id.main_mapView);   
MyLocationOverlay mMyLocationOverlay = new MyLocationOverlay(mContext, main_mapView);
mMyLocationOverlay.enableMyLocation();
mMyLocationOverlay.enableCompass();
mMyLocationOverlay.main_mapView.getOverlays().add(mMyLocationOverlay);
main_mapView.invalidate();

稍后我想找到MyLocationOverlay做这样的事情,但正如前面提到的,它返回一个Overlay对象。

MyLocationOverlay mMyLocationOverlay = main_mapView.getOverlayManager().get(i);
mMyLocationOverlay.enableFollowLocation()

有人吗?

只要保留对MyLocationOverlay的引用,你就可以开始了。。。无需从覆盖管理器中取回。

或者,检查返回的Overlay对象的getClass()方法。它可能会向您显示请求的Overlay实际上是一个MyLocationOverlay,在这种情况下,您可以投射它。例如:

Overlay overlay = main_mapView.getOverlayManager().get(i);
if ( overlay.getClass().equals(MyLocationOverlay.class) ) {
    ((MyLocationOverlay)mMyLocationOverlay).enableFollowLocation()
}

相关内容

  • 没有找到相关文章

最新更新