ArcGIS制图表达Representation-制图表达原理
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-制图表达原理相关推荐
- ArcGIS制图表达Representation实战篇2-河流渐变与符号旋转
ArcGIS制图表达Representation实战篇2-河流渐变与符号旋转 by 李远祥 上一章节主要是从实战中使用规则和几何效果,如何分解制图规则.本章主要还是通过一些特殊要求如河流线宽渐变和符号 ...
- ArcGIS制图表达Representation实战篇4-自由式制图表达
ArcGIS制图表达Representation实战篇4-自由式制图表达 by 李远祥 上一章节关于制图表达的控制点中已经介绍过制图表达的编辑功能,利用制图表达的编辑功能,可以实现一些规则以外的效果. ...
- ArcGIS制图表达Representation实战篇3-控制点
ArcGIS制图表达Representation实战篇3-控制点 by 李远祥 这一章讲述的是一个非常专业的名词,叫控制点.此控制点非测绘行业术语的控制点,而是制图表达里面的控制点,所以不能混为一谈. ...
- ArcGIS制图表达Representation实战篇1-边界线和行道树制作
ArcGIS制图表达Representation实战篇1-边界线和行道树制作 by 李远祥 即便是有了一些制图表达的基础,很多人还是对ArcGIS制图表达理解停留在表面,因为没有实际的强化训练是很难体 ...
- ArcGIS制图之阴影效果的表达与运用
一.运用制图表达进行投影表达 在专题图的制作过程中,经常需要将目标区域从底图中进行突显,运用制图表达制作图层投影可以较好地实现这一目的.具体步骤如下: 1.将目标图层存储于数据库中并加载至窗口(sha ...
- arcgis符号方向_ArcGIS制图表达-河流渐变与符号旋转
在制图表达原理的章节中已经介绍过制图表达的两个字段,rule_ID和override ,之后的章节都是围绕这规则来讲解(也就是rule_ID记录的规则),那么本章节就开始介绍override 字段所显 ...
- GIS100例034—ArcGIS河流渐变效果(制图表达)
01 前言 前面我们已经介绍了3几讲的制图表达内容: GIS100例--032ArcGIS制图阴影效果(移动几何)_GIS思维的博客-CSDN博客_arcgis如何设置边界的阴影效果GIS100例-- ...
- ArcGIS 每天一个高级制图技巧:开篇碎碎念
# ArcGIS 每天一个高级制图技巧:开篇碎碎念 开篇说明 首先,在这个系列,我不会再写大片的教程和说明.碎片化的时代适合碎片化.精简的.易于理解的内容,所以在该系列中我就不会再长篇累牍的写作了. ...
- ArcGIS 每天一个高级制图技巧:2 浮雕效果
ArcGIS 每天一个高级制图技巧:2 浮雕效果 文章目录 ArcGIS 每天一个高级制图技巧:2 浮雕效果 效果展示 实现方法 实现思路 实现代码 arctoolbox工具箱 结尾 效果展示 如题所 ...
最新文章
- iOS12系统应用开发基础教程发送邮件
- java并发之TimeUnit
- mysql物理优化_mysql物理优化器代价模型分析【原创】
- android 模块自动加载,Android 之ko模块的自动加载
- mac启动mysql,apache,php
- 作者:孙宗哲(1991-),男,东北大学软件学院硕士生
- spark 存入hbase_Spark DataFrame写入HBase的常用方式
- Linux下安装Apache Maven安装
- css3如何链如外部字体,微信小程序引入外部字体总结(针对安卓加载缓慢问题)...
- OC 内存管理之手动内存管理MRC
- Android应用方法数查看,查看size是否超过65k
- 机器人系统辨识——基于MATLAB的非线性系统辨识
- 精通Groovy_B 循环, 范围, 集合, 映射, 闭包, 类, UT
- Unity3D 2D游戏摄像机的跟随实现
- 雨水弃流装置详细说明
- ADRC自抗扰控制自学笔记(包含simulink仿真)(转载)
- 毕业设计 推荐系统设计与实现 协同过滤推荐算法
- 自定义Font Icon
- 整点报时 单片机 c语言,单片机整点报时编程
- 零基础学习数据分析,这篇文教你绕过这些坑
热门文章
- linux :Tar 命令参数详解
- 机器人SLAM建图地图类型讨论
- html源码加密ensure-china_php源码加密方法详解
- JSP 九大内置对象及作用域(源码刨析,建议收藏)
- 案例-两面翻转的盒子(CSS3)
- Open3d之自定义可视化
- python重构迭代_Pylint:让你的 Python 代码保持一致
- Spark Master资源调度--worker向master注册
- iOS 使用NJKWebViewProgress做webview进度条(加载网页时获取加载进度)
- Learning Modern 3D Graphics Programming笔记