ArcGIS for Android 开发环境搭建
阅读原文时间:2023年07月09日阅读:5

ArcGIS for Android 开发环境搭建

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'
    }
  • 配置appbuild.gradle

    dependencies中添加

    implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0'
  • 点击 sync ,自动下载所需的文件

1.6. 离线配置ArcGIS SDK

  • 下载ArcGIS SDK

  • 将解压出来的libs的子文件夹放到本地maven仓库

    • projectbuild.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.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);</code></pre></li>
  • 重载onPauseonResumeonDestroy事件

        @Override
        protected void onPause() {
            mMapView.pause();
            super.onPause();
        }
    @Override
    protected void onResume() {
        super.onResume();
        mMapView.resume();
    }</code></pre></li>

2.5. 编译运行

点击运行后,Android模拟器中将打开生成的App