ArcGis for android 加载tpk离线文件
1.安装 arcgis android sdk (必须安装过 android sdk及 adt 环境喲)
创建一个本地缓存arcgis android项目
如下代码
package com.esri.arcgis.android.samples.localtiledlayer; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import com.esri.android.map.MapView; import com.esri.android.map.ags.ArcGISLocalTiledLayer; /** * This sample illustrates the use of ArcGISLocatlTiledLayer where the data is stored locally on the device, therefore * this layer can function even when the device does not have any network connectivity. The data for this layer must be * in an ArcGIS Compact Cache format (Tile Packages or .tpk's are not currently supported). * The typical compact cache structure is as follows: * <CacheName><br> * Layers<br> * _allLayers<br> * conf.cdi,conf.xml<br> * The path used in the constructor of the ArcGISLocalTiledLayer must point to the Layers folder e.g. <br> * ArcGISLocalTiledLayer local = new ArcGISLocalTiledLayer("file:///mnt/sdcard/<CacheName>/Layers"); * * A sample data set has been created and is available via ArcGIS Online: * http://www.arcgis.com/home/item.html?id=d2d263a280164a039ef0a02e26ee0501 * 1) In order to use the data, download it from the url above * 2) Copy the data to your sdcard * 3) Set the path to the data by replacing <CacheName> with file:///mnt/sdcard/Parcels/v101/Parcel Map * on line60 below. * * You can also use your own data if it is in an ArcGIS Compact Cache format, for more information on * this data format see this link: * http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2010/05/27/Introducing-the-compact-cache-storage-format.aspx * **/ public class LocalTiledLayer extends Activity { MapView map = null; ArcGISLocalTiledLayer local; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); map = (MapView) findViewById(R.id.map); //the data is stored on the SDCARD //the data is created as a tiled cache // local = new ArcGISLocalTiledLayer("file:///mnt/sdcard/ArcGIS/Basemap/Layers"); // local = new ArcGISLocalTiledLayer(Environment.getExternalStorageDirectory() // + "/YX1.tpk"); // 不行 local = new ArcGISLocalTiledLayer("file:///storage/sdcard0/YX1.tpk"); // ok map.addLayer(local); } }
项目截图:
运行截图