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. window.location获取URL中各部分

    博客分类: JAVASCRIPT JavaScriptASP.netSchemeASP网络协议  URL即:统一资源定位符 (Uniform Resource Locator, URL) 完整的URL ...

  2. [即时通讯]openfire启动失败解决办法

    当你发现你的电脑上的openfire无论你是重新安装还是重启都无法启动的情况下你可以按照我下面写的那些终端指令来启动你的openfire不用再去重新做你的系统了. 一般你发现你的openfire打开出 ...

  3. shell之crontab

    一  crontab高级用法 Crontab 主要是在做排程, 通常一般寫法大概都是如下: 0 0 * * * /usr/local/www/awstats/cgi-bin/awstats.sh 這種 ...

  4. 一道关于 precision、recall 和 threshold关系的机器学习题

    Suppose you have trained a logistic regression classifier which is outputing hθ(x). Currently, you p ...

  5. LPC1788的IIC使用

    #ifndef __IIC0_H_ #define __IIC0_H_ #include "common.h" #include "delay.h" //IIC ...

  6. GCJ 2008 APAC local onsites C Millionaire

    时间复杂度很大.dp[i][j]表示第i轮 j这种状态的概率. #include<cstdio> #include<cstring> #include<cmath> ...

  7. S3C2440时钟系统详解

    在讲述系统时钟之前,因为这些设备都是挂靠在系统时钟上的,所以必须先说系统时钟,S3C2440的时钟系统如下 外部时钟源分两种,晶振或者外部频率,由om3-2选择,时钟电路根据两种选择也有两种 我们来分 ...

  8. IOS开发者证书申请及应用上线发布详解(2014版)

    其实一直以来我都想做一个最齐全的上传应用到appstore的教程,但一直狠不下心,今天凌晨2点12分,我鼓起勇气写教程,来吧不多说.登录开发者中心:http://developer.apple.com ...

  9. 配置Linux Kernel时make menuconfig执行流程分析

       在编译内核前,一般是根据已有的配置文件(一般在内核根目录下的arch/arm/configs/文件夹下,把该目录下的xxx_defconfig文件拷贝到内核根目录下,并重命名为.config)来 ...

  10. Node.js timer的优化故事

    前几天nodejs发布了新版本4.0,其中涉及到一个更新比较多的模块,那就是下面要介绍的timer模块. timers: Improved timer performance from porting ...