1、前言
2015年1月15日,發佈ArcGIS Runtime SDK for Android v10.2.5版本。從該版本開始默認支持android studio開發環境,示例代碼的默認開發環境也改爲Android Studio。Eclipse插件被棄用。並且官方說明從版本v10.2.5,Esri公司不再提供的Eclipse IDE工具插件的形式,但是,它是可以繼續使用jar包引用方式通過Eclipse完成開發工作。所以這裏我們採用目前官方主推的方式給大家介紹ArcGIS Android開發環境的搭建。
2、第一個地圖應用程序HelloMap配置過程
在Android Studio中基於ArcGIS Runtime SDK for Android應用程序總的來說配置分爲以下四步:
- 創建一個Android工程
- 配置ArcGIS Runtime SDK 支持
- 添加UI及代碼信息
- 運行程序查看結果
2.1、創建一個android工程
1) 新建一個空的Android工程,選擇Start a new Android Studio project
2) 創建一個新的Activity,選擇第一個Blank Activity,點擊下一步
3) 到這裏第一個Android應用程序就創建成功了
2.2、配置ArcGIS Runtime SDK for Android支持
1) Gradle配置
Gradle是近來比較流行的一個系統構建工具,可以通過編譯自己的構建文件(build.gradle)來自定義構建流程。一個Gradle項目的構建文件是在項目的根目錄下,您可以在項目的根目錄下找到構建文件(build.grade)。在開發ArcGIS for Android的Gradle項目時需要配置兩部分的依賴管理內容:
- Ÿ 配置project的ArcGIS Repository(Esri ArcGIS maven)倉庫位置
- Ÿ 配置appmodule 的ArcGIS Runtime SDK for Android依賴。
2) ArcGIS Repository配置
打開根目錄下的構建配置文件build.gradle文件 [對應Gradle Scripts中的 build.gradle(Project:HelloMap)]
添加倉庫配置,如下:
allprojects { repositories { jcenter() // Add the following arcgis repository maven { url'http://dl.bintray.com/esri/arcgis' } } }
說明:這樣你所需的ArcGIS的jar包就會自動下載到本地的倉庫裏了,下次再建項目時需要引用ArcGIS 的jar時,他會去你本地直接查找相關jar引入到你的項目裏。
3) App Module配置
App Module中的build.gradle文件適合用來放特殊的指令和任務(對應Gradle Scripts中的 build.gradle(Module:app))。一個ArcGIS Android app需要ArcGIS Android API library工程依賴。一旦在project級別的build.gradle文件中配置好了ArcGIS的倉庫,則可以在這個文件中聲明ArcGIS Android的依賴。
a) ArcGIS依賴配置
dependencies { ... // Add the ArcGIS Android 10.2.6 API compile 'com.esri.arcgis.android:arcgis-android:10.2.6-2' }
a) Packaging配置
在生成APK時我們可能不希望將一些文件打包到APK中,這時我們可通過下面的配置將所需文件排除APK文件中:
packagingOptions{ exclude 'META-INF/LGPL2.1' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' }
c) Permissions和Features配置
對於絕大多數的ArcGIS Android apps的應用幾乎都需要網絡的支持;也有一些應用可能會需要訪問設備的sdcard,需要對該卡有讀寫的權限;除此對於GIS來說最常用的功能就是定位了所有,應用應該具備定位權限。 ArcGIS Android apps的MapView使用了OpenGL2.x,所以在android應用程序的配置文件AndroidManifest.xml中還需添加OpenGL的支持,因此應用的配置文件至少包含下面的配置信息:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
2.3、添加UI及代碼信息
在完成了一系列的配置操作後,接下來需要完成UI的製作和地圖代碼信息的設置。
1) 設置應用程序Activity的UI信息
打開res>>layout>>activity_main.xml文件,添加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>
2) 新建MapView並設置UI和代碼的綁定
private MapView mapView = null; private ArcGISTiledMapServiceLayer arcGISTiledMapServiceLayer = null; this.mapView = (MapView)this.findViewById(R.id.map);//設置UI和代碼綁定
3) 新建地圖圖層並添加到MapView中
String strMapUrl="http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer"; this.arcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer(strMapUrl); this.mapView.addLayer(arcGISTiledMapServiceLayer);
結果如下圖所示:
2.4、程序運行結果
同步博客:http://www.cnblogs.com/gis-luq 作者:gis-luq 郵箱:[email protected]