1、前言

2015年1月15日,发布ArcGIS Runtime SDK for Android v10.2.5版本。从该版本开始默认支持android studio开发环境,示例代码的默认开发环境也改为Android Studio。Eclipse插件被弃用。并且官方说明从版本v10.2.5,Esri公司不再提供的Eclipse IDE工具插件的形式,但是,它是可以继续使用jar包引用方式通过Eclipse完成开发工作。所以这里我们采用目前官方主推的方式给大家介绍ArcGIS Android开发环境的搭建。

2、第一个地图应用程序HelloMap配置过程

在Android Studio中基于ArcGIS Runtime SDK for Android应用程序总的来说配置分为以下四步:

  • 创建一个Android工程
  • 配置ArcGIS Runtime SDK 支持
  • 添加UI及代码信息
  • 运行程序查看结果

2.1、创建一个android工程

1)   新建一个空的Android工程,选择Start a new Android Studio project

2)   创建一个新的Activity,选择第一个Blank Activity,点击下一步

3)   到这里第一个Android应用程序就创建成功了

2.2、配置ArcGIS Runtime SDK for Android支持

1)   Gradle配置

Gradle是近来比较流行的一个系统构建工具,可以通过编译自己的构建文件(build.gradle)来自定义构建流程。一个Gradle项目的构建文件是在项目的根目录下,您可以在项目的根目录下找到构建文件(build.grade)。在开发ArcGIS for Android的Gradle项目时需要配置两部分的依赖管理内容:

  • Ÿ   配置project的ArcGIS Repository(Esri ArcGIS maven)仓库位置
  • Ÿ   配置appmodule 的ArcGIS Runtime SDK for Android依赖。

2)   ArcGIS Repository配置

打开根目录下的构建配置文件build.gradle文件 [对应Gradle Scripts中的 build.gradle(Project:HelloMap)]

添加仓库配置,如下:

allprojects {
repositories {
jcenter()
// Add the following arcgis repository
maven {
url'http://dl.bintray.com/esri/arcgis'
}
}
}

说明:这样你所需的ArcGIS的jar包就会自动下载到本地的仓库里了,下次再建项目时需要引用ArcGIS 的jar时,他会去你本地直接查找相关jar引入到你的项目里。

3)   App Module配置

App Module中的build.gradle文件适合用来放特殊的指令和任务(对应Gradle Scripts中的 build.gradle(Module:app))。一个ArcGIS Android app需要ArcGIS Android API library工程依赖。一旦在project级别的build.gradle文件中配置好了ArcGIS的仓库,则可以在这个文件中声明ArcGIS Android的依赖。

a)   ArcGIS依赖配置

dependencies {
...
// Add the ArcGIS Android 10.2.6 API
compile 'com.esri.arcgis.android:arcgis-android:10.2.6-2'
}

a)   Packaging配置

在生成APK时我们可能不希望将一些文件打包到APK中,这时我们可通过下面的配置将所需文件排除APK文件中:

packagingOptions{
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}

c)   Permissions和Features配置

对于绝大多数的ArcGIS Android apps的应用几乎都需要网络的支持;也有一些应用可能会需要访问设备的sdcard,需要对该卡有读写的权限;除此对于GIS来说最常用的功能就是定位了所有,应用应该具备定位权限。 ArcGIS Android apps的MapView使用了OpenGL2.x,所以在android应用程序的配置文件AndroidManifest.xml中还需添加OpenGL的支持,因此应用的配置文件至少包含下面的配置信息:

<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" /> <uses-feature
android:glEsVersion="0x00020000"
android:required="true" />

2.3、添加UI及代码信息

在完成了一系列的配置操作后,接下来需要完成UI的制作和地图代码信息的设置。

1)   设置应用程序Activity的UI信息

打开res>>layout>>activity_main.xml文件,添加Mapview信息

<com.esri.android.map.MapView
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</com.esri.android.map.MapView>

2)   新建MapView并设置UI和代码的绑定

private MapView mapView = null;
private ArcGISTiledMapServiceLayer arcGISTiledMapServiceLayer = null; this.mapView = (MapView)this.findViewById(R.id.map);//设置UI和代码绑定

3)   新建地图图层并添加到MapView中

String strMapUrl="http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer";
this.arcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer(strMapUrl);
this.mapView.addLayer(arcGISTiledMapServiceLayer);

结果如下图所示:

2.4、程序运行结果

《ArcGIS Runtime SDK for Android开发笔记》——(4)、基于Android Studio构建ArcGIS Android开发环境的更多相关文章

  1. ArcGIS Runtime SDK for WPF已不更新,后续将被ArcGIS Runtime SDK for .NET取代

    ArcGIS Runtime SDK 10.2.5 for WPF is now available! by mbranscomb and Rex Hansen on January 27, 2015 ...

  2. ArcGIS Runtime SDK for WPF学习笔记(一)

    本节主要讲解如何安装ArcGIS Runtime SDK,以及移除注释与水印. 附上ArcGIS Runtime SDK for .NET的官方操作手册网址:https://developers.ar ...

  3. 《ArcGIS Runtime SDK for Android开发笔记》——(3)、ArcGIS Runtime SDK概述

    1.前言 ArcGIS Runtime SDK是一整套用于构建原生及跨平台的地图应用程序的开发包,包括移动设备的Android.iOS.Windows Phone,针对桌面的.Net.Java.OSX ...

  4. 《ArcGIS Runtime SDK for Android开发笔记》

    开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...

  5. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述

    1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步

    1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...

  7. 《ArcGIS Runtime SDK for Android开发笔记》——(7)、示例代码arcgis-runtime-samples-android的使用

    1.前言 学习ArcGIS Runtime SDK开发,其实最推荐的学习方式是直接看官方的教程.示例代码和帮助文档,因为官方的示例一般来说都是目前技术最新,也是最详尽的.对于ArcGIS Runtim ...

  8. 《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)(转)

    1.前言 在上一篇的内容里我们介绍了基于Android Studio构建ArcGIS Runtime SDK for Android开发环境的基本流程,流程中我们采用的是基于Gradle的构建方式,在 ...

  9. 《ArcGIS Runtime SDK for Android开发笔记》——(15)、要素绘制Drawtools3.0工具DEMO

    1.前言 移动GIS项目开发中点线面的要素绘制及编辑是最常用的操作,在ArcGIS Runtime SDK for iOS 自带AGSSketchLayer类可以帮助用户快速实现要素的绘制,图形编辑. ...

随机推荐

  1. hiho# 1465 重复旋律8 循环串计数 后缀自动机

    题目传送门 题意:给出一个母串,再给出n个串,问对于每个串,母串中有几个子串是可以通过循环变化得到这个串. 思路:对母串建SAM,求出$right$集. 把匹配串复制一遍,和母串进行匹配,当匹配长度大 ...

  2. OpenERP 中国财务模块 调整

    最开始的模样是这个样子的 后三行是没用的,于是在RML文件中注释掉相关的代码,改进后的界面如下: 这个样子看起来是好多了,但是 数量跟是十亿千百的那块看起来还是很别扭,调整行高后的结果: 最诡异的事情 ...

  3. ADO.NET中DbConnection.GetSchema方法的使用总结

    此方法获取数据库的结构,所以可以用它获取数据库中所有的表 先上代码 string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;U ...

  4. 使用KindEditor完成图片上传(springmvc&fastdfs/springmvc&ftp)

    前端使用KindEditor,后台使用Springmvc 1 拷贝KindEditor相关文件到项目中 拷贝KindEditor相关文件到项目中 2 准备一个jsp页面 页面中我准备了一个超链接,点击 ...

  5. Maven项目中Spring整合Mybatis

    Maven项目中Spring整合Mybatis 添加jar包依赖 spring需要的jar包依赖 <dependency> <groupId>org.springframewo ...

  6. 查看windows系统块大小

    C:\Users\xyw>fsutil fsinfo ntfsinfo 用法 : fsutil fsinfo ntfsinfo <volume pathname> 例如 : fsut ...

  7. rails学习笔记: rake db 相关命令

    rails学习笔记: rake db 命令行 rake db:*****script/generate model task name:string priority:integer script/g ...

  8. [转]EntityFramework Core技术线路(EF7已经更名为EF Core,并于2016年6月底发布)

    本文转自:http://www.cnblogs.com/VolcanoCloud/p/5572408.html 官方文档英文地址:https://github.com/aspnet/EntityFra ...

  9. 一、spark单机安装

    如果要全面的使用spark,你可能要安装如JDK,scala,hadoop等好些东西.可有时候我们只是为了简单地安装和测试来感受一下spark的使用,并不需要那么全面.对于这样的需要,我们其实只要安装 ...

  10. C++ 语法积累20161015

    1.break 作用:用于终止当前循环(跳出循环体). 遇到最多的应该是在双层循环体中的使用: (1)在内循环体中,遇到break,则直接跳出内循环体,再次执行外循环体. (2) 在外循环体中,bre ...