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

by 李远祥

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

时间: 2024-08-03 07:40:27

ArcGIS制图表达技术-制图表达介绍的相关文章

ArcGIS Engine中的重点类库介绍

转自原文ArcGIS Engine中的重点类库介绍 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他类库提供服务的组件.System类库中定义了大量开发者可以实现的接口.AoInitializer对象就是在System类库中定义的,所有的开发者必须使用这个对象来初始化ArcGISEngine和解除ArcGIS Engine的初始化.开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展ArcGIS系统. SystemU

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

使用python制作ArcGIS插件(1)工具介绍 by 李远祥 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作.相对于以往9.x系列,addin的无论是从使用或者编写都更加方便快捷.通过开发语言,可以制作ArcGIS Desktop各个软件模块的插件. Addin支持多种开发语言,如.net.java和python.其中.net和java需要配合ArcGIS的SDK,使用ArcObjects进行开发.其好处是ArcObjects可以非常细粒度的控制

[转] KVM虚拟化技术生态环境介绍

KVM虚拟化技术生态环境介绍 http://xanpeng.github.io/wiki/virt/kvm-virtulization-echosystem-intro.html kvm和qemu/qemu-kvm的关系 qemu vs. qemu-kvm: 从qemu 1.3开始,kvm userspace code就维护在qemu mainline中(git clone https://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git, ref) qe

iOS多线程技术—多线程简单介绍

iOS多线程技术—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 3.线程的

区块链应用开发技术架构模式介绍

区块链应用开发技术架构模式介绍区块链应用场景多样,从数字货币金融到去中心化互联网.大多数用例都可以归纳为几种模式.源中瑞ruiecjo给大家讲解基于区块链的去中心化应用的常见的4种架构模式.1.IAM的架构模式背景信息: IAM环境包括许多用户和服务提供商.IAM系统为每个用户提供一个帐户和一组功能,使用户可以前往服务提供商,展示其帐户所有权,然后根据其功能接收服务.力量:需要实现一个分散的IAM环境,在该环境中,一个恶意用户或几个用户不会对系统造成重大影响.解决方案:建议的模式候选者以以下方式

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

1.输出符号信息 Map2Shp软件中提供了图示表达转换功能,提供对MapGIS图形特征可视表达信息的跨平台支持.若要使用该功能,必须在转换时,"图元参数输出方式"选定为[图元参数信息保存为ArcView3.x图例文件(*.avl)](如图),系统才能自动生成图示表达信息. 图 1 Map2Shp输出图元参数为AVL 2.导入图例 转换完成后,在ArcMap下加载文件,点击[属性(Properties-)]按钮,选择[符号系统(Symbology)]页面,点击[导入(Import)]按

Memcache技术分享:介绍、使用、存储、算法、优化、命中率

原文地址:http://zhihuzeye.com/archives/2361 1.memcached 介绍 1.1 memcached 是什么? memcached 是以LiveJournal旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件.现在已成为mixi.hatena.Facebook.Vox.LiveJournal 等众多服务中提高Web应用扩展性的重要因素.许多Web 应用都将数据保存到RDBMS 中,应用服务器从中读取数据并在浏览器中

应用程序开发--所用过的技术与工具介绍

关于应用程序开发,经历过一些技术与工具的变化与使用,以及一些专业术语.下面我列示一下,后面会根据这些知识点逐一介绍. 1.CRUD操作: 2.DTO: 3.Lambda表达式: 4.传统三层架构或DDD分层架构: 5.常用设计模式: 6.常用架构模式: 7.XMind思维导图工具:mindManager; 8.Log4.Net介绍与使用: CRUD是指在做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单词的首字母简写.主

iOS开发数据持久化技术01——NSUserDefault介绍

有疑问的请加qq交流群:390438081 我的QQ:604886384(注明来意) 微信:niuting823 首先说下什么是数据持久化技术 NSString *str = @"hello world"; ->内存 实际上就是将数据存储到硬盘上,针对于iOS应用程序是存储到沙盒中. . NSUserDefault介绍 1 是系统提供的自定义的类,可以随时在需要使用的地方声明对象,并随时需要的时候取出对象 2 支持的对象类型:NSString, NSNumber, NSData,