我正在创建一个应用程序,您可以使用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()
}