Arcgis小技巧【12】——ArcGIS标注的各种用法和示例

news/2024/12/2 21:03:53/

标注是将描述性文本放置在地图中的要素上或要素旁的过程。

本文整理了ArcGIS中的各种标注方法、可能遇到的问题和细节,内容比较杂,想到哪写到哪。


一、正常标注某一字段值的内容

右键点击【属性】,在【标注】选项卡下勾选【标注此图层中的的要素】,在【文本字符串】栏中选择要标注的字段即可。

标注结果如下:

二、更复杂一点的标注

如果要标注的内容包含多个字段,或者需要输入字符,可以采用表达式。点击【表达式】,在输入框中输入:

u'编号:'+[OBJECTID] +u'代码:'+ [中类]

注意解析程序中选择【Python】(当然也可以选择其它方式,个人感觉还是python好用)。

标注结果如下:

三、多分式标注

上面的例子中标注的内容都在同一行上,而多分式标注的重点在于需要换行,并在新行中输入一定长度的横线。表达式内容如下:

def FindLabel ( [OBJECTID] , [中类] ):a=len([OBJECTID] )b=len([中类])if a>b:s=aelse:s=bp=[OBJECTID]+'\n'+('-'*s)+'\n'+ [中类] return p

标注结果如下:

再复杂一些的多分式,例如在中间的横线左右加上更多字段值的内容,可以在表达式内增加输入参数:

def FindLabel ( [OBJECTID] , [中类], [大类] , [小类]):a=len([OBJECTID] )b=len([中类])c=len( [大类] )d=len( [小类] )if a>b:s=aelse:s=bp=[OBJECTID]+'\n'+ ' '*d+[大类] +'-'*s+ [小类]+ ' '*c +'\n'+ [中类]return p

标注结果如下:

这里大家可能会注意到,中间的横线是由多段短线组成的,并不是真正的横线,也不美观。这里可以做一个修正,控制字符间距以达到取消空隙的功能。修改表达式如下:

def FindLabel ( [OBJECTID] , [中类], [大类] , [小类]):a=len([OBJECTID] )b=len([中类])c=len( [大类] )d=len( [小类] )if a>b:s=aelse:s=bp=[OBJECTID]+'\n'+ ' '*d+[大类] + "<CHR spacing = '-20'>" + '-'*s*2 + "</CHR>"+ [小类]+ ' '*c +'\n'+ [中类]return p

这里表达式中的几个参数可以自己慢慢调整。(spacing = '-20'是字符间距,'-'*s*2是中间横线长度,关于字符间距在后面也会再说到。)

标注结果如下:

四、只标注符合条件的要素

在【方法】栏中选择【定义要素类并且为每个类加不同的标注】,点击【SQL查询】,在弹出的框中输入SQL筛选语句,这里以【面积>10000平方米】为例,只标注面积大于10000平方米的要素,面积小于10000平方米的就不标注。

标注结果如下:

五、按条件分类标注

上面的例子只定义了一个默认类。如果想用不同的方式标注同一个要素类,需要增加自定义类。

例如:要素类有某一个属性,用了3个字段来描述,就需要分类来标注,如下图:

新建三个自定义类,对每个自定义类设置【SQL查询】条件和文本样式,如下图:

标注结果如下:

六、用表达式来实现条件分类标注

其实用表达式也可以实现条件分类标注,只是表达式要稍微复杂一些,一般人不太爱用这种方式。例如我想实现面积大于10000平方米的要素用大红字显示,小于10000平方米则用小黑字显示,可以在表达式中输入:

def FindLabel ( [中类] , [Shape_Area]):if float([Shape_Area])  > 10000:return "<CLR red='255'><FNT size = '20'>" + [中类]  + "</FNT></CLR>"else:return [中类]

标注结果如下:

七、标注表达式的格式化标签

上面的例子中出现了【"<CLR red='255'><FNT size = '20'>" + [中类]  + "</FNT></CLR>"】这样的语句,这是ArcGIS在标注中的一种格式化标签,用来定义字符的格式,包括文字字体大小,颜色等等。

更多的标签如下:

1、加粗:"<BOL>" + [中类]  + "</BOL>"

2、下划线:"<UND>" + [中类]  + "</UND>"

3、字体:"<FNT name='Arial'>" + [中类]  + "</FNT>"

4、文字大小:"<FNT size='18'>" + [中类]  + "</FNT>"

5、字体和文字大小组合:"<FNT name='Arial' size='18'>" + [中类]  + "</FNT>"

6、上标:"E = mc" + "<SUP>" + "2" + "</SUP>"

7、下标:"H" + "<SUB>" + "2</SUB>" + "O"

8、如果在一行标注字段中,只想改变部分文字的样式,同样也可以做到:

u"这部分不改变样式。" + "<FNT size='18'>" + [中类]  + "</FNT>"

标注结果如下:

9、字符间距:"<CHR spacing = '200'>" + [中类]  + "</CHR>",这部分在多分式标注中也有提到。

10、行间距:"<LIN leading = '25'>" + [中类]  + "</LIN>"

八、带牵引线的标注

带牵引线的标注一般用于引出标注,或者标注坐标点等场景。牵引线是通过字符符号来设置的,系统就自带了这种样式。

点击符号,拉到默认符号的底部,选择【项目符号牵引线】,点击【编辑符号】,设置x,y偏移即可。

再配合上面说过的多分式表达式,就可以做出类似坐标标注的效果了:

九、在地图视图中固定标注文字的大小

在地图视图中,当我们缩放地图里,标注的文字会随着变化,有时候会造成文字遮挡等问题。

这其实是因为文字大小随着地图比例的缩放而变化,将地图比例设置为固定值即可解决问题。右键点击地图框,点击【属性】,在【常规】选项卡找到【参考比例】栏,将比例设置为固定比例即可。

PS:设置为固定比例在某些场景也不合适,这个看个人需求,按需要调整。


http://www.ppmy.cn/news/44902.html

相关文章

贯穿设计模式第八话--设计原则总结篇

&#x1f973;&#x1f973;&#x1f973; 茫茫人海千千万万&#xff0c;感谢这一刻你看到了我的文章&#xff0c;感谢观赏&#xff0c;大家好呀&#xff0c;我是最爱吃鱼罐头&#xff0c;大家可以叫鱼罐头呦~&#x1f973;&#x1f973;&#x1f973; 从今天开始&#xff0c;将…

基于Amazon S3的通用封装oss-spring-boot-starter,支持前端分片直传

前段时间使用minio-java封装了一个 minio-spring-boot-starter&#xff0c;但是有局限性&#xff0c;不能很好的支持各个云服务厂商的OSS服务&#xff0c;为此&#xff0c;利用 aws-java-sdk-s3 做一个统一的封装&#xff0c;兼容S3 协议的通用文件存储工具类 &#xff0c;支持…

23北京邮电大学备考经验

目录【写在前面】本科成绩择校历程英语复习数学复习政治复习专业课复习其它建议笔记复盘压力处理恋爱关系【写在最后】【写在前面】 初试成绩&#xff1a; 本科成绩 总体&#xff1a;浙江某双非学校的软件工程专业、综合测评成绩班级前两名、浙江省省级优秀毕业生、发表过论…

每块硬盘最多可以有几个扩展分区?各个扩展分区最多可以有多少个逻辑驱动器?请高手告知,谢谢!

不同系统&#xff0c;不同分区方案&#xff0c;数量也有不同的。 Linux: 主分区最多4个 逻辑分区: SCSI 最多 16 个 IDE 最多 63 个 传统的分区方案(称为MBR分区方案)是将分区信息保存到磁盘的第一个扇区(MBR扇区)中的64个字节中&#xff0c;每个分区项占用16个字节&#xff0c…

C# 中的泛型

C# 中的泛型 泛型(Generic)是C# 2.0和通用语言运行时(CLR)的一个新特性&#xff0c;泛型为 .Net 框架引入了类型参数(type parameters)的概念。类型参数使得设计类和方法时不必确定一个或多个参数&#xff0c;具体参数可以等到调用时候的代码声明和实现确定。这意味着使用泛型…

React | React的JSX语法

✨ 个人主页&#xff1a;CoderHing &#x1f5a5;️ Node.js专栏&#xff1a;Node.js 初级知识 &#x1f64b;‍♂️ 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; &#x1f4ab; 系列专栏&#xff1a;吊打面试官系列 16天学会Vue 11天学会React Node专栏 &#…

多个渠道成功销售的秘诀速递

将您的电子商务业务扩展到多个渠道销售似乎是一项艰巨的任务吗&#xff1f;但如果有了正确的多渠道增长战略&#xff0c;这可能是实现快速增长的好方法。当然&#xff0c;您需要考虑借助一些工具与策略&#xff0c;而SaleSmartly&#xff08;ss客服&#xff09;可以为您提供。 …

minio 部署、迁移、使用

一、minio 部署 1、单节点部署 部署IP&#xff1a;192.168.206.10 1.1、下载minio的二进制文件 wget https://dl.min.io/server/minio/release/linux-amd64/minio 1.2、规划磁盘 minio 数据目录一定不能和 跟/ 在一个磁盘上&#xff0c;要单独挂载&#xff0c;比如规划将m…