ArcGIS Android中提供了一个客户端的要素图层GraphicsLayer,以ArcGIS以往Web开发的经验我们就可以知道这是用于客户端要素绘制的图层。让我们尝试在MapView中再添加一个GraphicsLayer:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:id="@+id/buttonAddGraphic" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="添加客户端要素" />
<com.esri.android.map.MapView android:id="@+id/map"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.esri.android.map.ags.ArcGISTiledMapServiceLayer
url="http://server.arcgisonline.com/ArcGIS/rest/services
/World_Imagery/MapServer" />
<com.esri.android.map.GraphicsLayer android:id="@+id/gLayer" />
</com.esri.android.map.MapView>
</LinearLayout>
这里我还添加了一个按钮“添加客户端要素”,我希望在点击这个按钮的时候,程序可以在地图的中央添加一个客户端要素,也就是在GraphicsLayer上添加一个Graphic,因此,我在这个Activity创建的时候添加了这样的一些代码:
gLayer = (GraphicsLayer) findViewById(R.id.gLayer);
gLayer.setRenderer(new SimpleRenderer(new SimpleMarkerSymbol(Color.RED,
20, SimpleMarkerSymbol.STYLE.SQUARE)));
buttonAddGraphic = (Button) findViewById(R.id.buttonAddGraphic);
buttonAddGraphic.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Graphic g = new Graphic();
g.setGeometry(AgsGraphicsLayer.this.map.getCenter());
AgsGraphicsLayer.this.gLayer.addGraphic(g);
AgsGraphicsLayer.this.gLayer.postInvalidate();
}
});
注意一下上面高亮的几行代码,上面对GraphicsLayer的渲染样式进行了定义,表示这个客户端要素图层上需要显示大小为20像素、方形的点要素;下面的代码通过按钮添加了客户端要素,并通知程序马上更新显示。这些代码运行的效果如下:

图 22 通过按钮添加客户端要素
现在让我们在换一种渲染方式,我想用一个小图片来渲染这些要素,比如就用当前程序的图标来表示,应该如何修改呢?查阅API就可以发现熟悉的PictureMarkerSymbol这个符号类,下面就让我们稍微修改一下上面的代码:
Drawable image = AgsGraphicsLayer.this.getBaseContext().getResources()
.getDrawable(R.drawable.icon);
gLayer.setRenderer(new SimpleRenderer(new PictureMarkerSymbol(image)));
这里我们通过获得程序的图标资源,使其作为一个PictureMarkerSymbol的符号,这样修改过的代码运行起来就会是这个样子:

图 23 用图片来显示客户端要素
同样,我们还可以在客户端图层上进行分类渲染或者唯一值渲染,比如我想要一半要素显示红色,一半要素显示绿色,那么我可以使用分类渲染实现:
ClassBreaksRenderer renderer = new ClassBreaksRenderer();
renderer.setField("class");
renderer.setMinValue(0);
ClassBreak class1 = new ClassBreak();
class1.setClassMaxValue(0.5);
class1.setSymbol(new SimpleMarkerSymbol(Color.RED, 20,
SimpleMarkerSymbol.STYLE.CIRCLE));
renderer.addClassBreak(class1);
ClassBreak class2 = new ClassBreak();
class2.setClassMaxValue(1);
class2.setSymbol(new SimpleMarkerSymbol(Color.GREEN, 20,
SimpleMarkerSymbol.STYLE.CIRCLE));
renderer.addClassBreak(class2);
gLayer.setRenderer(renderer);
buttonAddGraphic = (Button) findViewById(R.id.buttonAddGraphic);
buttonAddGraphic.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Graphic g = new Graphic();
g.setAttributeValue("class", Math.random());
g.setGeometry(AgsGraphicsLayer.this.map.getCenter());
AgsGraphicsLayer.this.gLayer.addGraphic(g);
AgsGraphicsLayer.this.gLayer.postInvalidate();
}
});
这样,根据被随机赋值的名为“class”的属性,所有的客户端要素将会被显示成不同的颜色,就像图 24显示的这样。

图 24 使用分类渲染显示客户端要素
分享到:
相关推荐
ArcGIS API for Android 案例教程 ArcGIS API for Android 是 ESRI 公司推出的 Android平台上的 GIS 应用程序接口。通过本教程,我们将学习如何使用 ArcGIS API for Android 开发 Android 平台上的 GIS 应用程序。 ...
《ArcGIS API for Android 案例教程》是一份详尽的指南,旨在帮助开发者理解和掌握如何使用ESRI的ArcGIS API在Android平台上构建地理信息系统(GIS)应用。该教程覆盖了从开发环境的配置、基础概念的理解,到具体...
《ArcGIS API for Android离线文档》是一款专为Android开发者设计的工具,它包含了使用Esri公司的ArcGIS系统在Android平台上开发地图应用所需的所有技术文档。这个离线文档旨在帮助开发者在没有网络连接的情况下,也...
《ArcGIS_API_for_Android_案例教程.pdf》这份文档会更详细地介绍每个步骤,包括示例代码和实践项目,帮助开发者从基础到进阶全面了解和运用ArcGIS API for Android。 通过以上内容,你应该对ArcGIS API for ...
总之,ArcGIS API for Android 1.01 是开发者构建地理信息系统应用的强大工具,结合提供的案例教程和相关资源,可以助力开发者快速掌握并应用这项技术,为Android用户提供丰富的地图服务和地理信息应用。
**ArcGIS Android API 案例教程** ArcGIS API for Android 是Esri公司推出的一款用于在Android平台上构建地理...通过阅读《ArcGIS API for Android案例教程.pdf》,你将深入理解并掌握这些技术,开启你的GIS开发之旅。
根据给定文件内容,以下是关于ArcGIS API for Android 案例教程的知识点总结: ### ArcGIS API for Android 概述 ArcGIS API for Android 是一套开发者工具,允许开发者在Android平台上创建富地理信息系统(GIS)...
**ArcGIS for Android 实例详解** ArcGIS for Android 是Esri公司开发的一款强大的地理信息系统(GIS)开发框架,专门用于构建Android平台上的地图应用。它提供了丰富的地图展示、地理数据分析和空间服务集成等功能...
“ArcGIS+API+for+Android+案例教程.pdf”包含了一系列实际应用场景的示例,帮助开发者理解如何将GIS技术应用于不同的业务场景,如交通导航、环境监测、公共安全等,这些案例能帮助开发者积累实践经验,提高问题...
**ArcGIS for Android 100.4.0 示例完整源码详解** ArcGIS for Android 是 Esri 公司提供的一款强大的地理信息系统 (GIS) 开发框架,它允许开发者在 Android 平台上构建地图应用,集成空间分析和数据管理功能。此...
《ArcGIS for Android 开发教程基础版》是针对在Android平台上使用Esri的ArcGIS SDK进行地图应用开发的初学者而编写的指南。ArcGIS是一款强大的地理信息系统(Geographic Information System),它允许开发者创建、...
附带的`ArcGIS_API_for_Android_案例.pdf`可能包含具体的示例代码和教程,帮助开发者快速理解和上手ArcGIS API在Android上的应用。这些案例可能涵盖地图加载、图层操作、地理编码、标记添加、图形绘制等多个方面,是...
### ArcGIS API for Windows Phone 开发教程精要 #### 一、为什么选择Windows Phone作为开发平台? 在选择移动操作系统时,iOS、Android 和 Windows Phone 是三个主要的选择。本节将重点探讨选择 Windows Phone 的...
**ArcGIS for Android 100.5 完整示例代码详解** ArcGIS for Android 是Esri公司推出的一款强大的地图开发工具,它允许开发者在Android平台上构建具有地图功能的应用程序。版本100.5提供了最新的特性和优化,旨在...
### arcgis android api案例教程 #### 一、概述 ##### Android环境 在开始学习之前,首先需要搭建一个适合开发ArcGIS Android应用的环境。这里提到的环境为Windows 7操作系统,搭配ArcGIS Server 10以及ArcGIS ...
总的来说,"ArcGIS for Android HelloWorld"是一个快速入门的教程,帮助开发者熟悉ArcGIS for Android的基本操作和概念。通过这个简单的例子,开发者可以逐步深入学习,掌握更高级的GIS应用开发技巧,为构建复杂的...
《ArcGIS for Android 10.2.5 实例源码详解》 ArcGIS for Android 是Esri公司推出的一款强大的地理信息系统(GIS)开发工具,它允许开发者在Android平台上构建地图应用,提供丰富的地理数据处理和展示功能。本文将...
Portal API是ArcGIS for Android应用中用于连接和使用ArcGIS Online资源的API,包括连接Portal、获取组织信息、获取用户、群组和项目信息、搜索Portal和使用WebMap等功能。 应用程序部署包括对应用进行签名和分发,...