• arcgis for android 第一个例子(翻译)


    原文地址:https://developers.arcgis.com/android/latest/guide/develop-your-first-map-app.htm

    用Java开发你的第一个地图应用程序

    本教程将指导您完成使用ArcGIS Runtime SDK for Android创建基本地图应用程序的过程,该应用程序使用Android Studio集成开发环境(IDE)使用特定的初始地图范围显示地图。

    本教程是为Android Studio 3.1.2版编写的 - 不同的Android Studio版本在用户界面标题或选项的名称上可能略有不同。Esri建议使用最新的Android Studio稳定版。

    您将使用Java语言开发应用程序。或者,您可以使用Kotlin遵循相同的教程

    您可以在“ 显示地图”示例中将完成的代码视为样本

    先决条件

    在开始之前,请确保您已完成以下操作:

    在Android Studio中创建一个新项目

    启动Android Studio时,将显示“ 欢迎”屏幕。从这里,您可以创建一个新的Android应用程序项目。

     

    1. 单击“ 启动新的Android Studio项目”

      如果已打开项目,可以单击“ 文件”>“新建”>“新建项目”

    2. 应用程序名称文本框中,键入显示地图

      确保未选中Include Kotlin支持框。(要在地图应用中使用Kotlin而不是Java,请参阅使用Kotlin 开发第一个地图应用。)

      如果需要,请更改公司域项目位置,然后单击“ 下一步”

      在Android Studio中创建新项目对话框
    3. Target Android Devices对话框中, 选中Phone and Tablet选项,从Minimum SDK下拉列表中选择API 19:Android 4.4或更高版本,然后单击Next
    4. 在“ 向活动添加活动”对话框中,单击“ 清空活动”,然后单击“ 下一步”
    5. 保留向导其余部分中的默认选项,然后单击“ 完成”

      将打开一个新的Android应用程序项目,显示默认布局。

    您现在已成功创建包含应用程序模块的Android项目。接下来,您将添加ArcGIS Runtime SDK for Android依赖项。

    添加ArcGIS Runtime SDK for Android AAR依赖项

    在这里,您将更新gradle构建脚本,以将ArcGIS Runtime SDK for Android依赖项添加到您的app模块。这将在您构建应用程序时自动从Esri公共Bintray Maven存储库下载Android Archive(AAR)包。

    Android是一种权限分离的操作系统。您还将添加应用所需功能的权限。

     

    1. Android项目视图窗口中的Gradle Scripts下,双击build.gradle(项目:<项目名称>)

      这将打开适用于项目中所有模块的顶级构建文件。如果您不熟悉Gradle构建系统,请参阅构建系统概述

    2. 脚本allprojects / repositories块中,添加一个新的maven块,如图所示,其值为url'https://esri.bintray.com/arcgis '完整部分现在看起来像下面的代码:
       
      allprojects {
        repositories {
          google()
          jcenter()
          
          // Add the Esri public Bintray Maven repository
          maven {
              url 'https://esri.bintray.com/arcgis'
          }
        }
      }

      该指令通过指定Maven存储库URL告知Gradle在哪里查找适用于Android依赖项的ArcGIS Runtime SDK。

    3. Android项目视图窗口的Gradle Scripts下,双击build.gradle(Module:<module name>)

      这将打开适用于项目中单个应用程序模块的模块级构建文件。如果您不熟悉Gradle构建系统,请参阅构建系统概述

    4. 脚本依赖项块中,添加一个新行“ implementation'com.esri.arcgisruntime:arcgis-android:100.4.0'”。依赖块现在看起来应该像下面的代码 - 存在的依赖项的确切列表将取决于Android Studio的版本和所选的项目设置:
       
      dependencies { 
        implementation 'com.esri.arcgisruntime:arcgis-android:100.4.0' 
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        [more dependencies...]
      }

      (在Android Studio 3.0之前,您将使用编译值而不是实现。)

    5. 在Android Studio工具栏中,单击“使用Gradle文件同步项目”或者,当您在Gradle脚本窗口顶部看到自上次项目同步消息后Gradle文件已更改时,请单击立即同步
      在Android中同步现在的gradle消息
    6. Android项目视图窗口的app> manifests下,双击AndroidManifest.xml

      这将打开您的应用程序的清单文件。

    7. 添加以下XML元素作为现有清单的子元素
       
      <uses-permission android:name="android.permission.INTERNET" /> 
      <uses-feature android:glEsVersion="0x00020000" android:required="true" />

      这会通知Android启动器您的应用需要访问Internet的权限。如果应用程序在Android API级别23或更高级别上运行,则在安装时请求正常权限 - Internet访问权限是正常权限,因此无需其他工作即可启用此权限。它还表明您的应用需要OpenGL 2.0版软件功能才能运行并显示地图视图。使用ArcGIS Runtime SDK for Android开发的大多数应用都需要此功能,并且至少需要此权限。有关更多信息,请参阅Android开发人员主题Android权限使用功能元素

    您已将ArcGIS Runtime SDK for Android AAR 的依赖项添加到您的应用程序模块。接下来,您将向应用添加一个显示地图服务的地图,并为该地图设置初始范围。

    使用Java 8语言功能

    Android Studio 3.0引入了对Java 8语言功能子集的支持,这些功能因平台版本而异。例如,lambda表达式和方法引用可以在具有任何minSdkVersion值的Android Studio 3.0模块中使用这些语言功能在整个ArcGIS Runtime SDK for Android文档和示例中使用,因此,为确保在应用程序中使用这些代码示例进行编译,您将设置模块的兼容性以使用Java 8语言功能。

     

    1. Android项目视图窗口的Gradle Scripts下,双击build.gradle(Module:<module name>)以再次打开app module gradle构建脚本。
    2. 将以下指令添加到现有的android块。
       
      android {
        [...]
        // Add below lines to set compatibility with Java 8 language features for an Android app module.
        compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_8
          targetCompatibility JavaVersion.VERSION_1_8
        }
      }

      您现在可能需要再次同步gradle脚本。

    小费:

    您还可以在“ 项目结构”对话框的“ 模块属性”选项卡中进行配置(单击“ 文件”,然后单击“ 项目结构”)。

    如果您在使用受支持的Java 8语言功能时遇到问题,请确保您拥有最新的Android Studio更新,并且您的项目使用Android插件版本3.0.0或更高版本。这是在顶级gradle构建脚本中的com.android.tools.build.gradle依赖项中指定的

    将MapView添加到布局中

    现在您已经使用适用于Android AAR的ArcGIS Runtime SDK创建了一个应用程序,下一步是将MapView添加到活动布局中。

     

    1. Android项目视图窗口的应用程序,单击res> layout,然后双击activity_main.xml

      这将打开主活动布局的中央内容的“ 预览”视图。请注意,根据您使用的确切Android Studio版本以及您选择的初始活动模板,项目可能包含多个布局XML文件 - 例如,如果您选择了基本活动模板,则可能需要改为打开content_main.xml布局。

    2. 在窗口的左下角,单击“ 文本”以显示布局的XML视图(如果尚未显示)。

      默认情况下,布局XML文件中有两个标记。

      • 第一个是Android ConstraintLayout这是一个可以显示其他视图的视图。它安排孩子们相对于彼此的观点。有关更多信息,请参阅Google 约束布局和 用户界面文档。
      • 第二个是TextView,它是约束布局的子项,显示文本“Hello world!”。
    3. 选择整个TextView XML元素并将其替换为MapView元素,如下所示:
       
      <com.esri.arcgisruntime.mapping.view.MapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
      </com.esri.arcgisruntime.mapping.view.MapView>

    要更全面地了解用户界面(UI)设计的声明性方法,请参阅声明布局此外,ConstraintLayout通常使用不同类型的布局约束属性有关更多信息,请参阅Constraint Layout文档。

    在MapView上设置地图

    默认情况下,MapView不显示任何内容,因此下一步是定义要显示的地图。您将指定地图显示ArcGIS Online中的全球地形底图。由于应用程序最初显示特定区域而不是整个范围通常更有用,您还可以将地图设置为放大到特定中心点 - 显示加利福尼亚州雷德兰兹的Esri校园。

     

    1. Android项目视图窗口的app,单击java> [package name],然后双击MainActivity

      这将打开定义应用程序默认活动的Java代码。

    2. 将以下类变量声明添加到MainActivity的顶部
       
      private MapView mMapView;
    3. Android Studio将以红色突出显示必须导入到类中MapView类。将指针放在文本突出显示为红色的行上,然后按Alt + Enter解析符号。选择导入com.esri.arcgisruntime.mapping.view.MapView
       
      import com.esri.arcgisruntime.mapping.view.MapView;
    4. setContentView的现有调用之后,将以下代码添加到onCreate方法
       
      mMapView = findViewById(R.id.mapView);
      ArcGISMap map = new ArcGISMap(Basemap.Type.TOPOGRAPHIC, 34.056295, -117.195800, 16); 
      mMapView.setMap(map);
      注意:

      您需要导入com.esri.arcgisruntime.mapping.ArcGISMapcom.esri.arcgisruntime.mapping.Basemap

      此代码获取对布局中定义MapView的引用(在此之前Android Studio中版本3.0,从返回的对象findViewById必须显式转换到的MapView类型。)一种ArcGISMap创建与特定的预定义Basemap.Type,在一组特定的坐标为中心,并放大到特定水平的详情。然后ArcGISMap设置到MapView中

    5. 将以下方法添加到MainActivity类,以覆盖从父活动类继承onPauseonResumeonDestroy方法,这些方法在调用这些方法时暂停,恢复和释放MapView
       
      @Override 
      protected void onPause(){
        mMapView.pause();
        super.onPause();
      }
      
      @Override 
      protected void onResume(){
        super.onResume();
        mMapView.resume();
      }
      
      @Override
      protected void onDestroy() {
        super.onDestroy();
        mMapView.dispose();
      }

    您现在已经完成了将ArcGIS Runtime SDK for Android地图添加到新Android应用程序的步骤。您现在已准备好构建和测试您的应用程序。

    构建并运行应用程序

    要测试您的应用程序,您需要准备好连接设备进行调试或设置并启动模拟器。要查找更多内容,请参阅Android文档使用模拟器使用硬件设备

     

    1. 在Android Studio工具栏中,单击“运行”
    2. 在“ 连接的设备”对话框中,选择要使用的设备或模拟器,然后单击“确定”。
    3. 当应用程序在您的设备上打开时,它会显示以加利福尼亚州雷德兰兹为中心的街道地图。您可以双击地图进行放大。

    创建新项目时,Android Studio会自动创建运行配置以在您的设备上启动应用程序。您将看到类似于以下屏幕截图的内容。

    小费:

    如果应用程序运行但地图为空,请检查android.permission.INTERNET权限是否已正确添加到Android清单中。

    显示地图屏幕截图显示地图

    就是这样,您已经完成了第一个适用于Android应用的ArcGIS Runtime SDK

    不要忘记您可以在GitHub上的Display a Map示例中查看已完成的代码 

  • 相关阅读:
    Rocket
    Rocket
    Rocket
    Rocket
    Scala
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
  • 原文地址:https://www.cnblogs.com/thg999/p/10003260.html
Copyright © 2020-2023  润新知