ArcGIS for Android 开发环境搭建
ArcGIS for Android 开发环境搭建
1. 基础环境搭建
1.1. 安装JDK
-
安装
JDK8
,并设置环境变量 -
在
cmd
窗口输入java -version
检查是否配置完成java -version java version "1.8.0_221" Java(TM) SE Runtime Environment (build 1.8.0_221-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
1.2. 安装IntelliJ IDEA
- 下载安装
IntelliJ IDEA
1.3. 下载Android SDK
以及Google API
-
Android SDK
: -
Google API
:
1.4. 创建Android模拟器
- 使用
AVD Manager
创建Android模拟器
1.5. 在线配置ArcGIS SDK
-
配置project的
build.gradle
在
allprojects
部分添加Esri public maven repository
maven { url 'https://esri.jfrog.io/artifactory/arcgis' }
-
配置
app
的build.gradle
在
dependencies
中添加implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0'
-
点击 sync ,自动下载所需的文件
1.6. 离线配置ArcGIS SDK
-
将解压出来的
libs
的子文件夹放到本地maven
仓库-
在
project
的build.gradle
中添加本地maven
仓库allprojects { repositories { mavenLocal() } }
-
将所需的的依赖放工程目录的
libs
目录下
-
-
将解压的文件直接放到项目文件中
- 将所需的的依赖放工程目录的
libs
目录下 - 将解压出来的
libs
的子文件夹放到工程src\main
目录下的新建的文件夹
- 将所需的的依赖放工程目录的
1.7. 配置权限与Java版本
-
在
AndroidManifest.xml
中的Application
前添加所需权限代码//网络权限 <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" />
-
在
AndroidManifest.xml
中的Application
前声明要素所需OpenGL ES
版本//use a MapView (2D) require at least OpenGL ES 2.x: <uses-feature android:glEsVersion="0x00020000" android:required="true" /> //use a SceneView (3D) require OpenGL ES 3.x: <uses-feature android:glEsVersion="0x00030000" android:required="true" />
-
在
appdbuild.gradle(Module:app)
的android部分最后添加:compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
1.8. 构建测试
- 点击项目
build
,若最后显示BUILD SUCCESSFUL
,则基本环境已经搭建完成
2. 创建第一个应用
2.1. 创建新工程
-
新建一个空活动项目
-
选择语言、平台,修改命名等
2.2. 添加ArcGIS SDK
-
build.gradle (Project: <project name>)
添加maven { url 'https://esri.jfrog.io/artifactory/arcgis' }
-
build.gradle (Module: <module name>)
添加implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0'
-
Gradle
更新:Sync Project with Gradle Files
-
AndroidManifest.xml
添加//网络权限 <uses-permission android:name="android.permission.INTERNET" /> //use a MapView (2D) require at least OpenGL ES 2.x: <uses-feature android:glEsVersion="0x00020000" android:required="true" />
-
在
appdbuild.gradle(Module:app)
的android部分指定Java版本compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
2.3 添加MapView
地图控件
-
修改
activity_main.xml
,替换TextView
<com.esri.arcgisruntime.mapping.view.MapView android:id="@+id/mapView" android:layout_height="fill_parent" android:layout_width="fill_parent" tools:ignore="MissingConstraints"> </com.esri.arcgisruntime.mapping.view.MapView>
2.4 设置地图
-
添加
private MapView mMapView;
-
引用
import com.esri.arcgisruntime.mapping.view.MapView; (IDE可能会自动导入)
-
在
onCreate
事件中设置地图super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mMapView=findViewById(R.id.mapView); ArcGISMap map =new ArcGISMap(Basemap.Type.TOPOGRAPHIC,34.056295,-117.195800,16); mMapView.setMap(map);
-
重载
onPause
、onResume
与onDestroy
事件@Override protected void onPause() { mMapView.pause(); super.onPause(); } @Override protected void onResume() { super.onResume(); mMapView.resume(); }
2.5. 编译运行
点击运行后,Android
模拟器中将打开生成的App