我正在创建一个应用程序,您可以使用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()
任何?
答案 0 :(得分:2)
只需保留对您初始化的MyLocationOverlay的引用...无需从叠加管理器中取回它。
答案 1 :(得分:1)
或者,检查返回的Overlay对象的getClass()方法。它可能会向您显示所请求的Overlay实际上是MyLocationOverlay,在这种情况下您可以强制转换它。例如:
Overlay overlay = main_mapView.getOverlayManager().get(i);
if ( overlay.getClass().equals(MyLocationOverlay.class) ) {
((MyLocationOverlay)mMyLocationOverlay).enableFollowLocation()
}