(最近要做个课设,顺便记录分享一些内容。)

一. 简介

1. 概述:ArcGIS Runtime SDK for Android是Esri公司开发的一种工具包,用于在Android设备上创建和部署地理信息系统(GIS)应用程序。它提供了一套强大的API,使开发者能够利用各种地理数据和功能,构建具有地图显示、地理查询、空间分析、图形编辑等功能的应用程序。

2. 用途:

(1)地图和位置应用程序开发:ArcGIS Runtime SDK for Android允许开发者构建基于地图的应用程序,从简单的地图显示到复杂的交互式地图应用,包括导航、地理定位、路径规划等功能;

(2)地理空间分析:开发者可以利用ArcGIS Runtime SDK for Android进行空间分析,如缓冲区分析、交叉分析、热点分析等;

(3)地理数据采集和编辑:SDK提供了功能强大的绘图和编辑工具,允许开发者创建和编辑地理要素,如点、线、面等,以支持数据采集和编辑工作流程;

(4)地理搜索和定位:ArcGIS Runtime SDK for Android提供了地理编码和逆地理编码功能,使应用程序能够根据地址或坐标获取位置信息,并将位置信息转换为可理解的地址描述;

(5)自定义地图和可视化:开发者可以使用SDK提供的符号、渲染器和样式来自定义地图的外观和可视化效果,以满足特定应用程序的需求;

(6)……

二. 基础环境安装与配置

1. 安装Java Development Kit(JDK)

(1)下载并安装JDK:从Oracle官网(https://www.oracle.com/java/technologies/downloads/)下载并安装;

(2)配置环境变量:首先在系统环境变量中设置“JAVA_HOME”变量,在“变量值”填写JDK的安装目录;然后将JDK的“bin”目录路径添加到“PATH”环境变量中。

arcgis for android调用geoserver arcgis android开发_arcgis

arcgis for android调用geoserver arcgis android开发_笔记_02

arcgis for android调用geoserver arcgis android开发_arcgis_03

(3)验证安装:打开命令行终端并输入“Java -version”命令,若安装成功JDK则会看到JDK版本号的输出。

arcgis for android调用geoserver arcgis android开发_arcgis_04

2. 安装Android Studio(开发Android应用程序的集成开发环境(IDE):

        下载并安装Android Studio:从Android开发者网站(https://developer.android.com/studio)下载并安装(根据安装提示进行Android Studio安装即可)。

 

arcgis for android调用geoserver arcgis android开发_arcgis_05

三. 在线部署ARCGISRuntime SDK

        (在线部署—Esri官方建议使用Gradle进行安装,它会从Esri的Maven仓库中安装所需的依赖项和SDK二进制文件;离线部署—如果你无法使用Gradle,可以手动下载SDK,然后通过包含AAR库和依赖项文件来手动将依赖项添加到你的项目中。参考:Get started | ArcGIS Runtime API for Android | ArcGIS Developers

1. 创建Android项目:在Android Studio中创建一个新的Android项目,可选择空白模板或其他模板。

arcgis for android调用geoserver arcgis android开发_arcgis_06

2. 设置Esri的maven仓库地址:在settings.gradle文件的dependencyResolutionManagement块中的repositories块添加Esri的Maven存储库URL。

arcgis for android调用geoserver arcgis android开发_Android_07

repositories {
    maven {
        url 'https://esri.bintray.com/arcgis'
    }
}

 

3. 添加项目依赖

arcgis for android调用geoserver arcgis android开发_arcgis_08

(1)在Module的build.gradle中的dependencies块中添加(将x.x.x替换为你想要使用的ArcGIS Runtime SDK版本号):

arcgis for android调用geoserver arcgis android开发_Android_09

dependencies {
    implementation 'com.esri.arcgisruntime:arcgis-android:x.x.x'
}

 

 (2)在Module的build.gradle文件的android块中确保有以下指令来设置与Java 8语言特性的兼容性(新版本自带,不需要补充):

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

 

arcgis for android调用geoserver arcgis android开发_android_10

 (3)在Module的build.gradle文件的android块中确保有一个buildFeatures块,用于启用视图绑定(view binding)功能:

android {
    . . .
    buildFeatures {
        viewBinding true
    }
    . . .
}

 

arcgis for android调用geoserver arcgis android开发_android_11

 (4)在Module的build.gradle文件中的android块中确保有一个packagingOptions块,用于排除META-INF\DEPENDENCIES文件的重复项。这个设置可以防止在输出中多次包含相同的文件而导致编译错误:

android {
    . . .
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
    }
    . . .
}

 

arcgis for android调用geoserver arcgis android开发_android_12

 4. 添加项目功能需要的权限许可和用户支持:

        在AndroidManifest.xml文件中,在 <manifest> 标签下,可以使用 <uses-permission> 标签添加权限许可;在 <application> 标签下,可以使用 <uses-library> 、 <supports-screens> 等标签来声明应用程序所需的用户支持……

        (ArcGIS Android apps的MapView使用了OpenGL2.x,所以在android应用程序的配置文件AndroidManifest.xml中还需添加OpenGL的支持):

<!-- 访问网络权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 访问网络状态权限 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 添加粗略定位权限 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- 添加精确定位权限 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!-- 读写外部存储权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!-- 允许程序在手机屏幕关闭后后台进程仍然运行 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <!-- 添加OpenGL2.0支持 -->
    <uses-feature android:glEsVersion="0x00020000" android:required="true" tools:ignore="WrongManifestParent" />

    <!-- 用户支持 -->
    <supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:anyDensity="true" />

arcgis for android调用geoserver arcgis android开发_android_13

 5. 同步项目:完成上述更改后,点击Android Studio工具栏的 "Sync Project with Gradle Files" :

arcgis for android调用geoserver arcgis android开发_arcgis_14

        运行加载后,在依赖库中检查是否有相应的依赖包:

arcgis for android调用geoserver arcgis android开发_经验分享_15