ArcGIS制图表达技术-制图表达原理

by 李远祥

在讲述原理之前,需要对上一章内容进行一些必要的补充说明。既然制图表达有很多优势,是不是什么情况下都可以使用制图表达技术呢?如果有以下的一些特殊的要求,那么,可以毫不犹豫的使用制图表达

•标准的符号(Symbology)不满足制图要求/规范

•一套空间数据,生产多种制图产品

•需要更加灵活的制图

•专业的地图制图出版

第一点是最需要权衡是否使用制图表达的,因为在ArcGIS制图体系里面,标准的符号技术已经能解决绝大部分问题,只要适当使用一些技巧,也就能无限的贴近制图规范。但是,如果通读了制图规范之后,发现有些符号规则是无法在标准符号体系里面实现的,那就只能考虑使用制图表达了。

第二点是制图表达的特点,允许将多个制图方案(或者说是多种配色风格)保存下来,并随时可以快速更改的,有这样的需求,应该果断使用制图表达。

第三点则是对地图本身的要求。如果希望像PS或coredraw那样灵活进行绘图和处理的,那么在ArcGIS中只能使用制图表达,制图表达里面可以进行自由的绘制和渲染。

第四点是具体的工作模式了,如果是用作专业的地图出版,那就要求非常高了,那就只能用制图表达来满足求生产要求。

制图表达能够很好的解决以下的几个大问题:

•制作更美观的地图

•满足精确定义的制图规范

•使用一套空间数据,生产多种制图产品

•减少人工制图编辑的工作量

•避免使用其他图形编辑软件来二次处理地图产品

只要确定了需要使用制图表达,那接下来就可以根据制图表达流程进行制作了。使用制图表达之前,建议是先做一部分的标准符号渲染,然后再进行转换,这样才可以减少相当一部分的工作量。下图是其基本的操作流程

最快捷的方式在图层渲染做好后,转换为制图表达,ArcGIS会默认分解原来的标准符号规则到制图表达规则中,这样可以减少一些规则的设置。在图层的右键菜单,选择【将符号系统转换为制图表达】,然后在弹出框中输入制图表达的名称,以及规则ID字段名、覆盖字段名,点击确定之后即可实现。如下图

RuleID字段和Override字段分别尤其特殊的作用。其中RuleID 字段是用作记录某个要素所使用的制图表达规则,Override字段则是个blob字段,用于存储制图表达规则特定于要素的覆盖值,那就是说,如果没有任何的规则适用,采用的是像手工编辑那样的修改,这个字段记录的就是这些没依规则的修改值,可以夸张的说,这个字段记录的就像CAD一样的信息。如上一章节提到的运动场的效果,就是完全记录在这一个字段中,ArcMap读取这个字段的信息进行了重新绘制。

制图表达是将其规则和图形绘制保存在数据当中,因此使用了制图表达之后的featureclass就不需要使用mxd来表现了,在数据加载的时候可以选择使用具体的某个制图表达来显示图层。如果一个图像像表达多种风格的话,可以再新多个制图表达,不同的制图表达是独立开来的,会在新的RuleID和Override字段中记录下来,就像下图,多个制图表达就是用多套RuleID和Override字段来区分。

可以看到下图就是多个制图表达记录在数据当中,可以通过左侧的制图表达进行选择进行切换不同的显示方案。

我们可以开看看一个简单的例子,做一个行政区面发光的例子。按照之前所说的流程,线将数据加入到ArcMap中,做一个唯一值渲染将不同的行政区进行区分,并转换为制图表达如下图

转换之后会默认增加一个图层,图层的名称为原来图层名称加上“_rep”,转换后可以将原来的图层删除掉。

在Rep图层中双击或者右键到图层属性,可以看到转换后ArcMap会将制图系统转换到制图表达中去。每一个规则就是当时使用唯一值渲染的唯一值进行区分。这就是我们为什么要先进行简单的符号渲染,然后才转制图表达的原因,确实省掉我们重新划分制图表达的工作。

每一规则都可以在属性值中查看出来,例如打开属性表,可以看到RuleID字段,Override字段默认是不显示的,可以在属性表设置【打开所有字段】来看到它。RuleID显示的名称都是以划分的规则名称名来记录(注意:这个名称不是制图表达规则,它是为了显示当前要素使用了哪一个规则集合而已,真正应用的规则不在属性表中查看)

制图表达规则的查看和设置,必须在制图表达的设置面板中进行设计。选中某一个规则名称,然后点击右上角的加号,弹出制图表达的规则集合,如下图所示

在制图表达中,没有标准符号那么严格规定,标准符号的使用都是严格的定义的,点要素只能用点符号渲染,线要素只能用线符号渲染。但制图表达不一样,它用的是规则,而不是符号,所以,面要素可以用面去显示,也可以用点去显示。每一个要素类型都可以自定义不同的符号,使用不同的规则进行组合。这对于初解除制图表达的人可能非常困惑,但一旦一起来的话,就会发现这些规则组合起来几乎解决了所有的符号渲染问题。

下面我们其中一类面分类进行一个缓冲区的显示,对面要去进行内收缩操作,这类似于使用buffer工具去处理数据一样,但制图表达中并不会产生新的数据。最终的结果就是导致了“江西省”在面填充部分对往边界内收缩了5pt(注意:制图表达设置的单位为pt,因此,在使用全必须先确定出图的比例尺,然后固定下来,各种设置值都要最终换算为pt单位)

其余的几个省份,我们也可以逐个设置铜同样的规则,这样线做成一个缓存面的效果。接下来可以设置不同的面效果,例如做发光效果其实就是一个色彩渐变的效果,可以在右上角的小箭头符号点击,选择【渐变】

渐变效果需要设置一些参数,如初始的颜色和变化的颜色,将颜色1设置为主要显示的颜色,颜色2为过度颜色,为了带到发光的效果,一般使用白色,这样的过度会相当不错

每一个类型都设置对应的渐变参数,最后效果可以看看

中间的这些空隙是专门留出来的,其作用是要做一个比较合理的阴影,让这些发光的面看起来更有立体感(这是制图人员的一种天生的直觉,做的时候就会预留下来)制图表达默认会将符号分解,例如面要素,自动分解为填充的面和线。上一步就是针对面进行了一些调成和设置。接下来就是对线进行一些调整。选中线符号,可以对线进行规则设置。例如这里就先对线进行颜色设置,然后添加一个规则,对线整体偏移一个距离,并调整颜色比原来填充的颜色深一个色阶。如下图,江西省区界加入了深颜色后,变得更有立体感一些。

接下来就是每一个类别设置一次对应的参数,设置好后,可以看看整体的效果

这里再回顾一下刚开始使用标准符号制作的地图,制图表达的视角效果是能够给人带来一定的冲击的。

标准符号渲染图

从上述例子可以看出来,制图表达的能力非常的强悍。在经过一定的训练之后,对这些规则掌握熟练后,几乎可以制作出PS类型的效果。

ArcGIS制图表达Representation-制图表达原理的更多相关文章

  1. ArcGIS制图表达Representation实战篇2-河流渐变与符号旋转

    ArcGIS制图表达Representation实战篇2-河流渐变与符号旋转 by 李远祥 上一章节主要是从实战中使用规则和几何效果,如何分解制图规则.本章主要还是通过一些特殊要求如河流线宽渐变和符号 ...

  2. ArcGIS制图表达Representation实战篇4-自由式制图表达

    ArcGIS制图表达Representation实战篇4-自由式制图表达 by 李远祥 上一章节关于制图表达的控制点中已经介绍过制图表达的编辑功能,利用制图表达的编辑功能,可以实现一些规则以外的效果. ...

  3. ArcGIS制图表达Representation实战篇3-控制点

    ArcGIS制图表达Representation实战篇3-控制点 by 李远祥 这一章讲述的是一个非常专业的名词,叫控制点.此控制点非测绘行业术语的控制点,而是制图表达里面的控制点,所以不能混为一谈. ...

  4. ArcGIS制图表达Representation实战篇1-边界线和行道树制作

    ArcGIS制图表达Representation实战篇1-边界线和行道树制作 by 李远祥 即便是有了一些制图表达的基础,很多人还是对ArcGIS制图表达理解停留在表面,因为没有实际的强化训练是很难体 ...

  5. 词向量( Distributed Representation)工作原理是什么

    原文:http://www.zhihu.com/question/21714667 4 个回答 83赞同反对,不会显示你的姓名 皮果提 刘鑫.莫教授要养猫.Starling Niohuru 等人赞同 ...

  6. 如何在ArcGIS中恢复MapGIS制图表达信息

    1.输出符号信息 Map2Shp软件中提供了图示表达转换功能,提供对MapGIS图形特征可视表达信息的跨平台支持.若要使用该功能,必须在转换时,"图元参数输出方式"选定为[图元参数 ...

  7. ArcGIS for Android离线数据编辑实现原理

    来自:http://blog.csdn.net/arcgis_mobile/article/details/7565877 ArcGIS for Android中现已经提供了离线缓存图片的加载功能,极 ...

  8. ArcGIS教程:“流向”的工作原理

    获取表面的水文特征的关键之中的一个是可以确定从栅格中的每一个像元流出的方向.这可通过流向工具来完毕. 该工具把表面作为输入,然后输出一个显示从每一个像元流出方向的栅格. 假设选择了输出下降率栅格数据选 ...

  9. ArcGIS制图表达Representation-规则和几何效果

    ArcGIS制图表达Representation-规则和几何效果 by 李远祥 对制图表达运用是否纯熟,主要是看对制图表达规则的理解和巧妙运用.前面章节已经粗略介绍过制图表达的运用,通过一些简单的规则 ...

随机推荐

  1. 使用for循环运算

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. ASP.NET AJAX 创建类

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...

  3. 一个不应该犯的错octave

    今天在完成Andrew NG的机器学习神经网络作业,在实现花费函数的时候,没有使用循环,直接向量计算.前面都想的挺好的,很快就想到了如何使用向量来计算,可是在扩展y的时候,犯了一个超级傻的错误. y是 ...

  4. UVA 1386 Cellular Automaton

    矩阵快速幂. 样例是这样构造矩阵的: 矩阵很好构造,但是500*500*500*logk的复杂度显然是无法通过这题的. 其实本题构造出来的矩阵是一个循环矩阵,只需直到第一行或者第一列,即可直到整个矩阵 ...

  5. Android L(5.0)源码之手势识别GestureDetector

    本人新手,最近下了Android L的源码,正在研究手势识别,能力有限,现总结如下: Android识别触摸屏手势使得用户体验大大提高.在View类中有个View.OnTouchListener内部接 ...

  6. Spring3.2新注解@ControllerAdvice

    Spring3.2新注解@ControllerAdvice   @ControllerAdvice,是spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强.让我们先看看@Control ...

  7. 全方位分析Objcetive-C Runtime 分类: ios技术 2015-03-11 22:29 77人阅读 评论(0) 收藏

    本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 ...

  8. java细节,细的你想象不到

    一. 构造方法每次都是构造出新的对象,不存在多个线程同时读写同一对象中的属性的问题,所以不需要同步 . 如果父类中的某个方法使用了 synchronized关键字,而子类中也覆盖了这个方法,默认情况下 ...

  9. ios framework 开发

    ios framework 开发 之 参考 ios framework 开发 之 实战 iOS workspace 依次编译多个工程

  10. iOS 之 编外知识点

    iOS 使用github iOS 开源库介绍 iOS 优质方案 iOS 开发framework 后端数据库使用 Bomb方案 iOS 错误及解决汇总 后台 之 Bmob 申请苹果企业账号