移動端ESRI二次開發小結(esri,android)

一些事情,又開始弄一下esri android 的東西。以前都沒有好好總結,所以總是做一些重複性的工作,現在我寫這個日誌總結一下遇到的問題,以免以後遇到了又忘了怎麼解決。有需要合作的同學可以和我聯繫,QQ:1779873364。
實現功能: 地圖切換;手機定位;點、線、面的繪製;標記、存儲;查詢、統計
開發環境: android studio3.6 ; esri android runtime sdk 100.8.0

第一、android studio(AS)的版本一定要是這個,我原先用的是2.1的版本,結果老是報錯,錯誤就是無法編譯esri android runtime sdk 100.8.0這個包。不僅不能編譯這個包,其他100.*.0的包都不可以。

第二、AS中的java 版本一定要是1.8的,我以前用都是1.7,所以導致APP安裝到手機上,只要添加mapview的控件,就會閃退。這個版本的AS會自帶1.8的java編譯器,所以只要更改好就可以了。等更改之後,還需要添加一句話。(build.gradle[module:app])

android{
[...]
 compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

}

第三、除了剛纔提高的閃退原因外,還需要添加一句話纔可以避免閃退的發生。(build.gradle[module:app])

 defaultConfig {
 [....]
 ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
 }

第四、由於我用的是runtime100.8.0,和以往的10.2等版本發生了很大的變化,包括數據的加載方式、所用的函數等。現在就幾個常用的函數羅列一下。

//添加畫布圖層
mGraphicsOverlay= new GraphicsOverlay();
mMapView.getGraphicsOverlays().add(mGraphicsOverlay);

//添加繪製的要素
Graphic polylineGraphic = new Graphic(polyline, polylineSymbol);
mGraphicsOverlay.getGraphics().add(polylineGraphic);

//用於獲取集合圖形的面積、長度
pLingLength=GeometryEngine.length(polyline);

第五、除了在使用ESRI的二次開發包中的遇到的各種問題,關於android開發的也有一些問題。
(1)自從android6.0之後,不僅需要在權限清單中增加權限,還需要在代碼中寫上需要開啓的權限。我使用的是定位、存儲、網絡訪問。這些都需要在代碼中申請。
(2)在數據存儲的時候,如果想要訪問手機中的位置,其根目錄的路徑爲“/storage/emulated/0/”。當獲得文件操作的權限後,就可以使用新建文件夾、新建文件等操作了。

在這裏插入圖片描述

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