Android使MapView加载速度更快

时间:2012-01-02 15:28:30

标签: android map preload

我的应用程序有时用于没有3g网络的农村地区,所以第一次mapview加载它真的很慢。

我希望能够在后台(服务或主要活动(家庭活动))预加载一些磁贴,以加快下载速度。

我已经看到有一个方法mapView.preLoad()但它只适用于mapView对象。我怎么能从服务中做同样的事情?我想这样做:

MapView mv=new MapView(this, getResources().getString(R.string.MAP_API_KEY));

mv.preLoad();

问题是如果上下文不是MapActivity,则会抛出异常。

以下是应用程序的流程:

用户启动应用

主要活动获取地图数据和统计数据下载地图数据

用户打开地图活动

地图活动更快,因为下载的数据已经在缓存中

我能做什么的任何想法?事先征求意见

1 个答案:

答案 0 :(得分:4)

我在片段中使用了android Mapview但是当我用坐标加载地图时它根本没有加载。所以我找到了解决方案。

在onCreate方法中初始化地图。

View v = inflater.inflate(R.layout.fragment_layout, null);
map = (MapView) v.findViewById(R.id.map);
map.onCreate(this.savedInstance);

然后像这样设置地图视图。

private void setUpMap() {
    try {
        MapsInitializer.initialize(mContext);
    } catch (GooglePlayServicesNotAvailableException e) {
        e.printStackTrace();
    }

    mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("Place Lable").icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_drawable)));


    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, longitude), 15));


    map.onResume();
}

此代码中的关键点是在设置map.onResume();

后调用Map