在 Android 中使用 ArcGIS 加载在线底图

ArcGIS 是 Esri 提供的一套强大的地理信息系统(GIS)解决方案,支持多种平台,包括 Android。本文将介绍如何在 Android 应用中使用 ArcGIS 加载在线底图,并配有相关代码示例。

前提条件

在开始之前,需要确保您具有以下条件:

  • 具备一定的 Android 开发基础。
  • 已安装 Android Studio。
  • 已知 ArcGIS 的 API 使用方法。

项目设置

首先,您需要将 ArcGIS Android SDK 集成到您的 Android 项目中。在 build.gradle (Module: app) 文件中,添加以下依赖:

dependencies {
    implementation 'com.esri.arcgisruntime:arcgis-android:100.12.0' // 请确认使用最新版本
}
  • 1.
  • 2.
  • 3.

然后,您需要同步 Gradle 文件,以确保依赖关系正确下载。

创建地图视图

在 Android 中,您可以使用 ArcGISMapView 来展示地图。下面是一个简单的布局 XML 文件示例:

<!-- res/layout/activity_main.xml -->
<RelativeLayout xmlns:android="
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.esri.arcgisruntime.mapping.view.ArcGISMapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

接下来,在您的主活动中加载在线底图。下面是一个示例代码段:

// MainActivity.java
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.esri.arcgisruntime.arcgisservices.ArcGISMap;
import com.esri.arcgisruntime.mapping.view.ArcGISMapView;
import com.esri.arcgisruntime.mapping.Basemap;

public class MainActivity extends AppCompatActivity {
    private ArcGISMapView mapView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mapView = findViewById(R.id.mapView);
        loadMap();
    }

    private void loadMap() {
        // 创建一个底图,使用在线地形图
        Basemap basemap = Basemap.createImagery();
        ArcGISMap arcGISMap = new ArcGISMap(basemap);
        mapView.setMap(arcGISMap);
    }

    @Override
    protected void onPause() {
        super.onPause();
        mapView.pause();
    }

    @Override
    protected void onResume() {
        super.onResume();
        mapView.resume();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mapView.dispose();
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.

在线底图的类型

ArcGIS 提供多种在线底图,以下是一些常见的底图类型及其说明:

底图类型描述
Imagery高分辨率卫星影像
Streets标准街道地图
Terrain地形底图
Topographic综合地形图,适合地理分析工作

通过更改 Basemap.createImagery() 方法中的内容,可以轻松更换底图。

关系图

为了更好地理解 ArcGIS 如何在应用程序中工作,我们可以绘制以下关系图:

ArcGISMap string name string basemapType ArcGISMapView string id float zoomLevel displays

处理权限

在 Android 12及以上版本,您需要在 AndroidManifest.xml 中处理位置权限。在 AndroidManifest.xml 中添加以下内容:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  • 1.

并在运行时请求用户权限。

小结

在本文中,我们介绍了如何在 Android 应用中加载在线底图,示例代码演示了如何使用 ArcGIS Android SDK 来创建地图视图并加载不同类型的底图。通过简单的修改,您可以根据需求切换底图类型,丰富您的地图应用体验。

希望这篇文章能够帮助您快速上手 ArcGIS,构建出更加丰富多彩的地图应用程序。祝您编程愉快!