ArcGIS制图表达技术-制图表达介绍

by 李远祥

在基于GIS数据的制图中,大部分都是使用的数据+符号应用的这种模式。这种模式已经被应用很多年,而且也是非常成熟。对应在ArcGIS体系里面,就是数据+地图文档的模式。这种模式的好处就是能够保存数据和地图的独立性,任何的地图渲染都不会影响数据本身。

虽然这种应用已经非常成熟,也有很多的单位和个人使用这种方式实现了不少的地图成果和产品,以及发布一些在线地图。但这种模式有普遍存在一些难以解决的问题,就是地图的展示规则过于依赖数据,例如唯一值渲染需要有分类的字段,图标渲染需要多个数值型字段等;符号规则相对简单,一些特殊的符号形式很难通过标准的符号技术实现;对于具有非常严紧规范的地图生成(如出版地图)来说,表现能力还是不足够。

Esri很早就注意到这一点,在ArcGIS9.x的时候就推出了【制图表达】技术,用于解决上述的一些问题,只是国内很少有单位和企业关注,导致这项技术在国内没有推广开去。用过CAD的人基本上都有一种感觉,就是绘制出来的图形就是最终的图形,尽管绘制的类型分为点、线、面、文字(跟GIS类似),但绘制出来的时候是带有符号信息的,这就是CAD所见即得的做法。有如photoshop和coredraw这类型的软件,直接就是绘制最终的图形。而GIS不一样,GIS由于要表达的是真实的地理位置,因此绘制出来的都是测绘数字产品,用直接的话来说,就是将所有的图形都坐标化后进行图形重构,如点连成线、线围成面,都是简单的几何图形,不带任何的符号信息。因此,GIS数据要达到交互操作的效果,还需要进行配图工作,让这些“丑陋”的数据穿上漂亮的外衣,最终成为地图。

一般来说,要实现地图的制作,使用传统的数据+地图文档方式即可实现,能够达到使用要求,但对于出版地图来说,会有更高的地图制作要求;还有一部分人对地图天生的执着,希望进一步来提升地图的表现能力,在数据+地图文档 这种模式下,还是很难发挥出来。

笔者从2010年就开始接触制图表达,并不遗余力的研究其优缺点和使用价值。经过了非常长的时间使用,发现ArcGIS的制图表达技术确实是一项很好的技术,在图形的表达上有跟多的优势,其表现能力可以更加接近现实世界。之前我也引用地图学的一些经典论调,地图是显示世界的抽象描述。如果使用了制图表达去制作地图的话,地图就变得更加直观了。下面我们一张图可以看出制图表达技术的特点(这种图笔者在很多次制图讲座中均有引用)

左边第一张图是GIS数据,数据是点线面基础图形,原则上是不带任何的符号和色彩的,为了显示数据,GIS软件会默认给定数据一个符号。

中间的图是初步可以称得上是地图,因为已经根据其数据的特性进行了符号配置,例如河流用蓝色线符号表示,绿地用绿色面状填充表示。

右边的那种图就是用了制图表达之后的地图,从图上可以看到河流已经应用了一些跟现实相似的规则,河流发源部分符号相对幼细,下游部分相对宽广,线要素就用了一个逐渐变宽的面来表达。

从这三张图可以看到,数据、地图、制图表达的区别。制图表达使用后,地图的显示更加接近现实规则。制图表达技术通过一些列的规则来约束地图的显示,这些规则可以相互的叠加使用,从而实现不同的显示效果。

可能上述的文字都不足以描述制图表达的一些具体的优势,那么我们先来看制图表达做的几张地图,这样更能帮助我们了解制图表达的作用(尽管这几张图在2010年的时候已经制作,那时候是使用的是ArcGIS9.3 进行制作的)

上图是行政区划的面状表达,传统的方式是非常扁平的色彩渲染,用纯色去显示行政区面。利用制图表达,可以实现类似coredraw的色彩渐变和发光效果,关键是我们使用的是GIS数据,而不是在一个制图软件中重新绘制这些图形去实现。

再来看这个建筑面,在制图表达中使用了简单的规则,就可以使二维的建筑面看起来具备简单的立体效果。

再看具体的符号规则,在边界类中使用了虚线符号,能够让边界交汇处符号实现实部相交,而不是随机的虚线显示(一般使用虚线符号,在端头处是符号是随机的,可以存在空白对接)。

上图是一个运动场的效果,左边是原始数据,右边是经过制图表达处理后的地图,右图更加接近现实效果。

看了这几张图之后,估计大家已经对制图表达能做到什么效果已经心中有数了。后面的章节会从制图表达的原理、使用、技巧方面进行全面论述。

ArcGIS制图表达Representation-制图表达介绍的更多相关文章

  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实战篇3-控制点

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

  5. 使用python制作ArcGIS插件(1)工具介绍

    使用python制作ArcGIS插件(1)工具介绍 by 李远祥 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作.相对于以往9.x系列,addin的无论是 ...

  6. ArcGIS Engine中的重点类库介绍

    转自原文ArcGIS Engine中的重点类库介绍 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他类库提供服务的组件.System ...

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

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

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

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

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

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

随机推荐

  1. 最简单的ajax调用webservice

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestHelloWorld ...

  2. HUST 1371 Emergency relief

    状态压缩. 每一个人所需的物品对应一个数字,统计一个每个数字有几个.每一种提供物品的状态也对应一个数字,然后暴力判断. #include<cstdio> #include<cstri ...

  3. MySQL引擎简述

    MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型IN ...

  4. 【HNOI2013】题解 bzoj3139~bzoj3144

    比赛 题目:  http://www.lydsy.com/JudgeOnline/problem.php?id=3139 题解: 3$\le$N$\le$10,比较明显是一个搜索题,一开始我是直接搜了 ...

  5. ucos内存管理原理详解

    应用程序中为了某种特殊需要,经常需要动态的分配内存,而操作系统的特质置一,就是能不能保证动态内存分配的时效性,也就是说分配时间是可确定的 Ucos提供内存分配功能,它将内存空间分为两级管理,将一块连续 ...

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

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

  7. OI队内测试——石门一

    T1: 题目大意: 给你一个立方体,每个面上有些数字,给你一个数字K,你可以玩K轮游戏, 每轮你会将每个面上的数均分为4份,分给相邻的面,求K轮游戏后,上面的数字是 依次给你前.后.上.下.左.右的起 ...

  8. 键盘上下键时间 js

    ocument.onkeydown=function(event){ var e = event || window.event || arguments.callee.caller.argument ...

  9. javascript---jquery (1事件)

    1.例子说明 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  10. DataTable distinct 去重复

    有时我们需要从DataTable中抽取Distinct数据,以前总是以对DataTable进行foreach之类纯手工方式获取. 近来发现DataView可以帮我们直接获取Distinct数据,汗一个 ...