天天看點

arcgis for android離線地圖,Arcgis For Android之離線地圖實作的幾種方式

在Arcgis For Android API下,既能加載Arc Server的切片檔案,也能加載10.1的Title Package檔案(*.tpk)。

一般來說,我們都是将Server的切片檔案或者tpk檔案複制到自己手機的SD卡上面。下面以我的手機為例說一下檔案路徑。小編沒什麼錢,買了一個華為的C8813Q的電信機器,正常來說,安卓的手機都是有運存,記憶體,和外存(SD卡存儲)。運存,是程式運作是所需的存儲,在程式運作結束後會有一個銷毀的過程,是以運存是不做為存儲的,是以,手機的記憶體和外存才是作為存儲的,是以,一般來說,我們的離線地圖是放在記憶體或者外存的,但是,為友善期間,個人建議将離線地圖檔案放在SD卡中,不支援SD卡的手機就隻能放在記憶體了。如果既有記憶體,又支援SD卡,一般記憶體的路徑為:file:///storage/sdcard0,SD卡的路徑為file:///storage/sdcard1,沒有SD卡的路徑為:file:///storage/sdcard。

在Arcgis For Android中,實作離線地圖的加載與顯示,首先我們需要用Server或者10.1去做離線地圖的切片檔案或者切片打封包件。用Server做切片檔案的大家都知道,就不多說了,切片打封包件可以參考這篇http://blog.csdn.NET/arcgis_mobile/article/details/8048549文章,很詳細,一看就會。有了離線地圖檔案,将檔案拷貝到手機SD卡中,我的檔案路徑如下:

arcgis for android離線地圖,Arcgis For Android之離線地圖實作的幾種方式

vcHLuMPEv8K8z8LD5qGj09DBy9Xi0KnA68/fzsS8/qOs1NqzzNDy1tDQ6NKq0ru49k1hcFZpZXfAtM/Uyr612M28o7o8L3A+CjxwPjxlbT48Y29tLmVzcmkuYW5kcm9pZC5tYXAuTWFwVmlldzxicj4KICBhbmRyb2lkOmlkPQ=="@+id/map"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

有了MapView,我們需要

1、定義一個離線圖層

MapView map = null;

ArcGISLocalTiledLayer local;

2、設定離線圖源

在設定裡線圖源的時候,可以用下面兩種方式:

local = new ArcGISLocalTiledLayer("file:///storage/sdcard1/arcgis/base_map.tpk");

local = new ArcGISLocalTiledLayer("file:///storage/sdcard1/arcgis/nmg/Layers");

此外,也可以寫成,不過下面這種路徑的書寫方式不建議,有時候會讀取不到。

local = new ArcGISLocalTiledLayer("file:///mnt/sdcard/arcgis/base_map.tpk");

local = new ArcGISLocalTiledLayer("file:///mnt/sdcard/arcgis/nmg/Layers");

3、将離線圖層添加到mapview顯示。

map.addLayer(local);

到此,離線地圖的加載與顯示已經實作了,更多的功能等你去開發了。不過,你得在配置檔案中加入讀取外部存儲的許可。

二、