ArcGIS API for Android 开发进阶

合集下载

(完整版)ArcGIS Runtime SDK for Android开发入门

(完整版)ArcGIS Runtime SDK for Android开发入门

保存地图至Portal
前提
• Map必须处于Loaded状态 • 要保存的Layer必须处于Loaded状态 • 被授权连接至Portal
参考资料
ArcGIS runtime SDK
https:///android/latest
ArcGIS runtime samples android
27
地理分析:GeometryEngine
GeometryEngine用于进行常规的几何分析
area
intersects
touches
。。。
buffer
labelPoint
union
clip
length
within
cut
overlaps
relate
densify
project
crosses
generalize
• 几何 • 属性
2 在线和离线
• ServiceFeatureTable • GeodatabaseFeatureTable
23
概述
构建FeatureTable 交互事件获取要素
编辑操作
提交编辑内容
Add Update
Delete
24
地图数据的查询和分析
25
查询1:利用Query属性查询
目标:对地图服务中的单个图层进行属性查询 步骤:
31
浅谈离线
32
离线数据源
1 栅格切片包 tpk 和矢量切片包vtpk
ArcGISTiledLayer, ArcGISVectorTiledLayer
2 Runtime geodatabase
Geodatabase, GeodatabaseFeatureTable, FeatureLayer

arcgis runtime for android shp渲染原理 -回复

arcgis runtime for android shp渲染原理 -回复

arcgis runtime for android shp渲染原理-回复ArcGIS Runtime for Android(简称Runtime)是Esri公司针对Android 平台开发的一款高性能地理信息系统(GIS)软件开发工具包(SDK),它允许开发者创建基于地理位置的Android应用程序。

在Runtime中,一种常见的地理数据格式是Shapefile(SHP),这是一种用于存储地理空间矢量数据的文件格式。

本文将介绍ArcGIS Runtime for Android中SHAP 文件的渲染原理,以及使用Runtime开发SHP图层的步骤。

1. SHP文件结构首先,了解SHP文件的结构对于理解其渲染原理非常重要。

SHP文件包含三个主要部分:.shp文件、.shx文件和.dbf文件。

.shp文件存储了实际的几何图形,例如点、线、多边形等。

.shx文件是存储了几何图形的索引,用于快速查找和访问。

.dbf文件则存储了属性数据。

2. SHP文件解析在ArcGIS Runtime for Android中,首先需要进行SHP文件的解析。

解析SHAP文件是将图形和属性数据从原始文件中读取到内存中的过程。

SDK提供了ShapefileFeatureTable类来实现这个功能。

开发者可以通过创建ShapefileFeatureTable对象,指定.shp文件的路径,并调用loadAsync()方法来异步加载数据。

3. SHP图层渲染一旦SHP文件解析完毕,接下来就是将SHAP图层渲染到Android应用程序中。

在ArcGIS Runtime for Android中,使用ArcGISMap对象来创建地图,而图层则可以添加到地图中。

对于SHP图层,可以使用FeatureLayer类来实现渲染。

通过将ShapefileFeatureTable对象和地图关联起来,然后创建FeatureLayer对象并添加到地图中,就可以将SHP 图层渲染在地图上了。

第10章-ArcGIS Runtime SDK for Android开发

第10章-ArcGIS Runtime SDK for Android开发
QT
.NET
JavaSE
2020/3/7
Android
Mobile
Windows Phone
Windows Mobile
苏州科技大学环境学院 朱进
Embedded
slide8
第10章 ArcGIS Runtime SDK for Android开发
移动GIS开发
新技术-ArcGIS Runtime Xamarin SDK
2005年,谷歌收购了Android公司,Andy继续领导开发Android操 作系统
2010年末数据显示,仅正式推出两年的Android操作系统在市场占 有率上已经超越称霸逾十年的诺基亚Symbian系统,成为全球第一 大智能手机操作系统。
2020/3/7
苏州科技大学环境学院 朱进
slide13
2020/3/7
苏州科技大学环境学院 朱进
slide33
第10章 ArcGIS Runtime SDK for Android开发
安卓版本Hello World
2020/3/7
苏州科技大学环境学院 朱进
slide34
第10章 ArcGIS Runtime SDK for Android开发
2020/3/7
苏州科技大学环境学院 朱进
slide31
第10章 ArcGIS Runtime SDK for Android开发
安卓版本Hello World
2020/3/7
苏州科技大学环境学院 朱进
slide32
第10章 ArcGIS Runtime SDK for Android开发
安卓版本Hello World
2020/3/7
苏州科技大学环境学院 朱进

ArcGIS for Android

ArcGIS for Android

ArcGIS for Android(正式的API对外发布预计需要到2011年1月底)开发环境:目前支持Windows平台的Eclipse 3.5(Galileo),建议下载Eclipse IDE for Java Developers版本:在使用ESRI提供的ArcGIS for Android API之前需要先在Eclipse中安装Android的ADT(Android Development Toolkit)插件:(具体安装方法可以参考GOOGLE主页的相关说明)由上述开发环境可见,在应用ArcGIS for Android之前,熟练Android的开发是必须的。

目前ArcGIS for Android API支持的Android SDK版本为:Android 2.1和Android 2.2:ArcGIS for Android API支持ArcGIS Server 9.3.1及其以上的Java或.NET版本。

下面在上述的环境下实现一个基本的地图应用程序,其开发流程和一般的Android应用程序一致:1.在Eclipse中新建一个Android工程:2.下一步,设置工程名称等如下:3.点击完成后,工程创建成功:4.右键打开工程属性,导入ArcGIS for Android API的jar包(AndroidSDK.jar、geometry.jar):5.编辑AndroidManifest.xml文件,新增自定义用户权限:android.permission.INTERNET 这个权限将控制应用程序部署后对ArcGIS Server上地图相关服务的访问。

6.编辑HelloWorld.java文件:7.public class HelloWorld extends Activity {8./** Called when the activity is first created. */9.@Override10.public void onCreate(Bundle savedInstanceState) {11.super.onCreate(savedInstanceState);12. setContentView(yout.main);13. map=(MapView)findViewById(R.id.map);14. Object init=getLastNonConfigurationInstance();15.if(init!=null){16.map.setInitExtent((Extent)((Object[])init)[0]);map.setInitResolution(((Double)((Object[])init)[1]).doubleValue() );17. }18.19. }20.21.@Override22.protected void onPause() {23.// TODO Auto-generated method stub24.super.onPause();25.SharedPreferences.Editor editor=getPreferences(0).edit();26.map.onPause(editor);mit();28.}29.30.@Override31.protected void onResume() {32.// TODO Auto-generated method stub33.super.onResume();34.SharedPreferences prefs=getPreferences(0);35.map.onResume(prefs);36.}37.38.@Override39.public Object onRetainNonConfigurationInstance() {40.// TODO Auto-generated method stub41.//return super.onRetainNonConfigurationInstance();42.return new Object[]{43.map.getExtent(),44.Double.valueOf(map.getResolution())45.};46.}47.}7.修改工程中的布局配置文件main.xml如下:<?xml version="1.0"encoding="utf-8"?><com.esri.android.map.MapViewxmlns:android="/apk/res/android"android:id="@+id/map"android:layout_width="fill_parent"android:layout_height="fill_parent"><com.esri.android.map.ags.ArcGISDynamicMapServiceLayerurl="/ArcGIS/rest/services/ESRI_Image ry_World_2D/MapServer"/><com.esri.android.map.ags.ArcGISTiledMapServiceLayerurl="/ArcGIS/rest/services/Reference/ ESRI_Transportation_World_2D/MapServer"/></com.esri.android.map.MapView>我们在地图控件上新增了两个图层:一个动态地图和一个切片地图。

AndroidGIS开发系列--入门季(1)起点

AndroidGIS开发系列--入门季(1)起点

AndroidGIS开发系列--⼊门季(1)起点前⾔这个系列,待最终完成更新,⼤家体谅点,第⼀版本全部是参考的⽹络教程,最近会逐步的细化更新为可以直接使⽤的情况。

本系列的开发基于AS ( Android Studio ), 和ArcGIS 的Android开发的API。

配置开发⾸先要下载Arcgis SDK。

下载地址在Arcgis官⽹,不过下载要注册,⽐较⿇烦。

可以从,下载jar包与so⽂件。

学习采⽤的版本是Arcgis SdK 10.2.4。

下载jar与so后,进⼊正题,新启项⽬Arcgis Demo。

1.添加so与jar2.⼯程的Mainfest⽂件中添加相应的权限:<uses-featureandroid:glEsVersion="0x00020000"android:required="true" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />3.build.gradle⽂件下的android节点加上如下配置:解决jackson-mapper-lgpl-1.9.5.jar与jackson-core-lgpl-1.9.5.jar⽆法编译问题packagingOptions {exclude 'META-INF/LGPL2.1'exclude 'META-INF/LICENSE'exclude 'META-INF/NOTICE'}在MainActivity的布局中添加MapView控件,并加上id.<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.arcgis.test.MainActivity"><com.esri.android.map.MapViewandroid:id="@+id/map_view"android:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout>在MainActivity中获取控件,并添加⼀个开放的⽹络图层。

ArcGIS for Android 2.0开发教程基础版

ArcGIS for Android 2.0开发教程基础版

Android 简介 ........................................................................................................................................................ 1 ArcGIS Runtime for Android 简介.......................................................................................................................... 2 开发环境配置 ..............................................................................................................................................4
第三章. 1. 2. 3.
创建项目............................................................................................................................................................ 12 项目结构............................................................................................................................................................ 14 编码实现............................................................................................................................................................ 16 地图、图层及空间参考 ...........................................................................................................................apView 地图组件 ............................................................................................................................................ 18 地图图层(Layer)............................................................................................................................................ 21 SpatialReference ................................................................................................................................................. 26 地图事件 .................................................................................................................................................... 28

ArcGISforAndroid开发环境搭建

ArcGISforAndroid开发环境搭建

ArcGISforAndroid开发环境搭建ArcGIS for Android 开发环境搭建1. 基础环境搭建1.1. 安装JDK安装JDK8,并设置环境变量在cmd窗⼝输⼊java -version检查是否配置完成java -versionjava 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 IDEA1.3. 下载Android SDK以及Google APIAndroid SDK :Google API:1.4. 创建Android模拟器使⽤AVD Manager创建Android模拟器1.5. 在线配置ArcGIS SDK配置project的build.gradle在allprojects部分添加Esri public maven repositorymaven {url 'https://esri.jfrog.io/artifactory/arcgis'}配置app的build.gradle在dependencies中添加implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0'点击 sync ,⾃动下载所需的⽂件1.6. 离线配置ArcGIS SDK下载将解压出来的libs的⼦⽂件夹放到本地maven仓库在project的build.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_8targetCompatibility JavaVersion.VERSION_1_8}1.8. 构建测试点击项⽬build,若最后显⽰BUILD SUCCESSFUL,则基本环境已经搭建完成2. 创建第⼀个应⽤2.1. 创建新⼯程新建⼀个空活动项⽬选择语⾔、平台,修改命名等2.2. 添加ArcGIS SDKbuild.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 FilesAndroidManifest.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_8targetCompatibility JavaVersion.VERSION_1_8}2.3 添加MapView地图控件修改activity_main.xml,替换TextView<com.esri.arcgisruntime.mapping.view.MapViewandroid: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(yout.activity_main);mMapView=findViewById(R.id.mapView);ArcGISMap map =new ArcGISMap(Basemap.Type.TOPOGRAPHIC,34.056295,-117.195800,16);mMapView.setMap(map);重载onPause、onResume与onDestroy事件@Overrideprotected void onPause() {mMapView.pause();super.onPause();}@Overrideprotected void onResume() {super.onResume();mMapView.resume();}2.5. 编译运⾏点击运⾏后,Android模拟器中将打开⽣成的App。

【推荐下载】ArcGIS for Android 之定位功能开发

【推荐下载】ArcGIS for Android 之定位功能开发

ArcGIS for Android 之定位功能开发2013/04/28 4389 关于定位的功能,开发,很早之前就有做过百度的定位功能。

起初是有想法把百度的Loc V3.2 的定位SDK 整合进来用。

但是终归是想法,但是知道昨天,我问技术群,里面的一位朋友就说起了百度地位SDK 整合进来的实现方法。

顿时,我就思考了一会,随后就是很激动地操作起来。

根据朋友给的一个demo。

做了两天,终于算是真正将功能实现了。

至于界面的美观或者样式的显示这个就偷懒掉了。

developer.baidu/map/sdk-android.htm这个是百度的SDK。

帮助文档。

第一次看这个定位的实现的时候,觉得按步骤来就可以实现,把该设置的参数设置好就行了。

其实,的确就行了。

很简单!我根据demo,也用了V2.2.1 的版本的百度定位。

我会把工程发在我的资源里面。

有需要自行下载。

这里讲些重点错误的地方。

1.构建路径(Build Path),如何把LocV2.2.1.jar 导入Android Dependencies 内呢?在ADT17 之前,如果要在Android 项目中引入外部JAR 包,只需在项目属性的Java Build Path 中选择Add External JARs,然后选择相应JAR 包即可。

但是,在升级到ADT17 之后,Android 项目下多出了一个Android Dependencies 目录,之前通过Add External JARs 加入的jar 包依然出现在Referenced Libraries 目录之下,但是似乎已经被弃用,虽然没有提示任何错误,但是在运行时会抛出ClassNotFoundException。

解决方法是将JAR 包加入到Android Dependencies 下,其中一个默认引入目录是libs,因此只要将JAR 包复制该目录下。

因此,记得新建一个ArcGIS 工程后,要记得导入LocV2.2.1.jar 包。

ArcGIS+API+for+Android+案例教程

ArcGIS+API+for+Android+案例教程

ESRIArcGIS API for Android案例教程吴泳锋2011/2/22本文环境:Windows 7 + ArcGIS Server 10 + ArcGIS API for Android 1.0 beta目录I.配置开収环境 (3)Android开収环境 (3)ArcGIS开収揑件 (6)II.理解开収模式 (8)新建一个 Hello World工程 (8)揑播一些 Android基本概念 (9)运行返个 ArcGIS Android程序 (13)III.使用 MapView (18)劢态操作地图服务 (18)导航不触屏操作 (21)IV.客户端要素 (25)客户端要素图层 (25)通过交互绘制几何对象 (28)V.查询呾识别 (33)空间查询呾属性查询 (33)要素识别 (35)VI.几何对象操作不地理处理 (37)几何对象的操作 (37)地理处理服务 (39)VII.要素编辑 (42)Feature Layer (42)属性编辑 (44)几何编辑 (45)VIII.利用 Android的辅劣功能 (51)定位服务 (51)IX.附录 (53)常用资源: (53)I.配置开发环境ArcGIS API for Android(以下戒称 ArcGIS Android API)的开収环境其实就等亍“Android开収环境”+“ArcGIS开収揑件”,Android开収环境是基亍 Eclipse 的,因此,叧要熟悉 Eclipse的应该徆容易配置。

Android开发环境1Android开収环境是基亍 Eclipse的,而 ArcGIS Android API要求 Eclipse版本为 3.5(Galileo)戒 3.6(Helios)。

因此 Android开収环境配置的第一步在亍正确安装 JDK6,然后安装 Eclipse(3.5/3.6,/downloads/,推荐Classic版本,个人推荐 3.5版本,3.6的代码提示有点问题)。

ArcGIS for Android入门程序之DrawTool

ArcGIS for Android入门程序之DrawTool

ArcGIS for Android入门程序之DrawTool分类:ArcGIS for Android2011-08-26 21:42 2995人阅读评论(10) 收藏举报androidwindows phonemenureferenceeclipse移动开发ArcGIS for Android是Esri公司推出的基于Android平台的移动开发包。

与ArcGIS for IOS 及ArcGIS for Windows Phone一样,ArcGIS for Android访问ArcGIS Server发布的REST 服务,包括动态服务、切片服务、要素服务等地图服务,Query、Identify、GP等空间分析服务。

ArcGIS for Android提供了很好的开发资料,包括API Reference、Sample等,为了方便开发,还提供了ArcGIS Plugin for Eclipse,用于创建专门基于ArcGIS for Android的项目。

至于如何配置开发环境、如何使用ArcGIS for Android SDK实现MobileGIS的基本功能,可以参考牛人牛魔王有关ArcGIS for Android的系列技术文章(牛魔王博客:/warrenwyf)。

了解了一点ArcGIS for Android之后,发现在开发中对于手势事件的响应是一个需要一点时间琢磨的问题,所以写了一个入门程序DrawTool。

DrawTool是一个可以画点、线、矩形、多边形、圆形的工具类,进行了简单封装,能满足一般的画图需求。

通过这个程序能够较好的掌握ArcGIS for Android中该如何处理各种手势事件。

程序中的DrawToolActivity.java展示了如何调用DrawTool。

DrawToolActivity.java代码如下,源代码下载地址:/source/3552287ArcGIS Android SDK 2.0版本下的DrawTool2.0:/arcgis_mobile/article/details/8084763[java]view plaincopy1.package com.esrichina.android;2.3.import android.app.Activity;4.import android.graphics.Color;5.import android.os.Bundle;6.import android.view.Menu;7.import android.view.MenuInflater;8.import android.view.MenuItem;9.10.import com.esri.android.map.GraphicsLayer;11.import com.esri.android.map.MapView;12.import com.esri.core.symbol.MarkerSymbol;13.import com.esri.core.symbol.SimpleMarkerSymbol;14.import com.esrichina.android.ext.drawtool.DrawEvent;15.import com.esrichina.android.ext.drawtool.DrawEventListener;16.import com.esrichina.android.ext.drawtool.DrawTool;17.import com.esrichina.demo.geocoding.R;18.19./**20. *21. * @author ropp gispace@22. *23. * 由于要响应DrawTool的画图事件,此处需要实现DrawEventListener接口24. */25.public class DrawToolActivity extends Activity implements DrawEventListener{26.27.private MapView mapView;28.private GraphicsLayer drawLayer;29.private DrawTool drawTool;30.31.private MarkerSymbol markerSymbol;32.33.public void onCreate(Bundle savedInstanceState) {34.super.onCreate(savedInstanceState);35. setContentView(yout.main);36.37.this.mapView = (MapView)this.findViewById(R.id.map);38.this.drawLayer = new GraphicsLayer(this.mapView.getContext());39.this.mapView.addLayer(this.drawLayer);40.// 初始化DrawTool实例41.this.drawTool = new DrawTool(this.mapView);42.// 将本Activity设置为DrawTool实例的Listener43.this.drawTool.addEventListener(this);44.45.// 此处可以根据需要设置DrawTool实例画图时使用的各种symbol46.this.markerSymbol = new SimpleMarkerSymbol(Color.RED, 20, SimpleMarkerSymbol.STYLE.CIRCLE);47.//this.drawTool.setMarkerSymbol(markerSymbol);48. }49.50.@Override51.public boolean onCreateOptionsMenu(Menu menu) {52. MenuInflater inflater = this.getMenuInflater();53. inflater.inflate(R.menu.menu, menu);54.return true;55. }56.57.@Override58.public boolean onOptionsItemSelected(MenuItem item) {59.switch (item.getItemId()) {60.case R.id.point:61. drawTool.activate(DrawTool.POINT);62.break;63.case R.id.envelope:64. drawTool.activate(DrawTool.ENVELOPE);65.break;66.case R.id.polygon:67. drawTool.activate(DrawTool.POLYGON);68.break;69.case R.id.polyline:70. drawTool.activate(DrawTool.POLYLINE);71.break;72.case R.id.freehandpolygon:73. drawTool.activate(DrawTool.FREEHAND_POLYGON);74.break;75.case R.id.freehandpolyline:76. drawTool.activate(DrawTool.FREEHAND_POLYLINE);77.break;78.case R.id.circle:79. drawTool.activate(DrawTool.CIRCLE);80.break;81.case R.id.clear:82.this.drawLayer.clear();83.this.drawLayer.postInvalidate();84.this.drawTool.deactivate();85.break;86. }87.return true;88. }89.90.// 实现DrawEventListener中定义的方法91.public void handleDrawEvent(DrawEvent event) {92.// 将画好的图形(已经实例化了Graphic),添加到drawLayer中并刷新显示93.this.drawLayer.addGraphic(event.getDrawGraphic());94.this.drawLayer.postInvalidate();95. }96.}效果图如下:。

百度地图开发与ArcGIS for Android开发入门

百度地图开发与ArcGIS for Android开发入门

切换到Target面板,选择模拟器,然后Run运行
第二种调试方法: 在真机中调试 右键项目,选择Debug As ->Android Application 选择自己)制
2.配置环境变量
(1)右键计算机选择属性->高级系统设置->高级->环境变量
(2)在系统变量下选择“新建” 变量名为:JAVA_HOME 变量值为:为你的Java JDK 的安装路径
(3)再次选择系统变量下的新建
变量名为:classpath 变量值为:.;
(4)在系统变量里找到“Path”这一项,选中它, 然后点击编辑。在变量值一栏开头添加 %JAVA_HOME%\bin; 不要掉了后面的分号
5.找到res文件夹下的layout文 件夹。这里面是项目的界面 布局文件,可以新建多个 layout。 打开activity_main.xml,进入 xml代码视图
6.修改布局文件下面代码
切换到图形视图 右图就是搭建好的一个简 单布局
7.找到AndroidManifest.xml,这是程序的清单文件,里面 是整个程序的描述文件,包含应用的名称图标,组件和权 限的声明
创i/index.php?tit le=an建一个Android Application Project项目
学习资源:
安卓巴士论坛 / ITEYE / Android开社 /topicnews.aspx? tid=11
2.填入项目名
3.后面几步都是下一步,点击Finish完成项目新建
4.在左侧的项目文件查看中找到新建的libs下面,然介
1.LBS(基于位置服务): 基于位置的服务,是指通过电信移动 运营商的无线电通讯网络或外部定位方式, 获取移动终端用户的位置信息,在GIS平 台的支持下,为用户提程序编程口), 其中包括JavaScript API、Web服务API、 Android SDK、iOS SDK、定位SDK、车联 网API、LBS云等多种开DK。使用时需申 请许可

ArcGIS API for Android 开发教程

ArcGIS API for Android 开发教程
fFactory Pro" 试用版本创建
要素编辑等操作的基本原理和实现方法,并以此来帮助您理解 API 大致的工作原理、开 发涉及的主要概念等内容。
1 ArcGIS API for Android 系统要求
1.1 Eclipse IDE 要求
l The Android Development Tools (ADT) Plug-In for Eclipse 插件 l The ArcGIS API for Android Eclipse Plug-In for Eclipse 插件(该插件目前只支持
ArcGIS For Android 介绍 ArcGIS for Android 将 GIS 的适用范围从办公室扩展到移动 Web。 发布时,ArcGIS for Android 将包括一个应用程序,您将能够从 Android Market 应用商店下载这款称为 ArcGIS 的应用程序。这个应用程序将类似于已经发布的 ArcGIS for iOS 和 Windows Phone 应用程 序. 使用该 ArcGIS 应用程序,您能够浏览 或 ArcGIS Server 提供的地图,并且利 用程序中提供的工具进行搜索,识别位置和要素,测量线和面,以及编辑。
ArcGIS Android API 依赖 ArcGIS Server 的 REST 接口。我们在 API 中加载地图服务, 对要素进行添加删除等编辑操作,调用地理处理服务(Geoprocessing Service, GP 服务) 等等,都可以通过对 ArcGIS Server 提供的 Rest 服务调用来实现。接下来的章节,我们 将为您简要介绍在 ArcGIS Android API 中实现地图加载,要素查询和识别,调用 GP 服务,

ArcGIS Runtime SDK for Android开发基础完美版

ArcGIS Runtime SDK for Android开发基础完美版

Line
符号渲染-Symbol
Symbols Marker symbols
Symbol
Line symbols
FillSymbol
SimpleFillSymbol
LineSymbol
SimpleLineSymbol
MarkSymbol
SimpleMarkSymbol
MultiLayerSymbol
ArcGIS Runtime SDK for Android开发基础
开发竞赛赛前辅导
内容提要
• ArcGIS Runtime是什么?
• Android开发环境搭建
• 如何构建具有GIS能力的Android应用
• ArcGIS Runtime SDK for Android基础
ArcGIS Runtime
• 演示
构建具有GIS能力的Android应用
构建具有GIS能力的Android应用
配置projec级别的(Esri ArcGIS maven)仓库位置
构建具有GIS能力的Android应用
排除不需要被打包在Apk中的 文件。
配置appmodule 的ArcGIS Runtime SDK for Android依赖。
Fill symbols
PictureMarkSymbol
Composite symbols
TextSymbol
Text symbols
信息窗口-callout
整个MapView中只有一个Callout对象
Callout样式
Callout应用
<?xml version="1.0" encoding="utf-8"?> <resources> <calloutViewStyle TextView tw = new TextView(this); frameColor="#ffdcdada" tw.setText(“Smith’s SQMI”); backgroundColor="#bf1e1d1d" callout = map.getCallout(); flat="true" callout.setStyle(R.xml.calloutstyle); cornerCurve="15dip" callout.setOffset(0, -15); anchor="9dip"/> callout.show(location, tw ); </resources>

3-ArcGIS Runtime SDK for Android开发基础(上)

3-ArcGIS Runtime SDK for Android开发基础(上)
WGS84坐标系
国际通用地心坐标系,GPS广播星历是以WGS-84坐标系为根据的
GCS_WGS_1984(编码:4326) Well-known text:
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",637
8137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925 199433]]
ArcGIS Runtime SDK for Android 开发基础(上)
Esri中国 成都分公司 逯强
By
目录

ArcGIS Runtime SDK f门ArcGIS android应用程序开发
初识ArcGIS Android应用程序开发
addLayer centerAt getCallout getCenter getExtent getLayer getLayers

setMaxScale getLocationDisplayManager getOnLongPressListener getOnSingleTapListener

基于共同的C++内核 多平台的接口风格和编程模式一致 覆盖主流平台的SDKs:
-
Desktop
OS X
ArcGIS Runtime SDK for Android/iOS/.Net 10.2.6(目前最新)
Windows Store
Desktop Client
QT
ArcGIS Runtime APIs …

ArcGIS_API_for_Android_开发进阶

ArcGIS_API_for_Android_开发进阶

使用 ArcGIS Tools 添加地图
通过 Android Layout 控制
-

调节尺寸和位置 显示的属性

默认动作
-Leabharlann 触摸事件 – zoom, pan
添加 event listeners and handlers

自定义动作
-

初始化
-
注意检查地图是否正确加载
Map – isLoaded() Layer – isInitialized()
Mapping: 在 XML 文件中添加地图图层
<com.esri.android.map.MapView xmlns:android="/apk/res/android" android:id="@+id/map” android:layout_width="fill_parent" android:layout_height="fill_parent” initExtent="-13631799.97888788 4545982.2729670685 13630011.658698952 4547213.547551089"> <com.esri.android.map.ags.ArcGISTiledMapServiceLayer url="/ArcGIS/rest/services/ World_Topo_Map/MapServer" /> <com.esri.android.map.ags.ArcGISDynamicMapServiceLayer url="/ArcGIS/rest/ services/SanFranFireInfo/MapServer" /> <com.esri.android.map.GraphicsLayer android:id="@+id/graphics" /> <com.esri.android.map.ags.ArcGISFeatureLayer url="/ArcGIS/rest/ services/HaightAshburyHydrantsFs/FeatureServer" mode="snapshot" />

ArcGIS for Android移动开发技术

ArcGIS for Android移动开发技术

StretchRenderer
信息展示组件
• • • • Callout -气泡,展示要素信息 Pupup -要素信息及附件展示的组件
查询与定位
要素查询与识别
Query QueryTask QueryParameters FeatureSet Identify IdentifyTask IdentifyParameters IdentifyResult Find FindTask FindParameters FindResult
地理处理
什么是地理处理? 提供用于执行分析和管理地理数据的工具和框架。 地理处理有何作用? 按顺序串联一系列工具; 工作流打包成一个易于共享的地理处理包; 地理处理工作流中创建 Web 服务。
地理处理
Geoprocessor Execute submitJob GPParameter GPResultResource GPJobResource
• • • • • •
ArcGISFeatureLayer addAttachment applyEdits getFields queryFeatures selectFeatures
几何计算
• • • • • • • • • • • GeometryEngine Buffer Clip Simplify Intersect Union Project Difference geometryToJson(int wkid, Geometry geometry) jsonToGeometry(JsonParser json) ……
• Identify是空间查询,输入参数只能是geometry • Find是属性查询,输入参数只能是text • 以上两者针对的是整个服务而非单个图层 • Query既可以属性查询有可以做空间查询 • Query操作的对象是单一图层/表 • Query可以数据库的支持下可以做高级查询与数 据统计

Andriod ArcGIS API

Andriod ArcGIS API

除此之外,为地图容器添加了5类监听事件,该五类事件是实现逻辑的主体setOnPanListener、setOnSingleTapListener、setOnStatusChangedListener、setOnTouchListener、setOnZoomListener6、Layer图层类所有GraphicLayer、TileLayer、GroupLayer均是其子类7、GraphicLayer extends Layer地图绘制图层,可实现点、线、面要素图层的管理与绘制。

首先介绍Graphic类和Geometry类:(1)Graphic类定义了点线面等图形绘制对象,构造函数如下:Graphic(Geometry geometry, Symbol symbol)Graphic(Geometry geometry, Symbol symbol, Map<String,Object> attributes, InfoTemplate infoTemp)一个graphic对象主要包括一个几何要素geometry(点线面等),以及一个符号对象symbol,同时一个图形对象可以包含有一个属性列表(可选)。

主要方法如下:static Graphic fromJson(org.codehaus.jackson.JsonParser parser)String[] getAttributeNames()Map<String,Object> getAttributes()Object getAttributeValue(String key)Geometry getGeometry()InfoTemplate getInfoTemplate()Symbol getSymbol()int getUid()(2)Geometry类:public abstract class GeometryGeometry类定义了基本集合点线面要素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Eclipse plug-ins 的形式发布,可以在 Eclipse 中加载

Java 语言开发
ArcGIS API for Android 提供的功能

Mapping
-
Layers: Tiled, Dynamic, Graphic, Feature

Tasks
-
Identify, Query, Locator, Geoprocessor
Mapping: 在 XML 文件中添加地图图层
<com.esri.android.map.MapView xmlns:android="/apk/res/android" android:id="@+id/map” android:layout_width="fill_parent" android:layout_height="fill_parent” initExtent="-13631799.97888788 4545982.2729670685 13630011.658698952 4547213.547551089"> <com.esri.android.map.ags.ArcGISTiledMapServiceLayer url="/ArcGIS/rest/services/ World_Topo_Map/MapServer" /> <com.esri.android.map.ags.ArcGISDynamicMapServiceLayer url="/ArcGIS/rest/ services/SanFranFireInfo/MapServer" /> <com.esri.android.map.GraphicsLayer android:id="@+id/graphics" /> <com.esri.android.map.ags.ArcGISFeatureLayer url="/ArcGIS/rest/ services/HaightAshburyHydrantsFs/FeatureServer" mode="snapshot" />
ArcGIS API for Android
− 又称 ArcGIS Runtime SDK for Android − 2011年2月 Beta 版发布 − 计划于2011年第3季度推出正式版本
ArcGIS for Android 应用程序

类似于 ArcGIS for iOS 和 Windows Phone 应用程序
Event Event Listeners / Listeners / Handlers Handlers
Android: Activity

Activity(活动)是提供某项特定功能的可视化用户界面 一个程序中可能有多个 activity

• Activity
里可以包含其它控件
Activity Activity

以堆栈的形式存放
Activity
Activity 的生命周期
On Create – 创建和初始化


• • • •
On Start – 在 activity 变得 可见之前
On Resume – 置顶可见 On Pause – 可见但不可操 作 On Stop – 不可见,但是仍 在内存中 On Destroy – 被销毁
-
/src
-
源文件 编译出的类文件 资源文件
-
/gen /res
Images
-
Styles xml
Layout xml
-
AndroidManifest.xml
-
Application configuration
Android 开发基本概念
Android: 程序概览
Layout
View View
Activity Activity View View App Service Service Event Data / Listeners / Content Handlers Providers
Android SDK Launch as Android app Compile to Dalvik classes Deploy to device/emulator Run app
Debug/log app
Android app framework
典型的 ArcGIS for Android 工程
可能碰到的问题:

Eclipse "out of memory“
找到 eclipse.ini,修改 VM 值
-startup .... --launcher.XXMaxPermSize 512m ..... -XX:MaxPermSize=512m -Xms512m -Xmx1024m .....

ArcGIS for Android 简介
ArcGIS 的移动端技术
ArcGIS 云
Web ArcPad ArcGIS for Mobile ArcGIS for iOS ArcGIS for Windows Phone ArcGIS for Android 测试版已于2011年2月发布 正式版将于2011年第3季度发布
R.java: No such file or directory
需要将 Android SDK 添加到默认路径中
Demo: 配置开发环境
Eclipse 下 Android 程序开发和调试流程
Start here! Eclipse
Android device
Write Java
Dalvik VM
Mapping – MapView Class
通过 Android Layout 控制
-

调节尺寸和位置 显示的属性

默认动作
-
触摸事件 – zoom, pan
添加 event listeners and handlers

自定义动作
-

初始化
-
注意检查地图是否正确加载
Map – isLoaded() Layer – isInitialized()
-

Layers: Tiled, Dynamic, Graphic, Feature

Tasks
-
Identify, Query, Locator, Geoprocessor

Editing
-
Template-based, similar to other web APIs Connected, through feature layer
-
免费程序?Esri免费 收费程序?ArcGIS Server许可:联系我们

程序要求
-
使用Online底图:Esri/Bing Logo 关于对话框
Android 平台
Why Android?
• 开放性,可定制 • 支持多种设备 • 稳定发展的客户群
• 强大的自带 API
使用 ArcGIS API for Android 进行开发
Mapping

MapView 类
-
THE map
-
Android View 类
ArcGIS Server
-

Map services
-
Map Services (tiled and dynamic) Feature Services WebMaps
-

-
Bing (将在正式版中支持)
移动平台
• 可视化 • 创建 • 协同 • 发掘 • 管理 • 分析
企业
本地
桌面
ArcGIS for Android 产品及发布时间
ArcGIS for Android 应用程序
− 计划于2011年第3季度发布
− 类似于 ArcGIS for OS 和 ArcGIS for Windows Phone
预备知识及开发环境搭建
必要的准备 – 知识篇
• • •
具备一定的 Java 程序开发基础 拥有 Eclipse 下的程序开发经验 了解 ArcGIS 相关程序架构和开发方法
必要的准备 – 软件篇
• Eclipse – 3.5 或者 3.6 • Java development kit (JDK) 6 • Android API – 2.1,2.2,2.3 • ArcGIS API for Android
-
从 Android Market 免费下载 (Q3 2011)

从 ArcGIS Servers & 寻找地图 显示并导航地图


工具
-
搜索 识别位置和要素 测量线和面
-
编辑
ArcGIS API for Android

包括:
-
API 开发辅助工具 帮助文档
-
例子

以 ArcGIS API for Android

Editing
-
Template-based, similar to other web APIs
Connected, through feature layer
授权和收费

企业内部部署
-
ArcGIS Server许可 部署设备不限数量

公开部署(in App Store/Market Place/Market)
配置 Eclipse 开发环境
相关文档
最新文档