ArcGIS Engine中的Symbols详解

ArcGIS Engine中的Symbols详解

大家好,又见面了,我是全栈君。

转自原文 ArcGIS Engine中的Symbols详解

 

本文由本人翻译ESRI官方帮助文档。尊重劳动成果,转载请注明来源。

Symbols

    ArcObjects用了三种类型的Symbol(符号样式)来绘制图形特征:marker symbols(标记符号),line symbols(线符号),和fill symbols(填充符号)。这些样式同样可以用来绘制elements(元素)图形,比如在地图或制版视图上的图表边线和指北针箭头。第四个样式text symbol(文字符号)是用来绘制标注和其他文本要素的。第五个样式3D chart symbol(图表样式)是用来绘制图表的。在图形元素设置的实例中,一种样式被作为属性赋给所有的元素。图层然而由一个包含一个或多个样式的结合进行绘制。样式(符号)的大小总是指定到一些点上(比如线的宽度),但是几何形状(如线的路径)的大小是由它们本身来决定绘制的。多数情况下,当对象被创建时就已经有了一个默认的样式,因此省去了创建新样式赋给每一个对象的过程,你可以修改一个已经存在的样式。另外一种方式获取样式的方式是用样式文件。ArcObject使用样式文件,可分发数据库存储和访问样式和颜色。有许标准样式,提供了上千种预定义的可用的样式,在安装路径下。利用StyleGallery和StyleGalleryItem两个类,你可以弥补和修改现存的符号样式,这可以使得比重新绘制和创建更高效。你同样可以使用ArcMap的标准样式编辑器,它可以在程序里面使用SymbolEditor类打开。下面的小节将描述怎样利用第一个规则创建一个复杂的符号样式。ISymbol接口提供了对所有符号样式的高等级功能,它允许你使用设置直接绘制一个符号样式。

       更多的附加信息,参见Creating custom symbols

Symbol level drawing

       你可以使用符号等级绘图功能改变图层对象的绘制顺序。在使用符号等级绘制时,你可以控制到是元素按照最基础的一个个样式顺序绘制。这将意味着元素不一定需要以与图层出现在ArcMap表的内容中相同的顺序绘制。使用符号等级绘制,你可以控制一个含控制器绘制元素符号绘制元素的绘制。更多的是,当使用多个样式符号时,你可以控制单个符号层的绘制顺序。

       符号等级绘制在地图套管中最有用。因为它能被用来创建天桥和和地下通道,当线对象有穿过状态时,它是一个非常好的方式展现连接状态。符号等级绘制能够用来更好地表达其他更多的影响和状况。

Join and merge

       下面的图形展示了一个合并样式的效果,它使得对象拥有一致的样式相互连接起来。合并使得有不同样式的对象连接显示。这些变化在使用符号等级对象和接口后场景显示在后台自动实现效果。你可以使用,相对于图层的ISymbolLevels.UseSymbolLevels或相对整个地图的IMp.UserSymbolLevels接口,来切换符号等级绘制的开关。

       使用了地图等级符号绘制的两个示例:

ArcGIS Engine中的Symbols详解

       更多信息,参见:How to use symbol level drawing


Marker symbols

       下面的图表展示的是标记符号样式的类结构:
ArcGIS Engine中的Symbols详解
       IMarkerSymbol接口提供了标记样式共同拥有的一些属性:Angle,Color,Size,XOffset,和YOffset。IMarkerSymbol是所有标记样式的原始接口。所有的其他标记接口都继承IMarkerSymbol的属性和方法。这个接口有5个可读可写属性,它们允许你在任何标记样式类中获取和设置基础的属性。Color属性能够被任何IColor类型的对象设置,它的具体影响基于你使用的类型。
       标记样式类的颜色属性设置属性表如下:
ArcGIS Engine中的Symbols详解
       Size属性设置符号整体的高度,包含SimpleMarkerSymbol,CharacterMarkerSymbol,PictureMarkerSymbol和MultiLayerMarkerSymbol类型。对于ArrowMarkerSymbol类型,Size表示长度。基本单位是点。除了PictureMarkerSymbol的默认大小是12外,其他的默认的大小都是8。Angle属性设置角度,单位是度。符号是从水平方向开始向逆时针方向进行旋转。它的默认值是0。XOffset和YOffset属性定义样式绘制时离实际对象的偏移距离。两个属性都是在打印的点中,默认值是0,值可为正和负。负数表示相对于对象向下偏移和向右偏移,当然正数表示向上和向左偏移。Size、XOffset和YOffset在打印机点上1/71英寸大小。
       下面的图展示了一些标记样式:
ArcGIS Engine中的Symbols详解
       标记符号的旋转指定到数学表达中,下图展示了标记符号的旋转:
ArcGIS Engine中的Symbols详解
       下图展示了一些简单的标记样式:
       ArcGIS Engine中的Symbols详解
       下图展示了一些箭头标记样式:
       ArcGIS Engine中的Symbols详解
       下图展示了一些图表标记样式:
       ArcGIS Engine中的Symbols详解
       下图展示了一些图片标记样式:
       ArcGIS Engine中的Symbols详解
       下图展示了一些多层标记样式:
       ArcGIS Engine中的Symbols详解
       更多信息,参见:

    How to make a character marker symbol     How to make a picture marker symbol


Line symbols

       线符号样式的的类视图如下图所示:
ArcGIS Engine中的Symbols详解
       LineSymbol接口拥有两个所有线样式共同拥有的属性:Color和Width。ILineSymbol是线样式共同的原始接口,将继承ILineSymbol所有的属性和方法。接口有两个可读可写属性,在所有的线样式类中允许对其获取和设置。Color属性控制基础线(它不是影响任何存在的装饰线条,请参阅ILineProperties接口)的颜色并且可有任何IColor类型的对象设置。颜色线条除了SimpleLineSymbol默认被设置成中灰色,其他的都默认是黑色。Width属性设置的是所有的线宽度,单位是点。对于HashLineSymbol,Width属性设置的是所有哈西的长度。除了MarkerLineSymbol的默认宽度为8外,所有的线符号的默认宽度都是1。
       线符号表示了一个对象或图形绘制的定义。Straight lines、polylines、curves和outlines都能用线符号进行绘制。下图展示了一些线符号:
ArcGIS Engine中的Symbols详解
       一个线符号被打印出来是1/72英寸。下图展示了一个线符号宽度的样例:
ArcGIS Engine中的Symbols详解
       更多信息,参见:How to make a cartographic line symbol
 

Fill symbols

       下图展示了填充符号的类结构视图:
ArcGIS Engine中的Symbols详解
       下图展示一些填充符号样式:
ArcGIS Engine中的Symbols详解
       IFillSymbol接口呈现了两个属性,Color和Outline,他们是所有填充符号类型都拥有的属性。
在ArcOjbects中,IFillSymbol被所有的更专业的填充样式类型所继承,有两个可读可写属性。Color属性控制这基本的填充,在下表所示,可以使用IColor类型进行设置。
ArcGIS Engine中的Symbols详解
       Outline属性在ILineSymbol中的设置,被绘制到填充的外边框。不同的填充符号表达了一个多边形的面积和边框如何绘制。默认的外边框线是一条SimpleLineSymbol实线,你也可以使用任何类型的线样式作为外边框线。外边框线的中线在对象的边沿上,所以,一个宽度为5的外框线将重叠填充符号可见的数量。
ArcGIS Engine中的Symbols详解
       更多信息,参见:

    How to make a line fill symbol     How to make a gradient fill symbol

 

Text symbols

       下图展示了文字符号样式的类视图:
ArcGIS Engine中的Symbols详解
       TextSymbol类提供了一种用来符号化图形元素中的文字、注记、标注等等。文字符号样式不仅仅只是定义了字体。主要接口ITextSymbol、ISimpleTextSymbol和IFormattedTextSymbol控制这文字怎样展现和单个字符的展现方式。TextSymbol支持扩展的ASCII码。
       更多信息,参见:

    Creating other kinds of custom symbols     How to make a line callout


Chart symbols

 

       3DChartSymbol是一个抽象的三种类型的图表符号。它代表了一种标记符号,可以使用ChartRenderer的多个属性来符号化地理数据。虽然它被普遍应用于ChartRenderer,如果所有属性都设置适当,你也可以使用符号作为标记符号符号化单个人对象或元素。
在图表符号中IChartSymbol被用来计算柱子和饼图片的大小。maximum属性值能被图表用来量算其他属性的值。在创建3DChartSymbol的时候该值总是被设置。当创建一个CharRenderer时,确保你的特征类已经统计完成,你可以统计统计功能设置MaxValue属性到maxmun属性值开始渲染。例如,加入有两个字段用一个图表来渲染,一个包含的值是从0至5,另一个包含的值是从0至10,设置最大值10。
       Value属性包含一组值,指示所有的柱状的的高度和宽度或饼的份额。假如你在CharRenderer中使用ChartSymbol,你不需要设置这个属性。这个值数组将在CharRenderer绘图的过程中,FeatureClass类使用从指定的属性字段的属性值,从每个功能创建一个稍微不同的符号进行重复填充。绘制完成后所有的值被设置成空或0。单独使用ChartRenderer时,在柱状和饼子图中设置你想要使用的数组值。
       更多信息,参见:
       Creating custom symbols

       Creating other kinds of custom symbols

       Sample: Triangle graphic element

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。


    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/8145595.html,如需转载请自行联系原作者


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107965.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • c语言全局变量和局部变量的区别的代码_函数的形参都属于全局变量

    c语言全局变量和局部变量的区别的代码_函数的形参都属于全局变量局部变量和全局变量的区别背景:上午看书阅及这两对概念,有很多相似之处,故记之。一.局部变量&全局变量1局部变量:“在函数内定义的变量”,即在一个函数内部定义的变量,只在本函数范围内有效。2全局变量:“在函数外定义的变量”,即从定义变量的位置到本源文件结束都有效。目的:增加函数间数据联系的渠道。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变…

    2022年10月24日
  • gmm回归stata命令_gmm模型stata命令

    gmm回归stata命令_gmm模型stata命令一、解释变量内生性检验首先检验解释变量内生性(解释变量内生性的Hausman检验:使用工具变量法的前提是存在内生解释变量。Hausman检验的原假设为:所有解释变量均为外生变量,如果拒绝,则认为存在内生解释变量,要用IV;反之,如果接受,则认为不存在内生解释变量,应该使用OLS。regldilofdiestimatesstoreolsxtivregldi(lofdi=l.lofd…

  • gdfgd_gdaebfc

    gdfgd_gdaebfc@TOC欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计,将会带来全…

  • pycharm改字体的大小_pycharm设置字体颜色

    pycharm改字体的大小_pycharm设置字体颜色①代码块的字体大小设置点击左上角file然后选择settings下一步双击打开点击Font②run窗口的字体大小与颜色设置run窗口颜色设置

  • 美女图片采集器 (源码+解析)[通俗易懂]

    美女图片采集器 (源码+解析)[通俗易懂]前言:有一段时间没写博客了,”持之以恒”徽章都暗了,实在不该。前一段确实比较忙,…小小地给自己的懒找个借口吧。大二即将结束,学习iOS也有一段时间了。今天抽点时间,开源一个前几天刚上传的App里面的一个功能,RT,美女图片采集器。 美女..相信没有人不喜欢吧,基于此,这个小Demo应运而生。注: 本文正在参加博

  • ORACLE中函数MONTHS_BETWEEN的使用

    ORACLE中函数MONTHS_BETWEEN的使用转自:https://www.cnblogs.com/pumushan/p/6655204.html格式:MONTHS_BETWEEN(DATE1,DATE2)MONTHS_BETWEEN函数返回两个日期之间的月份数。SQL>selectmonths_between(to_date(‘20090228′,’yyyymmdd’),to_date(‘20080228’,’y…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号