转自原文 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接口,来切换符号等级绘制的开关。

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

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


Marker symbols

下面的图表展示的是标记符号样式的类结构:

       IMarkerSymbol接口提供了标记样式共同拥有的一些属性:Angle,Color,Size,XOffset,和YOffset。IMarkerSymbol是所有标记样式的原始接口。所有的其他标记接口都继承IMarkerSymbol的属性和方法。这个接口有5个可读可写属性,它们允许你在任何标记样式类中获取和设置基础的属性。Color属性能够被任何IColor类型的对象设置,它的具体影响基于你使用的类型。
       标记样式类的颜色属性设置属性表如下:

       Size属性设置符号整体的高度,包含SimpleMarkerSymbol,CharacterMarkerSymbol,PictureMarkerSymbol和MultiLayerMarkerSymbol类型。对于ArrowMarkerSymbol类型,Size表示长度。基本单位是点。除了PictureMarkerSymbol的默认大小是12外,其他的默认的大小都是8。Angle属性设置角度,单位是度。符号是从水平方向开始向逆时针方向进行旋转。它的默认值是0。XOffset和YOffset属性定义样式绘制时离实际对象的偏移距离。两个属性都是在打印的点中,默认值是0,值可为正和负。负数表示相对于对象向下偏移和向右偏移,当然正数表示向上和向左偏移。Size、XOffset和YOffset在打印机点上1/71英寸大小。
       下面的图展示了一些标记样式:

       标记符号的旋转指定到数学表达中,下图展示了标记符号的旋转:

       下图展示了一些简单的标记样式:
       
       下图展示了一些箭头标记样式:
       
       下图展示了一些图表标记样式:
       
       下图展示了一些图片标记样式:
       
       下图展示了一些多层标记样式:
       
       更多信息,参见:

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


Line symbols

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

Fill symbols

下图展示了填充符号的类结构视图:

       下图展示一些填充符号样式:

       IFillSymbol接口呈现了两个属性,Color和Outline,他们是所有填充符号类型都拥有的属性。
在ArcOjbects中,IFillSymbol被所有的更专业的填充样式类型所继承,有两个可读可写属性。Color属性控制这基本的填充,在下表所示,可以使用IColor类型进行设置。

       Outline属性在ILineSymbol中的设置,被绘制到填充的外边框。不同的填充符号表达了一个多边形的面积和边框如何绘制。默认的外边框线是一条SimpleLineSymbol实线,你也可以使用任何类型的线样式作为外边框线。外边框线的中线在对象的边沿上,所以,一个宽度为5的外框线将重叠填充符号可见的数量。

       更多信息,参见:

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

Text 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,如需转载请自行联系原作者

ArcGIS Engine中的Symbols详解相关推荐

  1. ArcGIS 栅格函数在线调用详解

    ArcGIS 栅格函数在线调用详解 导读:ArcGIS从10.0版本开始引用镶嵌数据集,并且第一次在影像中加入栅格函数(raster functions),使得影像的呈现和信息提取与GIS紧密的结合起 ...

  2. ArcGIS engine中Display类库 (局部刷新)

    转自原文 ArcGIS engine中Display类库 (局部刷新) Display类库包括了用于显示GIS数据的对象.除了负责实际输出图像的主要显示对象(display object)外,这个类库 ...

  3. ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route

    前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...

  4. Asp.net中GridView使用详解(引)【转】

    Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...

  5. Linux中iptraf命令详解(IP局域网监控工具)

    2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03   作者:佚名    ...

  6. ArcGIS Engine中空间参照(地理坐标)相关方法总结

    转自原文 ArcGIS Engine中空间参照(地理坐标)相关方法总结 1.创建空间参考 /// <summary> /// 根据prj文件创建空间参考 /// </summary& ...

  7. ArcGIS Engine中的8种数据访问【转】

    原文地址没找到... 据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文主要介绍一下以下八种 ...

  8. js路由在php上面使用,React中路由使用详解

    这次给大家带来React中路由使用详解,React中路由使用的注意事项有哪些,下面就是实战案例,一起来看一下. 路由 通过 URL 映射到对应的功能实现,React 的路由使用要先引入 react-r ...

  9. Linux中etc目录详解

    Linux中etc目录详解 /etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc   or/etc/rc.d   or/etc/rc*.d   启动.或改变运行级时运行的sc ...

最新文章

  1. python之高级的文件操作shutil模块
  2. php数组array_push()和array_pop()以及array_shift()函数
  3. canvas粒子动画
  4. leetcode 525. 连续数组
  5. 【转】Zookeeper 安装和配置
  6. ubuntu不会自动休眠_关机、睡眠、休眠有啥区别?微软说非特殊情况不要关机
  7. goolge hacks
  8. java文件指针,Java 测试文件指针,java测试指针,两种方法打开文件并进行内
  9. linux脚本定义量,Linux上增加自定义脚本的展现量
  10. 磁力泵的结构特点及使用与维修
  11. Drilldown饼状图
  12. 文件夹中的文件在另一程序被打开
  13. 使用kubeadm安装k8s
  14. 酷炫cmd命令行工具——windows terminal的详细配置
  15. 绘制一只奥特曼DIY
  16. 孙溟㠭绘画篆刻——《梦》
  17. 【魔方攻略】SQ1魔方教程(原创)
  18. 坚持玩游戏为什么会这么容易
  19. MPLS之LDP的工作原理和配置
  20. java压缩和解压tar包,tar包、压缩与解压缩

热门文章

  1. 14个顶级开发社区 [程序员]
  2. python操作符笔记
  3. django数据模型字段和通用参数说明
  4. Managed Extensibility Framework (MEF)
  5. Windows Server 2012 R2 WSUS-11:经典的客户端排错操作
  6. Flash ActionScript (23)三天学透as3.0之第二天
  7. NSDate获取当前时区的时间
  8. 【转载】C#编码标准━━项目设置和项目结构
  9. Redhat 图形模式与命令行模式的切换
  10. (五)磁盘存储空间的管理