ArcGIS制图表达Representation实战篇2-河流渐变与符号旋转
ArcGIS制图表达Representation实战篇2-河流渐变与符号旋转
by 李远祥
上一章节主要是从实战中使用规则和几何效果,如何分解制图规则。本章主要还是通过一些特殊要求如河流线宽渐变和符号的角度旋转,介绍制图表达的另外两项技术--规则覆盖和制图表达工具。
在制图表达原理的章节中已经介绍过制图表达的两个字段,rule_ID和override ,之后的章节都是围绕这规则来讲解(也就是rule_ID记录的规则),那么本章节就开始介绍override 字段所显示的内容。原则中,override 记录的是规则覆盖的内容。先来看看河流线渐变和测站符号垂直河流旋转的效果。

河流渐变效果

符号自动旋转效果
河流线渐变
首先来看河流线渐变效果。图上的效果是一种夸大的效果,主要是为了让技术人员能够看清楚其具体效果的变化。一般情况下,河流线的这种从发源处线条比较幼细,然后中游稍微宽大,下游逐渐变大的效果,会出现在小比例尺的大图中,基本上是使用线宽渐变的效果。
在传统的线符号显示中,主要是粗细均匀的显示。如果要实现线条粗细渐变,则需要采用制图表达的几何效果,用【锥状面】来渲染线条。在使用制图表达之前,首选要确保一项非常重要的事情,就是河流的流向必须是正确的。我们可以用gis数据的数字化方向来表达流向。下图是河流的标准符号显示

先给予河流一个特殊符号渲染,用箭头符号渲染它,箭头指向终点(即指流向),如果发现有错误的地方,通过编辑进行线要素的反向操作。


如果发现方向错误,用编辑器双击选中,使用右键进行反向。这一步非常重要,因为如果流向不对,或存在逻辑性错误,会导致后来的效果乱七八糟。

确保所有的流向都没有问题,那就可以切换为原来的河流模样,并转为制图表达

在制图表达规则中,增加一个面符号图层,设置为蓝色,并删除掉原来的线符号图层。

点击加号,增加【锥状面】效果

点击确定之后几乎出现让人崩溃的画面,如下图所示

这个其实不要紧,因为制图表达规则在每一要素之间都应用了规则。由于河流是分段,所以出现这种每一个线要素都是锥形显示。那么接下来就是使用制图表达的编辑工具进行制图表达的修改。在菜单空白的地方,右键调出制图表达工具,如下图

同时使用编辑工具打开编辑,这样,通过使用制图表达的选择箭头(是制图表达工具里面的褐色箭头工具,不是编辑工具里面的选择工具),选中后使用右键属性

在属性中切换到制图表达规则,修改这个规则,如果是中间部分可以改为两端大小一样,如下图,这样就有一个很好的衔接。

这些规则的修改,就是存储在override字段里面。所有的河段都修改之后,就可以出下图的渐变效果了。

如果觉得效果不是很明显,不够圆润,可以使用平滑效果进行处理。制图的工作本来就是挑刺和精益求精,所以,多试试其他的效果不是坏事。

如果仔细思考的话,会发现制图表达也有这个编辑工具,这个工具的作用可大了,后面的章节会有更多的介绍。只要是经这个工具编辑过的制图表达,就会存储在override 字段中。
符号旋转效果
某些时候需要针对点符号进行一定规则的旋转。例如水利专题图上就要求测站(等腰三角形符号)参考河流线垂直旋转。
根据标砖符号的方式,是需要增加一个角度字段,设置好角度值,使用符号的高级渲染进行按角度旋转。虽然这样做也能实现旋转,但毕竟每个角度都要手工输入,并且要细致调整,工作量比较大。当然,在标准符号里面笔者也写了个【快速制图插件】去实现这个功能,但如今告诉大家一个arcgis原生的工具也可以实现,不过就必须在制图表达里面才能实现。
首先需要将地图在标准符号下配置好,然后两个图层都必须转为制图表达。如下图

然后要设置地图的参考比例。参考比例可以理解为我们要制作地图的比例尺。例如要制作1:5w的地图,就先缩放到1:5w,然后数据框中设置为参考比例。如下图

然后可以在工具箱里面找到【制图工具】--【制图优化】--【对齐标记】工具,并且设置点符号图层和参考的线要素图层,给定一个搜索距离(如果点是落在线上,这个距离设置一个很小的值就够了,如果点落在线外,则根据自己的数据适当尝试不同的值)。

设置好后点击【确定】就可以了出结果了。笔者曾经在某某水利单位尝试过500个以上的测站,机会是秒算出结果。

之所以介绍这个工具,是因为其实用性很强。其他的一些制图表达工具可以在【制图优化】【制图表达管理】里面找到。其中制图优化里面还有一个【按角度设置控制点】,可以提前预示一下,这也是一个非常好的工具。后面的章节会有所介绍。

总结
从这两个实例中可以看到,制图表达其特性,既可以自由控制制图表达,同时也可以使用工具整体进行优化处理。
ArcGIS制图表达Representation实战篇2-河流渐变与符号旋转的更多相关文章
- ArcGIS制图表达Representation实战篇4-自由式制图表达
ArcGIS制图表达Representation实战篇4-自由式制图表达 by 李远祥 上一章节关于制图表达的控制点中已经介绍过制图表达的编辑功能,利用制图表达的编辑功能,可以实现一些规则以外的效果. ...
- ArcGIS制图表达Representation实战篇3-控制点
ArcGIS制图表达Representation实战篇3-控制点 by 李远祥 这一章讲述的是一个非常专业的名词,叫控制点.此控制点非测绘行业术语的控制点,而是制图表达里面的控制点,所以不能混为一谈. ...
- ArcGIS制图表达Representation实战篇1-边界线和行道树制作
ArcGIS制图表达Representation实战篇1-边界线和行道树制作 by 李远祥 即便是有了一些制图表达的基础,很多人还是对ArcGIS制图表达理解停留在表面,因为没有实际的强化训练是很难体 ...
- ArcGIS制图表达Representation-制图表达介绍
ArcGIS制图表达技术-制图表达介绍 by 李远祥 在基于GIS数据的制图中,大部分都是使用的数据+符号应用的这种模式.这种模式已经被应用很多年,而且也是非常成熟.对应在ArcGIS体系里面,就是数 ...
- ArcGIS制图表达Representation-符号制作
ArcGIS制图表达Representation-符号制作 by 李远祥 在ArcGIS的符号里面,存在着两种符号体系,一种是传统的标准符号体系,一种是制图表达符号体系.标准符号几乎被绝大部分ArcG ...
- ArcGIS制图表达Representation-规则和几何效果
ArcGIS制图表达Representation-规则和几何效果 by 李远祥 对制图表达运用是否纯熟,主要是看对制图表达规则的理解和巧妙运用.前面章节已经粗略介绍过制图表达的运用,通过一些简单的规则 ...
- ArcGIS制图表达Representation-制图表达使用须知
ArcGIS制图表达Representation-制图表达使用须知 by 李远祥 前面章节也介绍了一些制图表达的适用范围和场景,如果有觉得需要使用制图表达去完成其工作的话,还需要注意制图表达的一些技术 ...
- ArcGIS制图表达Representation-制图表达原理
ArcGIS制图表达技术-制图表达原理 by 李远祥 在讲述原理之前,需要对上一章内容进行一些必要的补充说明.既然制图表达有很多优势,是不是什么情况下都可以使用制图表达技术呢?如果有以下的一些特殊的要 ...
- (转)ArcGIS制图技巧
ArcGIS制图技巧(转载自新浪博客) 1 引言 1.1 制图的目的 随着GIS在各行各业的深入应用,各信息化部门和生产单位都逐渐建立起自己的GIS的应用,同时积累了大量的地理数据.随着应用深 ...
随机推荐
- Web 网站 故障常用分析命令
系统连接状态篇: 1.查看TCP连接状态 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn netstat -n | awk '/^tcp/ { ...
- javascript alert,confirm,prompt弹框用法
1. alert是弹出警告框,在文本里面加入\n就可以换行. 2. confirm弹出确认框,会返回布尔值,通过这个值可以判断点击时确认还是取消.true表示点击了确认,false表示点击了取消. 3 ...
- Sematic库系列一
最近在做项目时采用了sematic css 库,由于这个库的资料太少,在做项目中遇到很多问题,在这里做一些记录 1. 下拉框demo HTML 代码 <div class="field ...
- Quartz.NET总结(一)
Quartz.NET总结(一) 前段时间,花了大量的时间,将原先的计划任务,切换到Quartz.NET来进行管理.原先的后台定时服务都是通过计划任务来实现的,但是随着业务增长,计划任务也越来越多,每个 ...
- 13款Linux运维比较实用的工具
本文介绍几款Linux运维比较实用的工具,希望对Linux管理员有所帮助. 1.查看进程占用带宽情况-Nethogs Nethogs 是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽. ...
- FZU 2112 Tickets
这个问题可以转变一下,先要知道有几个连通块,连通块之间肯定需要添加一条边, 还需要知道每个连通块内部需要添加几条边,这个问题等价于求一张图至少需要几笔画成,这个问题的答案是度为奇数的点的个数/2 #i ...
- 【转】IntentService的原理及使用
在Android开发中,我们或许会碰到这么一种业务需求,一项任务分成几个子任务,子任务按顺序先后执行,子任务全部执行完后,这项任务才算成功.那么,利用几个子线程顺序执行是可以达到这个目的的,但是每个线 ...
- 4)Javascript设计模式:Decorator模式
function MacBook() { this.cost = function() { return 997; } } var macbook = new MacBook(); function ...
- FlexGrid简单demo
1.首先加入以下代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...
- 记录一次事故——idea,sbt,scala
没事千万不要点idea的update啊,就算它自己弹出来的也不要管哦. 我们自己的IDE在使用过程中总会有各种settting的配置,更新之后这些都没有了,而且自己本地安装的插件也就都没有了,所以更新 ...