ArcGIS地图制图
个人学习笔记,仅供学习交流。
参考书籍:《ArcGIS从0到1》
文章目录
- 专题图的制作
- 一般专题
- 单一符号
- 类别专题
- 数量专题
- 柱状图(直方图)
- 符号匹配专题
- 两个面图层覆盖专题设置
- 行政区边界线色带制作
- 点符号的制作
- 线面符号的制作
- 线符号制作
- 面符号制作
- MXD文档制作
- 保存文档
- 文档MXD默认相对路径设置
- 地图打包
- 地图切片
- MXD文档维护
- 标注
- 标注和标注转注记
- 相同标注
- 标注转注记
- 一个图层不同标注
- 一个图层所有对象都标注
- 取字段右边5位
- 标注面积为亩,保留一位小数
- 标注压盖处理
- 分式标注
- 二分式
- 三分式
- 等高线标注
- 使用Maplex标注等高线
- 等值线注记
- Maplex标注
- 河流沿线标注
- 标注压盖Maplex处理
专题图的制作
地图制作是数据可视化和表达输出的过程,利用ArcGIS可以制作精美的地图。
一般专题
单一符号
- 右键图层【属性】,切换到【符号系统】,双击【符号颜色】,更改单一符号的颜色。
- 【更多颜色】自定义颜色,右上角可以更改颜色系统,RGB,CMYK或者HSV。
- 双击【当前符号】更改符号属性。在符号属性编辑器里编辑符号属性,将单位修改成毫米(mm),轮廓宽度修改成1,那么在任一比例尺下打印出来线宽都是1mm,ArcGIS所有符号默认都不随比例尺改变,除非设置数据框的参考比例尺。
注意: 当一个面层有重叠面时,数据时按记录先后顺序显示的。当有一大一小的面重叠时,如果大面在后,小面在前,两个面都会显示正确,但是当大面在前,小面在后时,小面就会被大面遮挡,这是需要利用工具箱中的【排序】工具,更具面的大小关系进行排序,已达到正确的显示目的。
类别专题
- 右键图层【属性】,选中类别【唯一值】,选中需要的值字段【name】——>【添加所有值】,在右上角【色带】中更改配色——>【应用】/【确认】
- 选择多个name字段,右键分组,可分组配色,不需要分组时右键取消分组。取消分组后再选择【色带】更新配色。
数量专题
选择【分级色彩】,字段选择【SQKM】,此字段只支持整型,浮点型。面积越大,颜色越深
柱状图(直方图)
- 选择【条形图】,选中字段(只支持整型或浮点型)然后
>
添加该字段,双击更改配色,更改背景颜色。
- 点击属性,更改柱状图属性,可以以3D形状显示。
tip
添加柱状图后,背景颜色只能为单一值,我们可以再次导入该数据,更改其色彩分级,达到我们的目的。
符号匹配专题
匹配符号就是自己手上有一套设定好的色彩分类系统,我们要匹配到地图中,选择【与样式中的符号匹配】,选择相应的【值字段】,【浏览】导入样式文件,【匹配符号】
查看符号样式
两个面图层覆盖专题设置
- 查看DEM属性,在显示页面将透明度改成50%
- 关闭DEM数据,打开
DOM.tif
数据,设置DLTB图层属性,填充颜色为透明,轮廓颜色设置为红色。可以看到矢量数据是根据影像图边界勾画出来的,我们可以借此验证影像地物与矢量数据边界是否一致。
行政区边界线色带制作
- 打开自定义模式。
- 切换到命令找到【缓冲向导】工具。
- 将【缓冲向导】工具拖动到【工具条】中的相应位置,关闭自定义模式窗口,然后单击缓冲向导工具。
- 单击后界面如下,直接下一步。
- 更具需要设置色带条数以及其宽度,点击下一步。
- 确认其储存路径,单击完成。
- 未设置之前边界本身就有一个颜色,为了使色带显示的更清晰,可以去掉边界本身的颜色。
- 至此,色带制作完成,效果如下。
点符号的制作
- 在自定义中打开【样式管理器】,点击【样式】,【创建新样式】
- 选择路径,并填写名字。
- 添加到样式管理器,展开此样式,选择【标记符号】,在右边空白处右键新建【标记符号】
- 选择【字符标记符号】类型,选择一个圆圈。
- 点击做下角的【加号】添加一个文字,并设置其字体大小等。
- 字符符号创建完成。
线面符号的制作
线符号制作
同上选择【线符号】,根据需求更改属性制作相应的线符号。
面符号制作
同上选择【填充符号】,根据需求更改属性制作相应的填充符号。
MXD文档制作
ArcMAP文档是MXD文件,一个文档中可以保存一个或多个数据狂,一个数据框包含几个图层,每个图层可以对渣u难题符号、标注、比例尺和显示范围等信息进行保存。MXD文件其实保存的是每个数据的链接,为了文件管理方便,要求这些数据放在同一个文件夹内,并且保存的时候数据都要以相对路径保存。
保存文档
- 新建一个文档
- 自己加入一个或多个数据图层。(这些数据来自同一个图层,可以新建一个数据库,将在其他地方的数据复制到新建的文件数据库里)
- 设置文档属性
- 保存相对路径
- 保存文档(默认在数据文件路径下会出现一个后缀名为.mxd文件)
- 另存为(可以更改名字)
- 存为副本(可降级)
文档MXD默认相对路径设置
为了保险起见,可以在ArcMAP中设置以后所有的MXD文档都以相对路径进行保存,这样就避免了每次设置MXD文档属性,同时也避免了使用绝对路径带来的数据丢失问题。
地图打包
上面问什么要多次强调一定要保存相对路径
呢,是因为我们在分享数据时,由于别人的路径和你数据文件在你计算机储存的绝对路径不同,所以别人打不开。再次强调,Mxd文档储存的是数据的链接,所以在拷贝数据是必须将文档和数据同时拷贝才能分享出去。
为了保险起见,还可以将数据打包进行分享,步骤如下。
- 这时,在你保存的路径下会出现一个后缀名为.mpk的文件
- 这是一个特殊的压缩包文件,但是一般的解压缩文件不能直接将其打开,我们可以将其后缀名更改为
.zip
或者.rar
然后使用解压缩工具进行解压。
- 解压后,在解压后的文件夹里有以下文件夹。
v10
表示的是ArcGIS10.x
版本文档,v108
表示的是ArcGIS10.8
版本文件
地图切片
像高德地图、百度地图这样的地图APP中,数据一般是以切片形式展示的,在不同的比例尺下,显示的内容也有差别。
- 设置相应比例尺显示
- 设置文档属性
- 使用工具生成切片包
- 确认后在此路径下会生成后缀名为
.tpk
的切片包,更改其后缀名,解压即可。
另一种方式
倘若我们有一个切片方案,可以按照下面操作进行切片操作。
- 首先打开Runtime功能,(在ArcMap选项下打开)
- 共享成切片包
- 设置信息
- 共享后在相应路径下会生成后缀名为
.tpk
的切片包,更改其后缀名,解压即可。
MXD文档维护
MXD文档使用一段后,会遇到下面几个问题
- 文档会越来越大
- 文档加载逐渐变慢
优化方案
将MXD文档另存为新的文档,生成新的文档后会自动优化
在windows开始菜单中,运行
Arc Document Defragmenter
进行碎片化整理
- 在windows开始菜单中,找到
MXD Doctor
,有严重问题时,可以诊断并修复这个文档
标注
ArcGIS中地图信息有两种表达方式:标注和注记
标注
标注用于显示地图要素图层的属性字段内容,标注是动态的,即每次重绘地图时(平移和缩放地图时)都会重新计算标注显示。
标注的特点
- 显示内容由字段属性值决定
- 字体大小不随比例尺变化
- 标注位置,会随地图位置、比例尺的改变而移动
- 设置后必须以MXD方式保存
- 标注永远不能覆盖(下层标注永远可见)
注记
注记存放在地理数据库中,Shp文件不支持注记。与其他要素类一样,主机要素类中的所有要素均具有地理位置和属性,可以位于要素数据集内或独立的要素类内。每个文本注记要素都具有符号系统,其中包括字体、大小、颜色以及其他任何文本符号属性。注记通常为文本,但也有可能包括其他类型符号系统的图形形状(如方框或箭头)
注记的特点
- 注记是一个实实在在的图层
- 字体大小随比例尺变化而变化
- 注记位置是固定的。
注记用于地图打印,而标注不会被打印出来
标注和标注转注记
相同标注
标注转注记
图层一定先标注,先设置转换注记的参考比例尺,参考比例尺的设置有两种
- 直接在左上角的比例尺处更改
- 右击数据框,常规选项,修改参考比例尺
如果两种方式都设置,系统默认采用第二种方式,建议直接使用第二种方式来设置参考比例尺。
- 右键数据框——【选择将标注转换为注记】
- 点击文件夹图标,将注记放在数据库里,一定要展开数据库,进入数据库内部再确认,否则设置失败。
- 点击【转换】——【标注转注记成功】(左边自动生成注记图层)
一个图层不同标注
在注记选项卡内勾选【标注此图层中的要素】,方法选择【定义要素类并且为每个类加不同的标注】,类型选择【默认】,标注字段选择【乡镇】,点击【SQL查询】,输入以下内容。
"FID<=2"
- 使用默认的字体和颜色进行标注,点击【应用】。
点击【添加】按钮,类的名字设置成“大于2”,SQL查询输入以下内容
"FID>2"
- 设置其颜色为红色,字体为14号,点击【确认】
- 最终标注如下图所示。
一个图层所有对象都标注
打开标注工具条,查看未放置的标注,发现有很多红色没有被标注。
- 在标注设置页面,设置【放置属性】,勾选【放置压盖标注】,点击【确认】,点击【确认】
- 可以发现一个图层所有对象都被标注了。
取字段右边5位
(记得勾选标注此图层)
在标注设置页面点击【标注表达式】,勾选【高级】,输入以下【表达式】解析程序为python。
def FindLabel([DKBM]):return [DKBM][0:5]
标注面积为亩,保留一位小数
打开属性表,加入一个字段a,字符计算器中输入下面表达式计算a的数值。
round([SHAPE_AREA]*3/2000,1)
- 在标注设置页面,选择a标注字段。
- 在属性表中修改【字段属性】可设置标注的小数位数,补零,精度等
标注压盖处理
- 在此图中,我们可以看到标注压住了线要素,那么如何设置可以使得标注避免压线呢?
- 在标注设置页面选择【放置属性】,更改【要素权重】为中,【确认】,【确认】即可
- 设置后效果图如下。
分式标注
分式标注,顾名思义就是用分号的形式进行标注。
二分式
普通二分式标注
在标注表达式下输入以下格式的代码(vbscript),即可实现普通的二分标注
"<und>"&[分子字段]&"</und>"&vbcrlf&[分母字段];
换行符有一下三种方式
vbcrlf
vbnewline
chr(13)&chr(10)
python格式代码如下
"<und>"+[分子字段]+"</und>"+"\n"+"分母字段"
高级二分式标注
上面的表达式已经实现了分式表达,但是有个缺点,就是分割线的长度默认是分子字段的宽度,更优化的表示应该是,分式线区分子字段长度和分母字段长度的最大值,如下图所示。
在表达式框里输入以下代码即可实现
'----------FUNCTION STRLEN(STR)----------
FUNCTION strlen(str)dim p_lenp_len=0strlen=0p_len=len(str)FOR xx=1 to p_lenIF asc(mid(str,xx,1))<0 thenstrlen=int(strlen) + 2ELSEstrlen=int(strlen) + 1END ifNEXTEND functionFUNCTION myFind ( DZM, NAME )a=strlen(dzm) b=strlen(NAME)IF a>b then myFind ="<und>" & DZM & "</und>" & vbnewline & NAMEELSEstr= space((b-a)/2)myFind ="<und>" & str & DZM & str & "</und>" & vbnewline & NAMEEND ifEND FunctionFunction FindLabel ( [DLBM],[DLMC] )FindLabel =myFind([DLBM],[DLMC])
End Function
高级二分式三字段标注
分子或者分母可不可以有多个字段呢,答案是肯定的
实现代码如下
'----------FUNCTION STRLEN(STR)----------
FUNCTION strlen(str)dim p_lenp_len=0strlen=0p_len=len(str)FOR xx=1 to p_lenIF asc(mid(str,xx,1))<0 thenstrlen=int(strlen) + 2ELSEstrlen=int(strlen) + 1END ifNEXTEND functionFUNCTION myFind ( DZM, NAME )a=strlen(dzm) b=strlen(NAME)IF a>b then myFind ="<und>" & DZM & "</und>" & vbnewline & NAMEELSEstr= space((b-a)/2)myFind ="<und>" & str & DZM & str & "</und>" & vbnewline & NAMEEND ifEND Function' 修改这里
Function FindLabel ( [DLBM],[DLMC],[shape_area] )FindLabel =myFind([DLBM] & "面积:"& round([shape_area]*3/2000,1) &"亩",[DLMC])
End Function
三分式
当然还有其他的分式标注,比如三分式。
实现代码如下。
'----------FUNCTION STRLEN(STR)----------
FUNCTION strlen(str)dim p_lenp_len=0strlen=0p_len=len(str)FOR xx=1 to p_lenIF asc(mid(str,xx,1))<0 thenstrlen=int(strlen) + 2ELSEstrlen=int(strlen) + 1END ifNEXTEND functionFUNCTION myFind(cunname,DJH,SHAPE_Area )dim strstr=SHAPE_Areadim dd=strlen(str)dim d1dim d2d1=strlen(cunname) /2d2=strlen(DJH) /2if d2>d1 thend1=d2end if myFind = cunname & space(d) & vbnewline & string(d1,"—") & str & vbnewline & DJH & space(d)
END Function'修改这里
Function FindLabel([DLBM],[DLMC], [shape_area] )FindLabel = myFind([DLBM],[DLMC],Round([shape_area]*3/2000,1) & "亩" )
End Function
等高线标注
等高线是地形图上高程相等的相邻个点所连成的闭合曲线。
使用Maplex标注等高线
- 在数据框属性处选择【Maplex标注引擎】
- 在标注设置页面选择【放置属性】,【标注位置】选择【等值线放置】,【确认】,【确认】
- 更改标注的样式为【晕圈】
等值线注记
【等值线注记】生成的结果是注记,一定要放在地理数据库中。
- 选择指定对象——【按属性选择】——【键入表达式】——【应用】
- 使用【等值线注记】工具,设定必要参数后【确认】
- 注记在线的中央,但是线是没有被打断的,可以使用【擦除】工具,打断等高线。
Maplex标注
- 使用MAplex标注引擎有两种方式,一是在数据框中选择,而是打开标注工具条,勾选Maplex标注引擎。
河流沿线标注
标注压盖Maplex处理
可以看到下图标注压到了线要素,怎么修改呢?
- 点击【标注管理器】
- 设置点的标注样式,点击【属性】——设置【冲突解决】参数即可
ArcGIS地图制图相关推荐
- Arcgis使用教程(十一)ARCGIS地图制图之经纬网格设置参数详解
Arcgis地图制图中,经纬网格的添加详细参见: Arcgis使用教程(十)ARCGIS地图制图之经纬网格添加_空中旋转篮球的博客-CSDN博客 1.加载数据 在Arcmap中加载中国矢量图层数据(中 ...
- ArcGIS地图制图入门(一)
ArcGIS地图制图入门(一) 目的: 1.了解地图制作目的: 2.了解在ArcMap平台中制作地图大致过程. 3.掌握地形图生成的操作: 4.掌握地形图的正确输出方法. 操作: 一 地图数据加载 1 ...
- Arcgis使用教程(十)ARCGIS地图制图之经纬网格添加
地图制图中,经纬网格添加窗口可以从菜单打开或者鼠标右击地图打开属性. 1)View菜单下的Data Frame Propoties菜单或者鼠标右击地图右键菜单下的Propoties打开: 点击New ...
- 【第二季】Arcgis地图制图基础|(四)地图文字标注
写在前面的话: B站搜索"中图地信"便可观看全套71章节详细操作视频(有操作数据获取,同步学习) (一)州际公路标注 下面介绍州际公路标注效果的实现. [1]启动ArcMap,打开 ...
- 第八章 ArcGIS地图制图 点线面符号、专题图、标记的制作
文章目录 第一节 点符号的制作方法 1 ArcGIS的样式管理器使用 2 制作一些点符号,如一个图中间一个字 3 FontCreator使用 4 修改己有的符号库 第二节 线面符号制作 1 简单线符号 ...
- 【第二季】Arcgis地图制图基础|(一)Arcgis地图符号制作
写在前面的话: B站搜索"中图地信"便可观看全套71章节详细操作视频(有操作数据获取,同步学习) (一)银行.地铁等约定俗成符号的制作 下面以地铁符号为例,介绍单色和多色约定俗成符 ...
- Arcgis使用教程(十)ARCGIS地图制图之地图整饰要素及使用方法
1.地图三要素 构成地图的基本内容,叫做地图要素.它包括数学要素.地理要素和整饰要素(亦称辅助要素),所以又通称地图"三要素". (l)数学要素,指构成地图的数学基础.例如地图投影 ...
- 【第二季】Arcgis地图制图基础|(五)活用智能标注
写在前面的话: B站搜索"中图地信"便可观看全套71章节详细操作视频(有操作数据获取,同步学习) (一)标注变色效果的实现 标记表达式在不使用Maplex的情况下也可以使用,但本例 ...
- Arcgis使用教程(十二)ARCGIS地图制图之比例尺设置参数详解
1.加载数据 在Arcmap中加载中国矢量图层数据(中国省级行政区图,国界线两个图层),切换到Layout View窗口,设置地图符号要素并添加比例尺等要素,添加比例尺. 设置的 页面大小是width ...
- 【第二季】Arcgis地图制图基础|(三)巧用制图表达
写在前面的话: B站搜索"中图地信"便可观看全套71章节详细操作视频(有操作数据获取,同步学习) (一)房屋阴影效果的实现 创建房屋阴影效果,分以下2个步骤来实现. 第1步:将要素 ...
最新文章
- 牛客练习赛40 A.小D的剧场
- 并发编程-单元练习题
- 【直播课】6小时教你掌握轻量级网络,在安卓部署第一个深度学习模型
- es6语法-箭头函数
- C++中的 :: 用法
- d3代码如何改造成update结构(恰当处理enter和exit)
- C++学习之路 | PTA乙级—— 1091 N-自守数 (15 分)(精简)
- Python爬虫实践: 获取百度贴吧内容
- 安装cuda时 提示toolkit installation failed using unsupported compiler解决方法
- 没有编辑器时,使用echo更换源
- 用c语言编写六边形游戏,玩了这款搞花样的一笔画游戏,我的发量已经有点保不住了...
- 2022华为机试真题 C++ 实现【事件推送】
- Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper.........[已解决]
- Android超声波识别技术,超声波指纹识别or光学指纹识别?屏下指纹识别技术大比拼-传感技术-与非网...
- 宽带认证失败连接服务器无响应,路由器宽带账号认证失败的解决办法
- K8s介绍及离线安装(四)
- 安卓开发下载apk下载文件代码
- 工程制图——尺寸标注
- “黎明号”(Dawn)深空航天器与高效离子引擎
- sklearn之svm-葡萄酒质量预测(10)
热门文章
- 拼多多开放平台订单信息查询接口【pdd.order.basic.list.get订单基础信息列表查询接口(根据成交时间)】代码对接教程
- DNS数据配置文件SOA和NS
- Java中常用到的英语单词读音以及解释
- STM32-ESP8266wifi模块实现
- 浙大PAT甲级-1002
- idea中maven项目,输出在控制台上的中文乱码问题
- mysql监控工具:zabbix+MPM(Performance Monitor for MySQL)
- 软件工程电商系统数据库定义_电商数据库详细设计说明书V0.4
- 如何让微信好友永远拉黑不了你?
- PowerBuilder快速入门实践