【问题标题】:Is there a method to check whether the current Map is in Map or Satellite mode?有没有办法检查当前地图是地图还是卫星模式?
【发布时间】:2011-09-21 21:36:12
【问题描述】:
我正在通过单击切换按钮将地图设置为卫星视图
mapToggle.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
if (mapToggle.isChecked())
{
mapV.setSatellite(true);
} else {
mapV.setSatellite(false);
}
}});
我想以编程方式确定应用重新启动时所处的模式。请指教。
【问题讨论】:
标签:
android
map
android-mapview
satellite
【解决方案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();
}
});
}
你可能想稍微清理一下,但它对我有用。