在单个应用程序中使用多个mapview

时间:2012-06-11 09:18:20

标签: android google-maps android-mapview android-tabhost

我的应用程序包含选项卡布局(TabHost,TabSpec)。
我在我的应用程序中使用了两个地图视图。因此,如果我在一个map_activity中启用卫星视图,那么转到另一个map_activity,然后其他地图也会显示在卫星视图中,如果我将一个map_activity拖向美国,其他地图视图也会自动拖到美国,无论它在哪里指向。

我一般如果我们使用android:process =“:map1”和android:process =“:map2”在不同的进程中运行两个活动,那么我们可以解决上面的问题。我提到here ...

但是我们怎样才能在标签栏(TabHost,TabSpec)应用程序中解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

这不是一个完美的解决方案,但它会完成工作,整理。

在需要mapview的那些标签中,您可以在代码中创建它:

    mMapView = new MapView(this, MAPS_KEY);
    mMapView.setClickable(true);
    LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    mMapView.setLayoutParams(params);
    FrameLayout mapFrame = (FrameLayout) findViewById(R.id.map_container);
    mapFrame.addView(mMapView);

xml是自我解释的(如果不仅仅是请求)。

这种方法的问题在于,当mapview被实例化时,它将记住旧位置,因此您需要将地图移动到您希望它所处的新位置。可以这样做:

mMapView.getController().animateTo(location);
                        mMapView.getController().setZoom(GlobalValues.EMERGENCY_MAP_ZOOM_LVL);