热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ArcGISRuntimeforAndroid开发教程V2.0(7)基础篇空间要素可视化2

目录符号渲染SymbolPictureMarkerSymbolSimpleFillSymbolSimpleLineSymbolSimpleMarkerSymbolTextSymbo

目录

  1. 符号渲染
    1. Symbol
      1. PictureMarkerSymbol
      2. SimpleFillSymbol
      3. SimpleLineSymbol
      4. SimpleMarkerSymbol
      5. TextSymbol
    2. Renderer
      1. SimpleRenderer
      2. ClassBreaksRenderer
      3. UniqueValueRenderer

 

1  符号渲染

1.1 Symbol

Symbol主要是对Graphic对象进行符合样式设置的接口,所有符合样式类都实现了Symbol接口,Symbol接口关系图如下:

 

1.2       PictureMarkerSymbol

        PictureMarkerSymbol是对于点或多点要素的Graphic对象进行样式设置的类,PictureMarkerSymbol主要通过图片的url或Drawable等方式来设置图片符合,对于PictureMarkerSymbol我们还可以设置符合图片的旋转角度和位置偏移,具体用法如下:

//创建图片样式符合
PictureMarkerSymbol pic = new PictureMarkerSymbol(getResources().getDrawable(R.drawable.icon));
Point pt
= new Point(113,32);//创建一个点对象
Graphic gp = new Graphic(pt,pic);设置符合样式
graphicsLayer.addGraphic(gp);添加到图层中

 

1.3       SimpleFillSymbol

        SimpleFillSymbol是对于面状要素的Graphic对象进行样式设置的类,通过它我们设置面状要素的填充颜色和透明度,另外我们也可以为面状要素添加边界的样式设置,SimpleFillSymbol用法非常简单,如下:

Polygon poly = new Polygon();//创建多边形对象
poly.startPath(new Point(0,0));//添加初始点
poly.lineto(new Point(10,0));
poly.lineto(
new Point(10,10));
poly.lineto(
new Point(0,0));//多边形是闭合的因此最后我们还要添加初始点的位置
SimpleFillSymbol sfs = new SimpleFillSymbol(Color.RED);//面样式对象
sfs.setAlpha(50);//设置透明度
Graphic gp = new Graphic(poly,sfs);
graphicsLayer.addGraphic(gp);添加到图层中

 

1.4      SimpleLineSymbol

        SimpleLineSymbol是针对于线状要素的Graphic对象进行样式设置的类,通过它我们可以设置线状要素的样式,如我们可以设置线型、线颜色、线宽和线的透明度等,具体用法如下:

Polyline poly = new Polyline ();//创建多边形对象
poly.startPath(new Point(0,0));//添加初始点
poly.lineto(new Point(10,0));
poly.lineto(
new Point(10,10));
SimpleLineSymbol sls
= new SimpleLineSymbol(Color.RED,25, SimpleLineSymbol.SOLID);//线样式对象
sfs.setAlpha(50);//设置透明度
Graphic gp = new Graphic(poly, sls);
graphicsLayer.addGraphic(gp);添加到图层中

 

1.5        SimpleMarkerSymbol

        SimpleMarkerSymbol也是针对于点状要素的Graphic对象进行样式设置的类,前面已经介绍过一个相关的点状要素样式类PictureMarkerSymbol,SimpleMarkerSymbol与PictureMarkerSymbol类很相似,只不过一个渲染成矢量点,另一个通过图片来替换该点。使用SimpleMarkerSymbol我们可以设置点样式,如点的大小,点颜色和点的类型,用法如下:

Point point = new Point();//创建点对象
Point.setX(114);//设置x坐标
Point.setY(32);//设置y坐标
//设置点样式的颜色,大小和点类型
SimpleMarkerSymbol sms = new SimpleMarkerSymbol(Color.RED,25,STYLE.CIRCLE)
Graphic gp
= new Graphic(point,sms);
graphicsLayer.addGraphic(gp);
//添加到图层中显示

 

1.6      TextSymbol

        TextSymbol也是针对于点状要素的Graphic对象进行样式设置的类,它将点的位置替换成文字进行标绘显示,通过TextSymbol可以设置文字的大小、颜色、内容和排列方式。排列方式是只标绘的文字是以横向排列的还是纵向排列显示的,默认是横向剧中显示。用法如下:

Point point = new Point();//创建点对象
Point.setX(114);//设置x坐标
Point.setY(32);//设置y坐标
//设置点样式的颜色,大小和文本内容
TextSymbol ts = new TextSymbol (12,”点样式”,Color.RED);
Graphic gp
= new Graphic(point,ts);
graphicsLayer.addGraphic(gp);
//添加到图层中显示

 

1.7 Renderer

        Renderer是一个接口类型,该接口主要用于Graphic对象的样式渲染,它目前有四个实现类,在下面章节中将详细介绍这四个类的功能和用法,关系图如下所示:

        

 

 

1.8       SimpleRenderer

         SimpleRenderer是最简单的一个渲染类,通过这个渲染类我们可以把图层中某一类型的要素同时进行渲染,如我们想将图层中的所有点同时渲染成相同的样式,用法如下:

SimpleRenderer renderer = new SimpleRenderer(new SimpleMarkerSymbol(Color.RED,25,STYLE.CIRCLE));
graphicsLayer.setRenderer(renderer);
//为图层设置渲染

 

1.9    ClassBreaksRenderer

         ClassBreaksRenderer是Renderer接口的实现类,使用ClassBreaksRenderer我们可以将GraphicsLayer图层中的某一类型的Graphic对象进行分段渲染,用法如下:

ClassBreaksRenderer renderer = new ClassBreaksRenderer();
renderer.setMinValue(
0.0);//设置最小值
renderer.setField("POP07_SQMI");//渲染依附的字段
ClassBreak cb1 = new ClassBreak();//定义第一段渲染范围和样式
cb1.setClassMaxValue(25);
cb1.setSymbol(
new SimpleFillSymbol(Color.argb(128, 56, 168, 0)));
cb1.setLabel(
"First class");ClassBreak cb2 = new ClassBreak();//定义第二段渲染范围和样式cb2.setClassMaxValue(75);
cb2.setSymbol(
new SimpleFillSymbol(Color.argb(128, 139, 209, 0)));
cb2.setLabel(
"Second class");ClassBreak cb3 = new ClassBreak();//定义第三段渲染范围和样式
cb5.setClassMaxValue(Double.MAX_VALUE);
cb5.setSymbol(
new SimpleFillSymbol(Color.argb(128, 255, 0, 0)));renderer.addClassBreak(cb1);
renderer.addClassBreak(cb2);
renderer.addClassBreak(cb3);graphicsLayer.setRenderer(renderer);
//为图层设置渲染

 

通过上面的代码我们可以发现分段渲染非常简单,只需以下几个步骤:

1)      创建ClassBreaksRenderer对象

2)      设置渲染的字段和最小值

3)      创建多个分段渲染对象(ClassBreak),设置最大值和样式

4)      将分段渲染对象添加到ClassBreaksRenderer对象中

5)      为图层设置Renderer对象

2.0    UniqueValueRenderer

        UniqueValueRenderer是唯一值渲染类,该渲染方式是对某一字段进行唯一值渲染,如我们有一层面状数据,其中一个字段是对该图层的数据分类,这时我们就可以对该分类字段进行唯一值渲染:类型为住宅楼的为黄色,工厂的为紫色,商业区的为红的等等,我们也可以对多个字段进行联合唯一值渲染,最多联合三个字段进行渲染,用法如下:

UniqueValueRenderer uvr = new UniqueValueRenderer();
uvr.setField(
"TYPE");
UniqueValue uv1
= new UniqueValue();
uv.setValue(
new String[]{"Residential"});
uv. setSymbol(
new SimpleFillSymbol(Color.argb(128, 255, 100, 0)));UniqueValue uv2 = new UniqueValue();
uv.setValue(
new String[]{"Industrial"});
uv. setSymbol(
new SimpleFillSymbol(Color.argb(128, 255, 200, 0)));UniqueValue uv3 = new UniqueValue();
uv.setValue(
new String[]{"Commercial"});
uv. setSymbol(
new SimpleFillSymbol(Color.argb(128, 255, 150, 0)));uvr.addUniqueValue(uv1);
uvr.addUniqueValue(uv2);
uvr.addUniqueValue(uv3);
graphicsLayer.setRenderer(uvr);
//为图层设置渲染

 

原文链接:http://blog.csdn.net/arcgis_mobile/article/details/8199822

转:https://www.cnblogs.com/dwf07223/archive/2013/05/18/3085892.html



推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
author-avatar
鱼db在海
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有