1

MyLocationOverlay を使用して FollowLocation のオンとオフを切り替えることができるアプリを作成しています。

私の問題は、以前に MyLocationOverlay を設定していて、FollowLocation をオンにしたいのですが、MapView の OverlayManager で MyLocationOverlay オブジェクトを見つけたり取得したりできないようです。OverlayManager は MyLocationOverlay オブジェクトではなく、Overlay オブジェクトのみを返すようです。

これは、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()

誰?

4

2 に答える 2

2

最初に新しい MyLocationOverlay への参照を保持するだけです... オーバーレイ マネージャーから取得する必要はありません。

于 2012-08-23T14:32:44.337 に答える
1

または、返された Overlay オブジェクトの getClass() メソッドを確認します。要求されたオーバーレイが実際には MyLocationOverlay であることが示される場合があり、その場合はキャストできます。例えば:

Overlay overlay = main_mapView.getOverlayManager().get(i);

if ( overlay.getClass().equals(MyLocationOverlay.class) ) {
    ((MyLocationOverlay)mMyLocationOverlay).enableFollowLocation()
}
于 2012-10-17T14:51:01.307 に答える