arcgis中所需要的地图是怎么制作的?
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
1
用ArcGIS 绘制一幅完整的地图
青岛海洋地质研究所 戴勤奋
这几年ArcGIS 商业运作不错,培训费用也高得可以,可是观望一下我们地质行业,虽
然都购买了最新的正版ArcGIS,但基本上还是在用MAPGIS(中地软件)画图,真正用ArcGIS
的不多。去年下半年参加了一个编制全球各大区底图的项目,由于项目最后要求用ArcGIS
Geodatabase 建库,我极力推动我们年轻的项目负责用ArcGIS 来制图,并亲自作图示范,
人家看我这么热情都不忍心打击我积极性,但好玩的是最后的问题演变成为如何将ArcGIS
转换到MAPGIS 的问题,因为人家的专业图都要求在MAPGIS 上画,作为最基础的底图岂能标
新立异?最后,项目就在ArcGIS 到MAPGIS 转换中告终,转的过程中发现MAPGIS 的方位等
面积投影误差有近二十公里,去年年底我们把问题报告给中地了,不知道他们现在改了没有。
我算是MAPGIS 的最早一批用户之一,当时(上世纪90 年代初)MAPGIS 叫MAPCAD,MAPGIS
在画图与出图上有很多优势,我深有体会,在画图方面,尤其对于地质类复杂图件的成图,
它的地位至今还是难以替代的。相比之下,我个人认为ArcGIS 的优势不在画图上,主要在
数据的规范化组织与管理上,如果说MAPGIS 是直奔目标式的为出图而画图的话,ArcGIS 则
是以数据为中心的画图,更有利于成图数据的质量保证与重利用,两者的境界是不同的。如
果纯粹是为了成图,我认为MAPGIS 是首选;如果既要成图又要建库,那么ArcGIS 是实现制
图与数据库建库一体化,即数据库协同地图同期完成的最佳选择。
用ArcGIS 制图关键是前期的设计,前期把图中需要表达的各要素类以及每个要素类中
的要素分类考虑清楚,建好模板,后面的画图基本上是批量生产,只要数据准备好往里一倒
就行了,其实并不麻烦。如果前期考虑得不是很清楚也没关系,只要最基本的的必选项能保
证,其它的只要改模板就行,并不影响大局。下面以小比例尺的地理底图为例具体描述
ArcGIS 从设计、制图、质量检查到地图输出的全过程,希望对大家有用。
1.设计
定义要素类 → 要素分类编码 → 创建数据库 → 创建样式库 → 创建地图模板
1.1 定义要素类
定义要素类就是考虑一下你的图要画哪些内容,要素类是数据存储范畴的称谓,在数据
显示范畴要素类对应地图图层,不过要素类与图层不完全是一一对应,一个要素类可以表现
为多个图层。根据小比例尺(小于500 万)地理底图的编图要求,选择表1 中的基础地理要
素类作为成图图层,图1 为相应的基础地理要素实体关系图。
2
表1 地理底图要素类及代码
数据集 数据类 要素类
要素
类名
几何
类型
内容
定位基础
(C)
坐标网 CPTL 线
内外图廓线、坐标网线、南北回归线、
南北极圈线
水系 水系线 HYDL 线 单线河流、运河、干渠
(H) 水系面 HYDA 面 湖泊、水库、双线河、沼泽
居民地
(R)
居民点 RESP 点 国家首都、重要城市、一般城市
境界与政区 境界线 BOUL 线 洲界、国界、海岸线、浅滩暗沙边线
(B) 政区面 BOUA 面 陆域与岛屿
山峰点 TERP 点 山峰、火山
地貌线 TERL 线 大陆冰界、陆缘冰界、海洋冰界
地貌面 TERA 面 沙漠
地形地貌
(T)
海洋等深线 TBYL 线 海洋等深线
基
础
地
理
地理注记
(A)
地理注记线 AALL 线
海洋、海峡、海湾、河口、半岛、山脉、
沙漠等无实体对应的地理名称沿走向
注记线
图1 基础地理要素实体关系图
BaseGeography(基础地理)
C(定位基础) H(水系) R(居民地) B(境界与政区) T(地形地貌) A(地理注记)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
CPTL(坐标网)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
○ A CNAME [中文名]
○ A ENAME [英文名]
○ N HYDG [水系等级]
HYDL(水系线)/ HYDA(水系面)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
* A CNAME [中文名]
○ A ENAME [英文名]
RESP(居民点)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
* A CCOUNTRY [中文国名]
○ A ECOUNTRY [英文国名]
○ A CNAME [中文区名]
○ A ENAME [英文区名]
BOUA(政区)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
BOUL(境界)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
○ A CNAME [中文名]
○ A ENAME [英文名]
TERL(地貌线)/TERA(地貌面)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
* N ELEV [高程(米)]
* A CNAME [中文名]
○ A ENAME [英文名]
TERP(山峰)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
* N DEPTH [水深(米)]
TBYL(海洋等深线)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
* A CNAME [中文名]
○ A ENAME [英文名]
* A ANNCODE [注记类码]
AALL(地理注记线)
地图数据集
地图数据类
图 例
数据集级要素类
数据类型
A—字符型N—数字型
约束
#—主键』 —外键
*—非空○—允许空
要素类型
点线面
3
1.2 要素分类编码
要素分类编码就是考虑一下每一个要素类包含哪些要素,然后给那些要素编上码以便规
范化。要素也是数据存储范畴的称谓,在数据显示范畴要素对应地图图层中的图元,要素分
类编码与图元的图式是一一对应的。
基础地理要素分类与代码有国家标准(GB/T 13923-2006),这里直接套用不需要另
行编码了,表2 列出了小比例尺地理底图中用到的要素分类编码,其中图式是我自己加
上的仅供参考,地理底图的注记比较杂,其中注记类码也是我自己定义的仅供参考。
对于其它专业领域要素的分类编码,如果分类比较多的话我个人还是倾向英文缩
略编码,因为简便。去年年底看到有编10 位层次码的,给每个要素送10 位码,而且
要求准确无误肯定是一件令人痛苦的事情。我个人认为规范化的结果应该是简化,如果
越规范越复杂还不如不规范。
1.3 创建数据库
数据库用ArcCatalog 创建,后台数据库用Access 就行,也就是创建Personal Geodatabase。
如果数据量比较大的话也可以选择File Geodatabase,File Geodatabase 是ArcGIS 9.2 引入的
新特征,估计是ESRI 公司想摆脱Access 的局限性。File Geodatabase 在一个文件夹里存放
数据集,每个数据集占用的磁盘空间可以达到 1 TB,而且File Geodatabase 可以跨平台,可
以压缩,可以加密。这里仅以Personal Geodatabase 为例,创建步骤如下。
(1)创键地理数据库:启动ArcCatalog,在既定目录下点击鼠标右键,选择New,再
选择Personal Geodatabase, 创键示例数据库BasemapDB.mdb。
(2)创键域:在已创建的地理数据库BasemapDB.mdb 下点击鼠标右键,选择Properties,
打开数据库属性的Domains 页,然后按照已定义的分类代码(表2),在Domains 页输入数
据库的属性域。
9
(3)创建要素集:在已创建的地理数据库BasemapDB.mdb 下点击鼠标右键,选择New,
再选择Feature Dataset,创键地理底图要素集BASEMAP。然后在随后出现的对话框里定义
要素集的坐标系及其投影,这里选择用经纬度存储地理坐标数据,具体选择“Geographic
Coordinate Systems”下的World WGS 1984。投影是数据显示时的选择,因此留待地图模板
中定义。在要素集中定义空间参照系是为了让同一要素集中的要素类享有同一空间参照系,
这样要素集内的要素类之间才可以建立拓扑关系。
(4)创建要素类:在已创建的要素集BASEMAP 下点击鼠标右键,选择New,再选择
Feature Class,然后按照已经定义的要素类及其属性(表1 和图2),分别定义点、线、面各
要素类,并在各要素类的属性页面输入要素类的属性,同时按设计要求选择属性的约束条件
(是否可以为空、确省值以及属性的域)。
10
1.4 创建样式库
样式库是一个ESRI Style 类型的文件,你可以把你需要用到的图元图式集中起来放到一
个ESRI Style 文件中,以便统一管理及分发。创建样式库的工具是Style Manager,可以通过
ArcMap 调用。
启动ArcMap,点击菜单Tools,选择Styles 下的Style Manager。在Style Manager 页面
下点击Styles 按钮,选择Create New 就创建了一个空的样式库,这里命名为Basemap.style。
参照已经定义的样式(表2),分别在样式库的Fill,Line,Maker,Text 等目录中创建
填充、线型、符号、文本等图元样式。实际上你没必要每一个都亲自画,你可以从其它样式
库中拷贝已有的,或相近的,修改一下就行。样式可以作分类标示(Category),以后使用
时便于查找。
11
12
13
1.5 创建地图模板
万事俱备,现在可以在ArcMap 下创建地图模板了,地图模板是一个ESRI mxd 文件。
创建地图模板前,地图的比例尺以及地图投影必须是已知的。
(1)创建数据框:启动ArcMap,选择菜单Insert,点击Data Frame,创建一个新的数
据框。如果有图外图或图中图,例如中国行政区划图中常见的南海诸岛,或地质图中常见的
剖面图、综合柱状图,就需要创建多个数据框。
(2)定义地图投影:在已创建的Data Frame 下点击鼠标右键,选择Properties,在数据
框属性的坐标系页(Coordinate System)定义当前数据框的地图投影。地图投影分两部分,
其一是大地基准面,例如示例中的GCS_WGS_1984;其二是平面投影方式,例如示例中的
兰勃特等角割圆锥投影Lambert_Conformal_Conic。所定义的地图投影可以添加到Favorites
中,以后用起来方便。
14
(3)添加地图图层:将数据库中的要素类按叠盖次序先后添加到数据框中。一个要素
类可以表现为多个图层,同一个要素类的图层显示内容通过图层属性页中的Definition Query
限定,例如在水系图层中只显示3 级以上的河流。
15
(4)定义各图层的显示方式:在图层下点击鼠标右键,选择Properties,在图层属性的
Symbology 页面选择需要图示的数据字段,这里是“国标分类码”GBCODE;以及图示方法,
这里选择单值分类显示,显示样式从前面创建的样式库中提取。样式库通过Symbol Selector
页面的More Symbols 按钮添加到样式中供选用。
16
(5)定义地图标注类: ArcGIS9.2 在注记方面有较大的改进,添加了标注扩展模块
Maplex、标注类、以及标注管理器(Label Manager),用于比较复杂的地图注记。
Maplex 作为ArcGIS 外加模块安装,Maplex 安装后还需要一系列操作将Maplex 引擎激
活后方可使用。Maplex 安装后,先点击Tools 菜单的 Extensions,在Extensions 页面中
选上Maplex,然后点击View 菜单下的Toolbars,在工具列表中点击Labeling,再在随之
弹出的labeling 浮动菜单中选中use maplex Label Engine,这样Maplex 就可以使用了。
17
地图模板中定义的地图标注类用于同一图层不同类别图元的分类标注,这里以居民地
为例说明居民地标注类的定义方法。按照表2 中的定义,居民地标注类码为RC00、RP00、
RT00,分别用于国家首都、重要城市和一般城市的标注。下面在地图模板中定义这三类地
图标注。
在居民地图层下点击鼠标右键,选择Properties,然后选择图层属性的Label 页。
a) 先在Method 文本框选择“Define classes of features and label each class
differently”,表示分类标注;
b) 点击Add 按钮输入标注类名,例如RC00_首都;
c) 点击SQL Query,限定标注类的标注要素,例如[GBCODE] = '310101',其中310101
是首都的国标分类码;
d) 在Label Field 文本框选择作为标注内容的数据字段,例如“中文名称”,如果标
注涉及多个字段,或包含上、下标等标注格式,或需要沿线纵向标注,可点击
Expression 按钮,在Label Expression 页面输入VB Script 代码;
e) 在Text Symbol 框中分别选择RC00_首都标注类的字体、字号、字形、字色;
f) 点击Placement Properties 按钮,在Placement Properties 页面选择标注位置与方向,
其中Position 按钮用于定义标注的位置;Label Offset 定义标注的偏移距,对居民
地,偏移距就是标注文字与居民地点符号中心的距离,例如2 个像点;Orientation
定义标注的方向,如果经纬网不是横平竖直的话,标注方向要选择Graticule
Alignment,也就是平行经纬网标注,当然极地区域是个例外。
18
19
20
模板创建完成,可以提供制图人员使用,如果后期有改动也没关系,因为只要模板替
换一下就行了,客户端的原始数据不需要改动。
后面是欧洲大区的1/500 万数据在定义模板下的显示结果。
21
22
2.制图
图形编辑 → 数据入库 → 挂接模板 → 标注转注记 → 添加图外要素
2.1 图形编辑
ArsGIS 的图形编辑功能很全面,但我个人认为用起来不是很方便,可能是熟悉程度不
够,所以我经常是用别的软件做图形编辑,然后转成shp 格式文件装载到ArcGIS 中,在
ArcGIS 中只是作一些修补型的编辑。
ArsGIS 的图形编辑工具可在View 菜单的Toolbars 下选择,包括编辑工具Editor、高
级编辑工具Advanced Editing,以及注记编辑工具labeling 和拓扑编辑工具Topology 等。
23
在图形编辑前需要在Editor 浮动板的下拉菜单下点击“Start Editor”进入编辑状态,
然后在Task 的下拉框中选择操作类型,在Target 下拉框中选择需要编辑的图层,才可以开
始编辑,编辑完毕点击“Stop Editing”退出编辑状态。
24
为了避免图层之间的干扰,可以在Set Selectable Layers 页面将某些层设置为可视、
不可选。
2.2 数据入库
数据编辑完成后,即可通过ArcCatalog 装载到数据库中,当然在数据库下也可以进行
数据编辑,不过数据库下的数据编辑速度比较慢,因为前台一个操作可能涉及后台多个数据
库操作,所以一般情况下最好是单个文件的图层编辑完成后再导入到数据库中去,尽量减少
数据库下的编辑工作量。
25
ArcCatalog 下的数据装载过程很简单,在需要装载数据的要素类下点击鼠标右键,在
出现的菜单中选择Load 并Load Data,随后按界面提示将数据导入即可。
26
2.3 挂接模板
用ArcMap 打开地图模板,在任一地图图层点击右键,在随之出现的菜单中选择Data
并点击Repair Data Source,然后在出现的Data Source 对话框中选择图层所对应的数据库要
素类,数据自动载入,红色惊叹号消失,模板挂接就告完成。
27
模板挂接完成后,可以检查一下各图层的显示情况,如果某些要素没有显示出来,那
就是这些要素的分类编码(GBCODE)输入有误,打开要素属性表修改一下就行了。
2.4 标注转注记
地图上的文字或符号注记虽然不是地图中的主角,但是在成图过程中占用较大比例的制
图工作量。对于有空间要素对应的注记,如居民地,可直接利用要素的属性;没有空间要素
对应的地理名称,如山脉、海洋、海湾、海峡、海沟、海槽、海岭、海山、海台、海盆等等,
可通过注记线解决,采集注记位置线,归入注记线类,注记内容赋入属性项,因为一个一个
字往图上放不仅工作量大而且注记的位置也不容易确定。
地图标注(Label)的显示可通过Label Manager 统一管理,在数据框上点击右键,在
Labeling 菜单中选择Label Manager 即可显示标注管理对话框。
28
29
Label(标注)是地图的动态标注,如果要让动态Label 成为固定比例尺下的地图标注,
必须将Label 在一定比例尺下转换为Annotation(注记),Annotation 才是固定比例尺下的
地图静态标注。
Label 到Annotation 转换过程如下:先将地图显示比例尺定义到地图出图比例尺,例
如1:5000000,在需要转注记的图层下点击鼠标右键,在出现的菜单中选择“Convert Labels
to Annotation”,然后在Convert Labels to Annotation 对话框中选择将Annotation 保存
到数据库中,系统会在数据库中创建一个地图注记类,将地图注记保存下来。
30
地图注记保存到数据库后,就可以对地图注记进行编辑了,你可以调整注记位置避免
不同图层注记的压盖;可以修改注记文字的字体或大小,让注记文字大小比例与整幅地图协
调等等;你还可以通过注记编辑工具的右键菜单让注记沿地图要素标注。注记编辑工具通过
View Toolbar 的Annotation 打开。
由于Annotation 是在数据库下编辑,所以编辑速度可能会比较慢。
31
2.5 添加图外要素
所谓图外要素就是图名、图例、比例尺等地图元素(Element),图外要素添加在地图布
局视图中完成,而不是在数据视图中完成,因此添加图外要素前需要通过View 菜单下的
Layout View 将地图视图切换到布局视图。
32
图外要素添加通过Insert 菜单中的Title(加图名)、Legend(图例)、North Arrow(指北
针)、Scale Bar(比例尺)等完成。
33
34
2.6 地图示例
1) 欧洲大区1:500 万底图
欧洲大区1:500 万地理底图的电子地图根据美国VMap0 数据简化整理而成,地理坐标范围:纬度30
°N~63°N,经度8°W~73°E。电子地图数据以WGS84 经纬度格式存储在ArcGIS Geodatabase 中,平面
投影方式为正轴等角割圆锥投影(兰勃特等角),第一标准纬度40°N,第二标准纬度60°N,中央经度17
°E,原点纬度30°E。地理底图要素类包括:图廓、居民地、水系、境界与政区、地形地貌和注记。地图
要素分类编码按标准GB/T 13923-2006《基础地理信息要素分类与代码》执行。
注:1991~1993 年美国国家测绘局(NIMA)为美国军方建立了全球地图数据库(Digital
Chart of the World--DCW),DCW 数据经更新扩充后形成VMap0,数据精度为1:100 万,现
势性达到2006 年。
35
2)非洲大区1:1000 万地理底图
非洲大区1:1000 万地理底图的电子地图根据美国VMap0 数据简化整理而成,地理坐标范围:纬度37.7
°S~39.5°N,经度33.7°W~68.7°E。电子地图数据以WGS84 经纬度格式存储在ArcGIS Geodatabase
中,平面投影方式为方位等面积投影,投影中心(0°,20°E) 。地理底图要素类包括:图廓、居民地、
水系、境界与政区、地形地貌和注记。地图要素分类编码按标准GB/T 13923-2006《基础地理信息要素分
类与代码》执行。
这里就方位等面积投影作个补充说明,方位等面积投影中的经线只有一条是直的,也就
是中央经线是直的,其它都是弯的,因此在选取投影参数时必须注意,尽量让中央经线能在
地图上画出来。这里选择中央经线为20°,经纬网每隔5°画一根,这样中央经线就能在图
上画出来了。
36
3)南极大区1:1000 万地理底图
南极大区1:1000 万地理底图的电子地图根据美国VMap0 数据简化整理而成,海区地形阴影背景根
据美国地质调查局(USGS)数字高程模型(DEM)ETOPO2 生成。地理范围覆盖纬度42°S 以
南的地区。电子地图数据以WGS84 经纬度格式存储在ArcGIS Geodatabase 中,平面投影方式为极地投影,
投影中心(90°S,90°E) 。地理底图要素类包括:图廓、居民地、境界与政区、地形地貌和注记。地图
要素分类编码按标准GB/T 13923-2006《基础地理信息要素分类与代码》执行
注:极地投影在ArcGIS 中选择Stereographic projection(球面投影,方位等角球面投影)。
DEM 数据的投影转换及图面裁剪通过ArcToolbox 中的工具完成,其中Data Management Tools
工具包的Projections and Transformation 下的 Project Raster 用于DEM 数据的投影转
换;Data Management Tools 工具包的Raster 下的Clip 用于图面影像的裁剪。
37
3.质量控制
3.1 拓扑检查
地图的质量检查包括地图数据精度、数据完整性与正确性、逻辑一致性、属性精度、整
饰精度、附件质量等多方面的内容,在ArcGIS 中需要完成的主要是地图要素的拓扑检查,
因此这里只谈在ArcGIS 中如何进行地图拓扑检查。
GIS 中拓扑是用来描述要素间或要素类间几何关系的规则,使得地理数据库能更真实合
理地模拟现实中的地理要素,同时也是数据质量控制的手段,保证地理要素的几何完整性。
过去拓扑是作为一种空间数据结构融合到数据中的,随着面向对象GIS 的发展,拓扑从
数据结构中独立出来,作为要素行为和规则来实现。ArcGIS 中的拓扑规则在数据库的
要素集中进行管理,要素集外部的要素类不能参与到同一个拓扑中。此外,参与拓扑的
要素必须属于简单要素类(点、线、面),而且每个要素类只能处在一个拓扑中。
拓扑需要在数据库设计阶段考虑,根据数据建模需求,明确一系列要素类中要素
之间的空间关系,然后定义相应的拓扑原则。拓扑中定义的规则可以控制同一要素类
中要素间的关系、不同要素类间要素间的关系、以及要素子类之间的关系。ArcGIS 系
统允许定义的拓扑规则可以查看ArcGIS 相关文档,例如面之间不许重叠(如:行政边
界不允许重叠)、线之间不能交叉(如:等高线之间不能交叉)、线状要素的端点必须
被另一要素类中的点状要素覆盖(如:管线与管线节点)等。
下面创建一个拓扑规则,让居民点必须位于陆地上:
1)在要素集的右键菜单下点击New,选择Topology;
38
2)在随后出现的对话框中选择参与拓扑的要素类,这里选择居民点和政区;
3)在下一步出现的对话框中选择拓扑规则,这里是RESP“ Must Be Properly
Inside”BOUA,该拓扑规则就在要素集中建立了;
39
拓扑检查只要在拓扑的右键菜单中选择Validate,然后点击Properties 打开拓扑
的属性页,在属性页的Errors 对话框中查看拓扑检查结果,示例显示有两个拓扑错误。
错误修改需要将拓扑调入ArcMap,ArcGIS 用红点表示有拓扑异常的居民地。拓
扑编辑工具为Topology,通过View 菜单Toolbars 的Topology 打开。
40
4.地图输出
ArcGIS 地图的输出有三种方式,一种是输出到位图,第二种是输出到PDF 文件中,第
三种是通过ArcPress 直接打印, 如果地图不是很复杂采用PDF 的高质量打印能得到高质
量的地图输出。如果地图比较复杂,例如地图要素的填充方式比较复杂,用PDF 就可
能无法输出,在非洲由于沙漠填充面积比较大就出现了这种情况,南极大区如果叠加
DEM 地形影像也无法输出到PDF 文件中,此时可采用ArcPress 在打印机上直接打印地图。
41
42
下面是用PDF 输出的地图一角:
5.结束语
ArcGIS 比较庞大,功能比较多,菜单也埋得比较深,因此不大容易上手,但只要熟悉
ArcGIS 的技术人员将底层基础工作打点好,后期的制图工作并不麻烦,而且工作流程很规
范,数据质量也有一定保障。
此外,在ArcGIS 制图过程中也发现了一些问题,例如在极地区域出现注记的无规律飘
飞现象,在这些地区作地图编辑时不敢轻易移动要素,移动一下,这些要素可能就不见了,
不知道是什么原因造成的。另一个关键问题就是ArcGIS 占内存比较大,如果机器配置比较
低的话,做图形编辑时速度比较慢,如果编辑数据库中数据,例如编辑地图的Annotation,
速度就更慢。
2009 年4 月13 日完稿
希望对你能有所帮助。
用ArcGIS 绘制一幅完整的地图
青岛海洋地质研究所 戴勤奋
这几年ArcGIS 商业运作不错,培训费用也高得可以,可是观望一下我们地质行业,虽
然都购买了最新的正版ArcGIS,但基本上还是在用MAPGIS(中地软件)画图,真正用ArcGIS
的不多。去年下半年参加了一个编制全球各大区底图的项目,由于项目最后要求用ArcGIS
Geodatabase 建库,我极力推动我们年轻的项目负责用ArcGIS 来制图,并亲自作图示范,
人家看我这么热情都不忍心打击我积极性,但好玩的是最后的问题演变成为如何将ArcGIS
转换到MAPGIS 的问题,因为人家的专业图都要求在MAPGIS 上画,作为最基础的底图岂能标
新立异?最后,项目就在ArcGIS 到MAPGIS 转换中告终,转的过程中发现MAPGIS 的方位等
面积投影误差有近二十公里,去年年底我们把问题报告给中地了,不知道他们现在改了没有。
我算是MAPGIS 的最早一批用户之一,当时(上世纪90 年代初)MAPGIS 叫MAPCAD,MAPGIS
在画图与出图上有很多优势,我深有体会,在画图方面,尤其对于地质类复杂图件的成图,
它的地位至今还是难以替代的。相比之下,我个人认为ArcGIS 的优势不在画图上,主要在
数据的规范化组织与管理上,如果说MAPGIS 是直奔目标式的为出图而画图的话,ArcGIS 则
是以数据为中心的画图,更有利于成图数据的质量保证与重利用,两者的境界是不同的。如
果纯粹是为了成图,我认为MAPGIS 是首选;如果既要成图又要建库,那么ArcGIS 是实现制
图与数据库建库一体化,即数据库协同地图同期完成的最佳选择。
用ArcGIS 制图关键是前期的设计,前期把图中需要表达的各要素类以及每个要素类中
的要素分类考虑清楚,建好模板,后面的画图基本上是批量生产,只要数据准备好往里一倒
就行了,其实并不麻烦。如果前期考虑得不是很清楚也没关系,只要最基本的的必选项能保
证,其它的只要改模板就行,并不影响大局。下面以小比例尺的地理底图为例具体描述
ArcGIS 从设计、制图、质量检查到地图输出的全过程,希望对大家有用。
1.设计
定义要素类 → 要素分类编码 → 创建数据库 → 创建样式库 → 创建地图模板
1.1 定义要素类
定义要素类就是考虑一下你的图要画哪些内容,要素类是数据存储范畴的称谓,在数据
显示范畴要素类对应地图图层,不过要素类与图层不完全是一一对应,一个要素类可以表现
为多个图层。根据小比例尺(小于500 万)地理底图的编图要求,选择表1 中的基础地理要
素类作为成图图层,图1 为相应的基础地理要素实体关系图。
2
表1 地理底图要素类及代码
数据集 数据类 要素类
要素
类名
几何
类型
内容
定位基础
(C)
坐标网 CPTL 线
内外图廓线、坐标网线、南北回归线、
南北极圈线
水系 水系线 HYDL 线 单线河流、运河、干渠
(H) 水系面 HYDA 面 湖泊、水库、双线河、沼泽
居民地
(R)
居民点 RESP 点 国家首都、重要城市、一般城市
境界与政区 境界线 BOUL 线 洲界、国界、海岸线、浅滩暗沙边线
(B) 政区面 BOUA 面 陆域与岛屿
山峰点 TERP 点 山峰、火山
地貌线 TERL 线 大陆冰界、陆缘冰界、海洋冰界
地貌面 TERA 面 沙漠
地形地貌
(T)
海洋等深线 TBYL 线 海洋等深线
基
础
地
理
地理注记
(A)
地理注记线 AALL 线
海洋、海峡、海湾、河口、半岛、山脉、
沙漠等无实体对应的地理名称沿走向
注记线
图1 基础地理要素实体关系图
BaseGeography(基础地理)
C(定位基础) H(水系) R(居民地) B(境界与政区) T(地形地貌) A(地理注记)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
CPTL(坐标网)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
○ A CNAME [中文名]
○ A ENAME [英文名]
○ N HYDG [水系等级]
HYDL(水系线)/ HYDA(水系面)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
* A CNAME [中文名]
○ A ENAME [英文名]
RESP(居民点)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
* A CCOUNTRY [中文国名]
○ A ECOUNTRY [英文国名]
○ A CNAME [中文区名]
○ A ENAME [英文区名]
BOUA(政区)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
BOUL(境界)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
○ A CNAME [中文名]
○ A ENAME [英文名]
TERL(地貌线)/TERA(地貌面)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
* N ELEV [高程(米)]
* A CNAME [中文名]
○ A ENAME [英文名]
TERP(山峰)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
* N DEPTH [水深(米)]
TBYL(海洋等深线)
# * N OBJECT_ID [要素序号]
* A 』 DATASET_ID [数据集编号]
* A GBCODE [国标分类码]
* A CNAME [中文名]
○ A ENAME [英文名]
* A ANNCODE [注记类码]
AALL(地理注记线)
地图数据集
地图数据类
图 例
数据集级要素类
数据类型
A—字符型N—数字型
约束
#—主键』 —外键
*—非空○—允许空
要素类型
点线面
3
1.2 要素分类编码
要素分类编码就是考虑一下每一个要素类包含哪些要素,然后给那些要素编上码以便规
范化。要素也是数据存储范畴的称谓,在数据显示范畴要素对应地图图层中的图元,要素分
类编码与图元的图式是一一对应的。
基础地理要素分类与代码有国家标准(GB/T 13923-2006),这里直接套用不需要另
行编码了,表2 列出了小比例尺地理底图中用到的要素分类编码,其中图式是我自己加
上的仅供参考,地理底图的注记比较杂,其中注记类码也是我自己定义的仅供参考。
对于其它专业领域要素的分类编码,如果分类比较多的话我个人还是倾向英文缩
略编码,因为简便。去年年底看到有编10 位层次码的,给每个要素送10 位码,而且
要求准确无误肯定是一件令人痛苦的事情。我个人认为规范化的结果应该是简化,如果
越规范越复杂还不如不规范。
1.3 创建数据库
数据库用ArcCatalog 创建,后台数据库用Access 就行,也就是创建Personal Geodatabase。
如果数据量比较大的话也可以选择File Geodatabase,File Geodatabase 是ArcGIS 9.2 引入的
新特征,估计是ESRI 公司想摆脱Access 的局限性。File Geodatabase 在一个文件夹里存放
数据集,每个数据集占用的磁盘空间可以达到 1 TB,而且File Geodatabase 可以跨平台,可
以压缩,可以加密。这里仅以Personal Geodatabase 为例,创建步骤如下。
(1)创键地理数据库:启动ArcCatalog,在既定目录下点击鼠标右键,选择New,再
选择Personal Geodatabase, 创键示例数据库BasemapDB.mdb。
(2)创键域:在已创建的地理数据库BasemapDB.mdb 下点击鼠标右键,选择Properties,
打开数据库属性的Domains 页,然后按照已定义的分类代码(表2),在Domains 页输入数
据库的属性域。
9
(3)创建要素集:在已创建的地理数据库BasemapDB.mdb 下点击鼠标右键,选择New,
再选择Feature Dataset,创键地理底图要素集BASEMAP。然后在随后出现的对话框里定义
要素集的坐标系及其投影,这里选择用经纬度存储地理坐标数据,具体选择“Geographic
Coordinate Systems”下的World WGS 1984。投影是数据显示时的选择,因此留待地图模板
中定义。在要素集中定义空间参照系是为了让同一要素集中的要素类享有同一空间参照系,
这样要素集内的要素类之间才可以建立拓扑关系。
(4)创建要素类:在已创建的要素集BASEMAP 下点击鼠标右键,选择New,再选择
Feature Class,然后按照已经定义的要素类及其属性(表1 和图2),分别定义点、线、面各
要素类,并在各要素类的属性页面输入要素类的属性,同时按设计要求选择属性的约束条件
(是否可以为空、确省值以及属性的域)。
10
1.4 创建样式库
样式库是一个ESRI Style 类型的文件,你可以把你需要用到的图元图式集中起来放到一
个ESRI Style 文件中,以便统一管理及分发。创建样式库的工具是Style Manager,可以通过
ArcMap 调用。
启动ArcMap,点击菜单Tools,选择Styles 下的Style Manager。在Style Manager 页面
下点击Styles 按钮,选择Create New 就创建了一个空的样式库,这里命名为Basemap.style。
参照已经定义的样式(表2),分别在样式库的Fill,Line,Maker,Text 等目录中创建
填充、线型、符号、文本等图元样式。实际上你没必要每一个都亲自画,你可以从其它样式
库中拷贝已有的,或相近的,修改一下就行。样式可以作分类标示(Category),以后使用
时便于查找。
11
12
13
1.5 创建地图模板
万事俱备,现在可以在ArcMap 下创建地图模板了,地图模板是一个ESRI mxd 文件。
创建地图模板前,地图的比例尺以及地图投影必须是已知的。
(1)创建数据框:启动ArcMap,选择菜单Insert,点击Data Frame,创建一个新的数
据框。如果有图外图或图中图,例如中国行政区划图中常见的南海诸岛,或地质图中常见的
剖面图、综合柱状图,就需要创建多个数据框。
(2)定义地图投影:在已创建的Data Frame 下点击鼠标右键,选择Properties,在数据
框属性的坐标系页(Coordinate System)定义当前数据框的地图投影。地图投影分两部分,
其一是大地基准面,例如示例中的GCS_WGS_1984;其二是平面投影方式,例如示例中的
兰勃特等角割圆锥投影Lambert_Conformal_Conic。所定义的地图投影可以添加到Favorites
中,以后用起来方便。
14
(3)添加地图图层:将数据库中的要素类按叠盖次序先后添加到数据框中。一个要素
类可以表现为多个图层,同一个要素类的图层显示内容通过图层属性页中的Definition Query
限定,例如在水系图层中只显示3 级以上的河流。
15
(4)定义各图层的显示方式:在图层下点击鼠标右键,选择Properties,在图层属性的
Symbology 页面选择需要图示的数据字段,这里是“国标分类码”GBCODE;以及图示方法,
这里选择单值分类显示,显示样式从前面创建的样式库中提取。样式库通过Symbol Selector
页面的More Symbols 按钮添加到样式中供选用。
16
(5)定义地图标注类: ArcGIS9.2 在注记方面有较大的改进,添加了标注扩展模块
Maplex、标注类、以及标注管理器(Label Manager),用于比较复杂的地图注记。
Maplex 作为ArcGIS 外加模块安装,Maplex 安装后还需要一系列操作将Maplex 引擎激
活后方可使用。Maplex 安装后,先点击Tools 菜单的 Extensions,在Extensions 页面中
选上Maplex,然后点击View 菜单下的Toolbars,在工具列表中点击Labeling,再在随之
弹出的labeling 浮动菜单中选中use maplex Label Engine,这样Maplex 就可以使用了。
17
地图模板中定义的地图标注类用于同一图层不同类别图元的分类标注,这里以居民地
为例说明居民地标注类的定义方法。按照表2 中的定义,居民地标注类码为RC00、RP00、
RT00,分别用于国家首都、重要城市和一般城市的标注。下面在地图模板中定义这三类地
图标注。
在居民地图层下点击鼠标右键,选择Properties,然后选择图层属性的Label 页。
a) 先在Method 文本框选择“Define classes of features and label each class
differently”,表示分类标注;
b) 点击Add 按钮输入标注类名,例如RC00_首都;
c) 点击SQL Query,限定标注类的标注要素,例如[GBCODE] = '310101',其中310101
是首都的国标分类码;
d) 在Label Field 文本框选择作为标注内容的数据字段,例如“中文名称”,如果标
注涉及多个字段,或包含上、下标等标注格式,或需要沿线纵向标注,可点击
Expression 按钮,在Label Expression 页面输入VB Script 代码;
e) 在Text Symbol 框中分别选择RC00_首都标注类的字体、字号、字形、字色;
f) 点击Placement Properties 按钮,在Placement Properties 页面选择标注位置与方向,
其中Position 按钮用于定义标注的位置;Label Offset 定义标注的偏移距,对居民
地,偏移距就是标注文字与居民地点符号中心的距离,例如2 个像点;Orientation
定义标注的方向,如果经纬网不是横平竖直的话,标注方向要选择Graticule
Alignment,也就是平行经纬网标注,当然极地区域是个例外。
18
19
20
模板创建完成,可以提供制图人员使用,如果后期有改动也没关系,因为只要模板替
换一下就行了,客户端的原始数据不需要改动。
后面是欧洲大区的1/500 万数据在定义模板下的显示结果。
21
22
2.制图
图形编辑 → 数据入库 → 挂接模板 → 标注转注记 → 添加图外要素
2.1 图形编辑
ArsGIS 的图形编辑功能很全面,但我个人认为用起来不是很方便,可能是熟悉程度不
够,所以我经常是用别的软件做图形编辑,然后转成shp 格式文件装载到ArcGIS 中,在
ArcGIS 中只是作一些修补型的编辑。
ArsGIS 的图形编辑工具可在View 菜单的Toolbars 下选择,包括编辑工具Editor、高
级编辑工具Advanced Editing,以及注记编辑工具labeling 和拓扑编辑工具Topology 等。
23
在图形编辑前需要在Editor 浮动板的下拉菜单下点击“Start Editor”进入编辑状态,
然后在Task 的下拉框中选择操作类型,在Target 下拉框中选择需要编辑的图层,才可以开
始编辑,编辑完毕点击“Stop Editing”退出编辑状态。
24
为了避免图层之间的干扰,可以在Set Selectable Layers 页面将某些层设置为可视、
不可选。
2.2 数据入库
数据编辑完成后,即可通过ArcCatalog 装载到数据库中,当然在数据库下也可以进行
数据编辑,不过数据库下的数据编辑速度比较慢,因为前台一个操作可能涉及后台多个数据
库操作,所以一般情况下最好是单个文件的图层编辑完成后再导入到数据库中去,尽量减少
数据库下的编辑工作量。
25
ArcCatalog 下的数据装载过程很简单,在需要装载数据的要素类下点击鼠标右键,在
出现的菜单中选择Load 并Load Data,随后按界面提示将数据导入即可。
26
2.3 挂接模板
用ArcMap 打开地图模板,在任一地图图层点击右键,在随之出现的菜单中选择Data
并点击Repair Data Source,然后在出现的Data Source 对话框中选择图层所对应的数据库要
素类,数据自动载入,红色惊叹号消失,模板挂接就告完成。
27
模板挂接完成后,可以检查一下各图层的显示情况,如果某些要素没有显示出来,那
就是这些要素的分类编码(GBCODE)输入有误,打开要素属性表修改一下就行了。
2.4 标注转注记
地图上的文字或符号注记虽然不是地图中的主角,但是在成图过程中占用较大比例的制
图工作量。对于有空间要素对应的注记,如居民地,可直接利用要素的属性;没有空间要素
对应的地理名称,如山脉、海洋、海湾、海峡、海沟、海槽、海岭、海山、海台、海盆等等,
可通过注记线解决,采集注记位置线,归入注记线类,注记内容赋入属性项,因为一个一个
字往图上放不仅工作量大而且注记的位置也不容易确定。
地图标注(Label)的显示可通过Label Manager 统一管理,在数据框上点击右键,在
Labeling 菜单中选择Label Manager 即可显示标注管理对话框。
28
29
Label(标注)是地图的动态标注,如果要让动态Label 成为固定比例尺下的地图标注,
必须将Label 在一定比例尺下转换为Annotation(注记),Annotation 才是固定比例尺下的
地图静态标注。
Label 到Annotation 转换过程如下:先将地图显示比例尺定义到地图出图比例尺,例
如1:5000000,在需要转注记的图层下点击鼠标右键,在出现的菜单中选择“Convert Labels
to Annotation”,然后在Convert Labels to Annotation 对话框中选择将Annotation 保存
到数据库中,系统会在数据库中创建一个地图注记类,将地图注记保存下来。
30
地图注记保存到数据库后,就可以对地图注记进行编辑了,你可以调整注记位置避免
不同图层注记的压盖;可以修改注记文字的字体或大小,让注记文字大小比例与整幅地图协
调等等;你还可以通过注记编辑工具的右键菜单让注记沿地图要素标注。注记编辑工具通过
View Toolbar 的Annotation 打开。
由于Annotation 是在数据库下编辑,所以编辑速度可能会比较慢。
31
2.5 添加图外要素
所谓图外要素就是图名、图例、比例尺等地图元素(Element),图外要素添加在地图布
局视图中完成,而不是在数据视图中完成,因此添加图外要素前需要通过View 菜单下的
Layout View 将地图视图切换到布局视图。
32
图外要素添加通过Insert 菜单中的Title(加图名)、Legend(图例)、North Arrow(指北
针)、Scale Bar(比例尺)等完成。
33
34
2.6 地图示例
1) 欧洲大区1:500 万底图
欧洲大区1:500 万地理底图的电子地图根据美国VMap0 数据简化整理而成,地理坐标范围:纬度30
°N~63°N,经度8°W~73°E。电子地图数据以WGS84 经纬度格式存储在ArcGIS Geodatabase 中,平面
投影方式为正轴等角割圆锥投影(兰勃特等角),第一标准纬度40°N,第二标准纬度60°N,中央经度17
°E,原点纬度30°E。地理底图要素类包括:图廓、居民地、水系、境界与政区、地形地貌和注记。地图
要素分类编码按标准GB/T 13923-2006《基础地理信息要素分类与代码》执行。
注:1991~1993 年美国国家测绘局(NIMA)为美国军方建立了全球地图数据库(Digital
Chart of the World--DCW),DCW 数据经更新扩充后形成VMap0,数据精度为1:100 万,现
势性达到2006 年。
35
2)非洲大区1:1000 万地理底图
非洲大区1:1000 万地理底图的电子地图根据美国VMap0 数据简化整理而成,地理坐标范围:纬度37.7
°S~39.5°N,经度33.7°W~68.7°E。电子地图数据以WGS84 经纬度格式存储在ArcGIS Geodatabase
中,平面投影方式为方位等面积投影,投影中心(0°,20°E) 。地理底图要素类包括:图廓、居民地、
水系、境界与政区、地形地貌和注记。地图要素分类编码按标准GB/T 13923-2006《基础地理信息要素分
类与代码》执行。
这里就方位等面积投影作个补充说明,方位等面积投影中的经线只有一条是直的,也就
是中央经线是直的,其它都是弯的,因此在选取投影参数时必须注意,尽量让中央经线能在
地图上画出来。这里选择中央经线为20°,经纬网每隔5°画一根,这样中央经线就能在图
上画出来了。
36
3)南极大区1:1000 万地理底图
南极大区1:1000 万地理底图的电子地图根据美国VMap0 数据简化整理而成,海区地形阴影背景根
据美国地质调查局(USGS)数字高程模型(DEM)ETOPO2 生成。地理范围覆盖纬度42°S 以
南的地区。电子地图数据以WGS84 经纬度格式存储在ArcGIS Geodatabase 中,平面投影方式为极地投影,
投影中心(90°S,90°E) 。地理底图要素类包括:图廓、居民地、境界与政区、地形地貌和注记。地图
要素分类编码按标准GB/T 13923-2006《基础地理信息要素分类与代码》执行
注:极地投影在ArcGIS 中选择Stereographic projection(球面投影,方位等角球面投影)。
DEM 数据的投影转换及图面裁剪通过ArcToolbox 中的工具完成,其中Data Management Tools
工具包的Projections and Transformation 下的 Project Raster 用于DEM 数据的投影转
换;Data Management Tools 工具包的Raster 下的Clip 用于图面影像的裁剪。
37
3.质量控制
3.1 拓扑检查
地图的质量检查包括地图数据精度、数据完整性与正确性、逻辑一致性、属性精度、整
饰精度、附件质量等多方面的内容,在ArcGIS 中需要完成的主要是地图要素的拓扑检查,
因此这里只谈在ArcGIS 中如何进行地图拓扑检查。
GIS 中拓扑是用来描述要素间或要素类间几何关系的规则,使得地理数据库能更真实合
理地模拟现实中的地理要素,同时也是数据质量控制的手段,保证地理要素的几何完整性。
过去拓扑是作为一种空间数据结构融合到数据中的,随着面向对象GIS 的发展,拓扑从
数据结构中独立出来,作为要素行为和规则来实现。ArcGIS 中的拓扑规则在数据库的
要素集中进行管理,要素集外部的要素类不能参与到同一个拓扑中。此外,参与拓扑的
要素必须属于简单要素类(点、线、面),而且每个要素类只能处在一个拓扑中。
拓扑需要在数据库设计阶段考虑,根据数据建模需求,明确一系列要素类中要素
之间的空间关系,然后定义相应的拓扑原则。拓扑中定义的规则可以控制同一要素类
中要素间的关系、不同要素类间要素间的关系、以及要素子类之间的关系。ArcGIS 系
统允许定义的拓扑规则可以查看ArcGIS 相关文档,例如面之间不许重叠(如:行政边
界不允许重叠)、线之间不能交叉(如:等高线之间不能交叉)、线状要素的端点必须
被另一要素类中的点状要素覆盖(如:管线与管线节点)等。
下面创建一个拓扑规则,让居民点必须位于陆地上:
1)在要素集的右键菜单下点击New,选择Topology;
38
2)在随后出现的对话框中选择参与拓扑的要素类,这里选择居民点和政区;
3)在下一步出现的对话框中选择拓扑规则,这里是RESP“ Must Be Properly
Inside”BOUA,该拓扑规则就在要素集中建立了;
39
拓扑检查只要在拓扑的右键菜单中选择Validate,然后点击Properties 打开拓扑
的属性页,在属性页的Errors 对话框中查看拓扑检查结果,示例显示有两个拓扑错误。
错误修改需要将拓扑调入ArcMap,ArcGIS 用红点表示有拓扑异常的居民地。拓
扑编辑工具为Topology,通过View 菜单Toolbars 的Topology 打开。
40
4.地图输出
ArcGIS 地图的输出有三种方式,一种是输出到位图,第二种是输出到PDF 文件中,第
三种是通过ArcPress 直接打印, 如果地图不是很复杂采用PDF 的高质量打印能得到高质
量的地图输出。如果地图比较复杂,例如地图要素的填充方式比较复杂,用PDF 就可
能无法输出,在非洲由于沙漠填充面积比较大就出现了这种情况,南极大区如果叠加
DEM 地形影像也无法输出到PDF 文件中,此时可采用ArcPress 在打印机上直接打印地图。
41
42
下面是用PDF 输出的地图一角:
5.结束语
ArcGIS 比较庞大,功能比较多,菜单也埋得比较深,因此不大容易上手,但只要熟悉
ArcGIS 的技术人员将底层基础工作打点好,后期的制图工作并不麻烦,而且工作流程很规
范,数据质量也有一定保障。
此外,在ArcGIS 制图过程中也发现了一些问题,例如在极地区域出现注记的无规律飘
飞现象,在这些地区作地图编辑时不敢轻易移动要素,移动一下,这些要素可能就不见了,
不知道是什么原因造成的。另一个关键问题就是ArcGIS 占内存比较大,如果机器配置比较
低的话,做图形编辑时速度比较慢,如果编辑数据库中数据,例如编辑地图的Annotation,
速度就更慢。
2009 年4 月13 日完稿
希望对你能有所帮助。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不太明白你说讲的问题?你是需要用ArcGIS做图,还是想干啥?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询