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

by 李远祥

这一章讲述的是一个非常专业的名词,叫控制点。此控制点非测绘行业术语的控制点,而是制图表达里面的控制点,所以不能混为一谈。

在ArcGIS制图表达里面,控制点是一个非常有意义的存在。一般的情况下,我们是没能发现它的存在的,因为它很多时候都是默认作用在端点上。例如之前的实部相交的例子,模式的应用就直接作用在端点上,这个端点的实际意义,就是我们所谓的控制点,但其物理上不是控制点而已。

仔细想想就可以看出,制图表达上的控制点,其实就是规则和几何效果作用的起点。如果制图表达的效果默认是在端点启用的话,那么控制点就是在线上强制开启的端点,强制要求在该点上启用规则。首先我们来回顾一下之前的实部相交效果,

这个例子虽然在端点出实现了实部相交,但在其他的一些部分,还是出现了虚线很虚的状况,尤其是折点的位置,就如下图绿色圈住的部分。

我们最希望的就是在这些地方也能像两根线相交处一样,能够实现半模式的效果,这样就可以实现在折点处虚线也是实部相交。其实这个效果非常简单,就是使用控制点强行改变折点的属性,让其带有端点的效果。接下来我们可以看看怎么去操作这个步骤了。

首先,要将编辑工具和制图表达工具调出来,因为我们需要对线上折点进行编辑。开启编辑,并使用制图表达工具条的选择工具,选中摸一条线,进入节点编辑模式

留意其所有节点的显示状态,都是一个浅蓝色的正方向。接下来在制图表达工具条中点击钢笔符号,下拉选择工具类型,可以看到有几项关于控制点的选项

选择【插入控制点】工具,鼠标指针会变为其插入控制点状态,这样在线上任意一点点一下就可以插入控制点。这里对应的要求,就是在折点处插入一个控制点。用这个工具在线上蓝色正方形上点一点,这个正方型就会变成倒立的菱形。菱形就是控制点的显示符号。如下图所示

取消选择之后,就可以看到在这个折点处,也应用了半模式的显示,变成了是不相交。

其接下来的思路就是非常简单粗暴,控制点就像万金油一样,哪里需要就点哪里,这样通过增加控制点来实现折点处也是实部相交。当然也有人会问,如果有非常多的线和非常多的折点需要插入控制点,那岂不是非常麻烦?是的,不过,ArcGIS已经在一开始已经想到这个问题了,所以在制图工具箱里面已经加入了批量处理功能,而且还可以非常友好的处理角度。在【制图优化】-【按角度设置控制点】中,选中图层,然后输入一个最大的角度

点击确定后,马上可以看到整体效果,所有的折点处会插入对应的控制点,通过控制点来实现了所有的折点都是实部相交。如下图

这个工具是一个非常好用的工具,尤其是一些境界线,是有要求角度在什么范围内折点处必须是实部相交,通过这个工具可以非常快速的实现规范要求。当然,很多时候我们也可以学以致用,充分发挥自己的想象力。例如需要检查数据是否有尖锐的角度(一般是管线,因为管线很少会出现呈低于90度的交接的),所以,可以设置虚线端点处使用一个非常特殊的符号,然后使用半模式,通过上述工具,执行一个不大于90度的控制点批量插入。其最终会将那些尖锐角度的拐点全部检查出来。

虽然数据检查跟图关系不大,但实际上还是可以使用一些工具实现曲线救国的。所以说,很多时候技术只是支撑,关键是想象力和灵活运用。

顺便提一下,控制点是对规则应用的重新覆盖,所以数据会存入到override字段中。前面章节也提交过,override字段保存的东西越多,制图表达的性能就越慢,因此,对于覆盖的操作,不到万不得已,不要随便使用,也会给后期的修改带来一些麻烦。

在看下面一个例子,就是典型的模式+控制点的运用。一些国界类符号,有特殊显示的,要求在折点处变现的符号需要自动转变(跟规定的一般符号有一定的差异),如下图

这种到的工字形符号,在折点处除了要是不相交外,还需要保留一个完整的符号,并且符号两端需要与线方向保持垂直。这类型的规则其实并不懒,可以将其分解成两个层。一个是虚线层,就是使用我们之前说的半模式规则去实现。然在在顶上再加一个点符号层去表达,这个点符号层的模式、间距都必须跟线符号层保持一致。然后在【标记】的放置位置使用在端点处【两侧】显示,并勾选上与线成角度。

设置好这个规则之后,当然就是使用上面的工具批量插入控制点,这样就可以实现其效果了。至于其他的一些非常难实现的效果,例如山崖等,可以想想通过多种组合图层的方式,多种规则叠加方式去实现了。

同样的方式可以实现管线的效果,管点处使用的是一个符号,然后两端等距离处放一个特殊的符号,并与线成一定角度。如下图

其做法也是类似,只是有两个点来代替原来的一个点图层显示。

总结

总体来说,控制点可以实现以往非常多的难以实现的效果。它的规则的改变能力非常有效,并且辅助完成高难度动作。

ArcGIS制图表达Representation实战篇3-控制点的更多相关文章

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

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

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

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

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

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

  4. ArcGIS制图表达Representation-符号制作

    ArcGIS制图表达Representation-符号制作 by 李远祥 在ArcGIS的符号里面,存在着两种符号体系,一种是传统的标准符号体系,一种是制图表达符号体系.标准符号几乎被绝大部分ArcG ...

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

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

  6. ArcGIS制图表达Representation-制图表达使用须知

    ArcGIS制图表达Representation-制图表达使用须知 by 李远祥 前面章节也介绍了一些制图表达的适用范围和场景,如果有觉得需要使用制图表达去完成其工作的话,还需要注意制图表达的一些技术 ...

  7. ArcGIS制图表达Representation-制图表达原理

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

  8. ArcGIS制图表达Representation-制图表达介绍

    ArcGIS制图表达技术-制图表达介绍 by 李远祥 在基于GIS数据的制图中,大部分都是使用的数据+符号应用的这种模式.这种模式已经被应用很多年,而且也是非常成熟.对应在ArcGIS体系里面,就是数 ...

  9. 二、Redis基本操作——String(实战篇)

    小喵万万没想到,上一篇博客,居然已经被阅读600次了!!!让小喵感觉压力颇大.万一有写错的地方,岂不是会误导很多筒子们.所以,恳请大家,如果看到小喵的博客有什么不对的地方,请尽快指正!谢谢! 小喵的唠 ...

随机推荐

  1. Codeforces#364Div2

    A题: 题意:给定一些数,然后每两个组成一对,要求每对的和的大小相同,输出这样的组合 分析:直接模拟就行 #include <iostream> #include <cstdio&g ...

  2. HDU 2809 God of War

    状压DP.我认为是数据水了,用打死了哪几只作为状态,AC代码只需要保存当前状态的最大血量,完全没有考虑攻击力大小. 个人认为正确DP应该这样的:dp[状态][等级],但这样写不能AC,时间复杂度会很大 ...

  3. 【亲测】Python:解决方案:Python Version 2.7 required, which was not found in the registry

    好久不更新随笔了,今天因为数据可视化作业,想抓取一些人人网好友关系数据,于是开始尝试python,用到numpy模块,安装的时候提示: 'Python Version 2.7 required, wh ...

  4. UVa11555 - Aspen Avenue

    今晚CF GYM A题,神坑.. 原题: Aspen Avenue ``Phew, that was the last one!'' exclaimed the garden helper Tim a ...

  5. 16、手把手教你Extjs5(十六)Grid金额字段单位MVVM方式的选择

    这一节来完成Grid中的金额字段的金额单位的转换.转换旰使用MVVM特性,总体上和控制菜单的几种模式类似.首先在目录app/view/main/menu下建立文件Monetary.js,用于放金额单位 ...

  6. java实现FFT变换(转)

    源:java实现FFT变换 /************************************************************************* * Compilati ...

  7. Statemen接口对象

    利用Statement接口实现数据表的更新和查询操作 -取得Statement接口对象:Statement createStatement(int resultSetType, int resultS ...

  8. UITableView 之 取消选中

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [table ...

  9. PHP批量上传一次点击选中多个

    首先前端部分需要设置好控件,这里使用HTML5 中 input 的新增属性 multiple 可以很好的解决了以往上传多个需要点击多次"上传按钮"的麻烦: <form act ...

  10. spark连接mongodb

    1.添加依赖 hadoop和mongodb的连接器 <dependency> <groupId>org.mongodb.mongo-hadoop</groupId> ...