我正在创建一个应用程序,您可以使用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()有没有人?
发布于 2012-08-23 22:32:44
只需保留对MyLocationOverlay的引用即可……不需要从覆盖管理器那里拿回它。
发布于 2012-10-17 22:51:01
或者,检查返回的Overlay对象的getClass()方法。它可能会向您显示所请求的覆盖实际上是一个MyLocationOverlay,在这种情况下,您可以转换它。例如:
Overlay overlay = main_mapView.getOverlayManager().get(i);
if ( overlay.getClass().equals(MyLocationOverlay.class) ) {
((MyLocationOverlay)mMyLocationOverlay).enableFollowLocation()
}https://stackoverflow.com/questions/12030422
复制相似问题