ArcGIS地图制图

article/2025/10/11 5:03:49

个人学习笔记,仅供学习交流。

参考书籍:《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文档使用一段后,会遇到下面几个问题

  1. 文档会越来越大
  2. 文档加载逐渐变慢

优化方案

  • 将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处理

  可以看到下图标注压到了线要素,怎么修改呢?

  • 点击【标注管理器】

  • 设置点的标注样式,点击【属性】——设置【冲突解决】参数即可


http://chatgpt.dhexx.cn/article/bKox7XSh.shtml

相关文章

R语言绘制地图

R绘制地图的话&#xff0c;大多数用到的包都是maptools&#xff0c;用来读取phd文件&#xff0c;phd文件需要自己提前下载到工作目录&#xff0c;但是大多数phd文件都不能精确到市区。只能绘制声级&#xff0c;国家级和世界地图。 本文以武汉是举例。首先在下列网站地图选择器…

地图区域绘制

背景 需要实现地图区域绘制&#xff0c;并能提供给业务实现联动交互&#xff0c;可以按照省市县进行下钻&#xff0c;地图样式如下&#xff1a; 绘制实现方式 对于这种简约地图区域的绘制&#xff0c;需要提供区域的geo json文件&#xff0c;做地图的公司已经提供这种数据&…

ArcGIS:如何简单地制作一幅专题地图?

目录 01 加载原始数据 02 简单看一下属性表 03 对地块的人口密度用颜色进行分级显示 04 切换到布局视图 05 输出的大小&#xff0c;方向等设置 06 布局视图下的要素编辑 07 插入标题 08 对标题的大小颜色等进行编辑 09 插入图例 10 插入指北针 11 插入比例尺 12 调…

地图之美(地图制图)

开篇 地图学是研究地图的理论、编制技术与应用方法的科学。 现阶段对地图学的定义是&#xff1a;研究地理信息的表达、处理和传输的理论和方法&#xff0c;以地理信息可视化为核心&#xff0c;探讨地图的制作技术和使用方法的学科。 从地图本身概念出发&#xff0c;地图是将客…

在地图上绘制路线图

最近做个项目&#xff0c;官方给了车的一些经纬度数据&#xff0c;为了看的更清楚&#xff0c;需要把数据标注在地图上 想到了两套方案&#xff0c;第一种采用python的folium库 结果遇到问题&#xff0c;数据一多&#xff0c;绘画出来的速度很慢&#xff0c;而且它的某JS插件还…

python绘图——地图

地图相关绘图——basemap 参考1 安装 已安装anaconda的情况&#xff0c;运行一下代码 conda install basemap绘制地图 需导入的包 # 导入需要的包 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap绘制简单地图&#xff1a…

【地图自学系列】二、怎么画地图

怎么画地图 前言一、地球什么样二、怎么画&#xff08;坐标系&#xff09;1.地理坐标系和投影坐标系1.1 地理坐标系1.2 投影坐标系 2.国内常用坐标系3.试试能不能解释这些问题3.1 地理坐标系和投影坐标系的区别&#xff1f;3.2 有地理坐标系后&#xff0c;为什么还需要投影坐标…

pyecharts 地图绘制

环境描述 win11 jupyter notebook 目标效果 世界地图按数据进行分级着色&#xff1b;最终效果图如下&#xff1a; pyecharts 绘制地图时注意点 可以实现目标地图绘制效果的python库很多&#xff0c;这里用的是pyecharts&#xff0c;具体可百度。 最终结果如何以图片形式…

【Python】pyecharts 模块 ⑤ ( 地图绘制 | pyecharts 地图绘制步骤 | 为地图进行全局配置 )

文章目录 一、pyecharts 地图绘制1、pyecharts 地图绘制步骤2、代码示例 - pyecharts 地图绘制3、代码示例 - 为地图进行全局配置 pyecharts 画廊网站 : https://gallery.pyecharts.org/#/ 在该网站可查看官方示例 一、pyecharts 地图绘制 1、pyecharts 地图绘制步骤 首先 , 导…

地图轨迹图怎么做?可以自己绘制路线的地图

地图轨迹图是一种用于表示某个物体在某段时间内的移动轨迹的图表。它可以帮助我们更好地理解物体的移动轨迹&#xff0c;从而更好地分析和研究物体的移动轨迹。 地图轨迹图的制作需要以下几个步骤&#xff1a; 1.准备数据&#xff1a;首先&#xff0c;需要准备好物体的移动轨迹…

聊一聊我常用的6种绘制地图的方法

来源&#xff1a;萝卜大杂烩 今天来讲一讲在日常工作生活中我常用的几种绘制地图的方法&#xff0c;下面我将介绍下面这些可视化库的地图绘制方法&#xff0c;当然绘制漂亮的可视化地图还有很多优秀的类库&#xff0c;没有办法一一列举 pyecharts、plotly、folium、bokeh、base…

HBase数据库表的创建

实验三 HBase分布式数据库操作与编程 1、HBase Shell数据库表创建 【实验内容】 根据以下关系型数据库表&#xff0c;使用HBase Shell设计并创建适宜的HBase数据表。 2、创建表以及插入学生信息数据 &#xff08;1&#xff09;、启动Hadoop &#xff08;2&#xff09;、启…

Hbase笔记 —— 利用JavaAPI的方式操作Hbase数据库(往hbase的表中批量插入数据)

目录 直接在main函数中执行语句借助Test来运行方法删除表修改表结构列出来所有的表插入一条数据获取一行数据创建表批量读取文件中的数据&#xff0c;并且批量插入表中获取一组数据的值利用CellUtil改善读取数据方式 导入依赖 <dependency><groupId>org.apache.hba…

Java 访问Hbase数据库

须知 Hbase数据最终是在hdfs上的&#xff0c;具体来说应该是在hdfs上一个叫做/hbase的目录下。具体结构如下&#xff1a; 所以java访问Hbase其实就是访问hdfs&#xff0c;所以环境搭建跟hadoop开发环境使用没什么不同。 实战部分 1.导入需要的jar包&#xff0c;此处在java项…

大数据之HBase数据库

一、了解HBase 1.1 HBase简介 HBase是Apache的Hadoop项目的子项目 HBase不同于一般的关系数据库&#xff0c;它是一个适合于非结构化数据存储的数据库 建立在Hadoop文件系统之上的分布式面向列的数据库 属于开源项目&#xff0c;可以进行横向扩展 适用于需要实时地随机访问…

pinpoint的Hbase数据库的数据优化

pinpoint的Hbase数据库的数据优化 写的原因&#xff1a; 因为是测试服务器&#xff0c;在运行测试项目时&#xff0c;需要日志的打印输出&#xff0c;由于发现磁盘空间不足&#xff0c;想删除些东西&#xff0c;释放空间&#xff0c;然后发现pinpoint服务的Hbase数据库占据了1…

2.使用HBase数据库操作_实验环境Ubuntu

实验前期准备 ssh localhost //检测自己的ssh服务器设置 cd /usr/local/hadoop ./sbin/start-dfs.sh //启动Hadoop jps //查看hadoop是否启动成功 cd /usr/local/hbase bin/start-hbase.sh //启动hbase jps //查看hadoop是否启动成功 bin/hbase shell //打开hbase的…

猿如意工具Redis数据库,Memcached数据库,MongoDB数据库,HBase数据库等等

按照参考样例&#xff1a; 安装教程 在电脑上安装好猿如意之后。因为第一次使用就搜了下各种数据库使用的方式 猿如意工具 Redis数据库Memcached数据库MongoDB数据库HBase数据库MySQL WorkbenchDBeaverNavicat Lite Redis数据库 点击搜索了下Redis数据库&#xff0c;可看到以…

hbase数据库详解

本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数据 、HBase数据模型、HBase物理存储、HBase系统架构&#xff0c;HBase调优、HBase Shell访问等。 不过在此之前&#xff0c;你可以先了解 Hadoop生态系统 &#xff0c;若想运行HBase&#xff0c;则需要先搭建…

Java连接HBASE数据库

HBASE是建立在Hadoop分布式系统基础之上的列模式数据库&#xff0c;Java连接HBASE需要如下几个jar包&#xff1a;hadoop-common、hadoop-mapreduce-client-core、hbase-common、hbase-client。这些jar包在maven仓库里都有&#xff0c;地址&#xff1a;https://mvnrepository.co…