我的应用程序有时用于没有3g网络的农村地区,所以第一次mapview加载它真的很慢。
我希望能够在后台(服务或主要活动(家庭活动))预加载一些磁贴,以加快下载速度。
我已经看到有一个方法mapView.preLoad()但它只适用于mapView对象。我怎么能从服务中做同样的事情?我想这样做:
MapView mv=new MapView(this, getResources().getString(R.string.MAP_API_KEY));
mv.preLoad();
问题是如果上下文不是MapActivity,则会抛出异常。
以下是应用程序的流程:
用户启动应用
主要活动获取地图数据和统计数据下载地图数据
用户打开地图活动
地图活动更快,因为下载的数据已经在缓存中
我能做什么的任何想法?事先征求意见
答案 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