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卡中,我的文件路徑如下:

在SD卡的根目錄下建了一個文件夾arcgis,將切片文件拷貝到了該目錄下面。有了這些離線文件,在程序中需要一個MapView來顯示地圖:

<com.esri.android.map.MapView android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent"> </com.esri.android.map.MapView>

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

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

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章