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做切片文件的大傢都知道,就不多說瞭,切片打包文件可以參考這篇https://blog.csdn.net/arcgis_mobile/article/details/8048549文章,很詳細,一看就會。有瞭離線地圖文件,將文件拷貝到手機SD卡中,我的文件路徑如下:

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);

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

發佈留言