有没有办法检查当前地图是在地图还是卫星模式?

时间:2011-09-21 21:36:12

标签: android map android-mapview satellite

我点击了一个切换按钮

设置了Map to Satellite视图
 mapToggle.setOnClickListener(new OnClickListener()
     {

         public void onClick(View v)
         {
             if (mapToggle.isChecked())
             {   
                 mapV.setSatellite(true);  

             } else {   
                 mapV.setSatellite(false);  
             }   
    }});

我想以编程方式确定应用重启时的模式。请指教。

1 个答案:

答案 0 :(得分:1)

我完成此操作的方法是在SharedPreferences中设置一个int值。然后单击该按钮,获取值并相应地打开或关闭卫星。

private static final int OVERLAY_STREET = 0;
private static final int OVERLAY_SAT = 1;

@Override
public void onCreate(Bundle savedInstanceState) {

    int currentOverlayMode = prefs.getInt("map_viewmode", 0);

    mOverlayModeBtn = (Button)findViewById(R.id.googlemaps_overlay_btn);
    mOverlayModeBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (currentOverlayMode < 1)
                currentOverlayMode++;
            else
                currentOverlayMode = 0;
            switch (currentOverlayMode) {
            case OVERLAY_STREET:
                mMaps.setSatellite(false);
                mMaps.setStreetView(true);
                prefsEditor.putInt("map_viewmode", OVERLAY_STREET);
                break;
            case OVERLAY_SAT:
                mMaps.setStreetView(false);
                mMaps.setSatellite(true);
                prefsEditor.putInt("map_viewmode", OVERLAY_SAT);
                break;
            }
            prefsEditor.commit();
            mMaps.invalidate();
        }
    });
}

你可能想稍微清理它,但它对我有用。