( arcgis for android )用离线地图*.tpk(当.tpk不能用时)制作可用的离线地图的可用方法
最近在做一个安卓的项目,需要用到离线地图,关于网上离线地图多使用*.tpk的格式,但是有时候*.tpk不给力做出来后但是不用,这里经过我查阅大量资料所得总结出一种方法利用已经制作出来的*.tpk文件,制作可以调用的图层。下面介绍其制作步骤。
1.将现有的tpk文件更改后缀名即将 .tpk 改成 .zip的压缩包格式,如下图2。
图 1
修改并解压会得到三个文件夹,如下图2。
图2
现在提取出上图中v101文件夹,将文件夹的命名与图3的内容一致变为xmut,这个是我们需要用到的,图3是v101文件夹里面的内容。
图 3
2.以上数据准备已经完成,接下来就在ECLIPSE里面使用这个图层数据,
先在XML文件里面写入以下代码,进行添加mapview容器
<com.esri.android.map.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="464dp" >
</com.esri.android.map.MapView>
在MainActivity.java文件里面写入以下代码。
public class MainActivity extends Activity {
MapView mMapView ;//系统自动完成
ArcGISLocalTiledLayer local;//定义ArcGISLocalTiledLayer 对象
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mMapView = new MapView(this); //系统自动完成
mMapView = (MapView)findViewById(R.id.map);//获取map实例
// 离线地图调用
local = new ArcGISLocalTiledLayer("file:///storage/sdcard1/xmut/xmut");//可以实现调用离线地图
mMapView.addLayer(local);
}
}
下图4就是在DDMS里面的文件位置的截图了
图4
到此离线图层加载就已经完成了,顺便一提的是,在使用手机调试应用的时候,或者测试数据库的时候,需要将手机先Root,下载root expiorer,管理相应文件夹的权限问题。