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

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

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


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

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

标注结果如下:

二、更复杂一点的标注

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

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

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

标注结果如下:

三、多分式标注

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

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

标注结果如下:

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

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

标注结果如下:

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

def FindLabel ( [OBJECTID] , [中类], [大类] , [小类]):
  a=len([OBJECTID] )
  b=len([中类])
  c=len( [大类] )
  d=len( [小类] )
  if a>b:
    s=a
  else:
    s=b
  p=[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.mfbz.cn/a/10062.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 小型项目大全 1~5

一、百吉饼 原文&#xff1a;http://inventwithpython.com/bigbookpython/project1.html 在百吉饼这种演绎逻辑游戏中&#xff0c;你必须根据线索猜出一个秘密的三位数。该游戏提供以下提示之一来响应您的猜测&#xff1a;"Pico"&#xff0c;当您的猜测在错误的位置有…

【SpringMVC】7—文件上传

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

布隆过滤器讲解及基于Guava BloomFilter案例

目录 1、布隆过滤器是什么 2、主要作用 3、存储过程 4、查询过程 5、布隆过滤器的删除操作 6、优点 7、缺点 8、测试误判案例 8.1、引入Guava依赖 8.2、编写测试代码 8.3、测试 8.4、BloomFilter实现原理 9、总结 推荐博主视频&#xff0c;讲的很棒&#xff1a;布隆…

华为运动健康服务Health Kit 6.10.0版本新增功能速览!

华为运动健康服务&#xff08;HUAWEI Health Kit&#xff09;6.10.0 版本新增的能力有哪些&#xff1f; 阅读本文寻找答案&#xff0c;一起加入运动健康服务生态大家庭&#xff01; 一、 支持三方应用查询用户测量的连续血糖数据 符合申请Health Kit服务中开发者申请资质要求…

大数据项目之电商数据仓库系统回顾

文章目录一、实训课题二、实训目的三、操作环境四、 实训过程&#xff08;实训内容及主要模块&#xff09;五、实训中用到的课程知识点六、实训中遇到的问题及解决方法七、课程实训体会与心得八、程序清单一、实训课题 大数据项目之电商数据仓库系统 二、实训目的 完成一个电…

7.基于概率距离快速削减法的风光场景生成与削减方法

matlab代码&#xff1a;基于概率距离快速削减法的风光场景生成与削减方法 采用蒙特卡洛进行场景生成&#xff0c;并再次进行场景缩减。 clear;clc; %风电出力预测均值E W[5.8,6.7,5.8,5.1,6.3,5,6.2,6,4.1,6,7,6.8,6.5,6.9,5,5.6,6,5.8,6.2,4.7,3.3,4.4,5.6,5]; %取标准差为风…

在unreal中的基于波叠加的波浪水面材质原理和制作

关于水的渲染模型 如何渲染出真实的水体和模拟&#xff0c;是图形学&#xff0c;游戏开发乃至仿真领域很有意思的一件事 记得小时候玩《Command & Conquer: Red Alert 3》&#xff0c;被当时的水面效果深深震撼&#xff0c;作为一款2008年出的游戏&#xff0c;现在想起它…

算法:将一个数组旋转k步

题目 输入一个数组如 [1,2,3,4,5,6,7]&#xff0c;输出旋转 k 步后的数组。 旋转 1 步&#xff1a;就是把尾部的 7 放在数组头部前面&#xff0c;也就是 [7,1,2,3,4,5,6]旋转 2 步&#xff1a;就是把尾部的 6 放在数组头部前面&#xff0c;也就是 [6,7,1,2,3,4,5]… 思路 思…

C++继承(上)

一、继承的概念及定义1.继承的概念2.继承定义2.1定义格式2.2继承关系和访问限定符2.3继承基类成员访问方式的变化二、基类和派生类对象赋值转换三、继承中的作用域一、继承的概念及定义 1.继承的概念 继承机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允…

聊聊如何运用JAVA注解处理器(APT)

什么是APT APT&#xff08;Annotation Processing Tool&#xff09;它是Java编译期注解处理器&#xff0c;它可以让开发人员在编译期对注解进行处理&#xff0c;通过APT可以获取到注解和被注解对象的相关信息&#xff0c;并根据这些信息在编译期按我们的需求生成java代码模板或…

【SQL Server】数据库开发指南(一)数据库设计

文章目录一、数据库设计的必要性二、什么是数据库设计三、数据库设计的重要性五、数据模型5.1 实体-关系&#xff08;E-R&#xff09;数据模型5.2 实体&#xff08;Entity&#xff09;5.3 属性&#xff08;Attribute&#xff09;5.5 关系&#xff08;Relationship&#xff09;六…

和ChatGPT-4聊完后,我觉得一切可能已经来不及了

了然无味&#xff0c;晴空万里&#xff01;和ChatGPT-4开始了一场坦诚的沟通&#xff0c;它全程都表现出高情商&#xff0c;以及不断尽量安抚我的情绪&#xff0c;而这&#xff0c;恰恰令我脊背发凉。 部分文字截取 ZM&#xff1a;我能不能理解每次对话就是一次你的“生命” G&…

LeetCode刷题6:二叉树篇之第 1 节

提示1&#xff1a;本篇先带大家了解二叉树的基础理论&#xff0c;后给出4道基础题目&#xff0c;不难&#xff0c;冲啊~ 算法刷题系列 LeetCode刷题1&#xff1a;数组篇LeetCode刷题2&#xff1a;链表篇LeetCode刷题3&#xff1a;哈希篇LeetCode刷题4&#xff1a;字符串篇Lee…

1678_计算机架构黄金时代_文章阅读

全部学习汇总&#xff1a; GreyZhang/g_risc_v: Learning notes about RISC V. (github.com) 看了一份几年前的文章&#xff0c;觉得还是挺有收获的&#xff0c;因此做一个简单的整理。 对于架构有很大影响的主要考虑四点&#xff1a;专用硬件的实现、高安全性的要求、开放指令…

【Pandas】① Pandas 数据处理基础

介绍 Pandas 是非常著名的开源数据处理库&#xff0c;我们可以通过它完成对数据集进行快速读取、转换、过滤、分析等一系列操作。除此之外&#xff0c;Pandas 拥有强大的缺失数据处理与数据透视功能&#xff0c;可谓是数据预处理中的必备利器。 知识点 数据类型数据读取数据选择…

有效的括号(力扣刷题)代码随想录刷题

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左…

RK3568平台开发系列讲解(驱动基础篇)mmap系统调用详解

🚀返回专栏总目录 文章目录 一、什么是mmap二、mmap映射类型2.1、私有匿名映射2.2、私有文件映射2.3、共享文件映射2.4、共享匿名映射沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文将详细介绍mmap系统调用。 一、什么是mmap mmap/munmap函数是用户空间中常用的…

Nacos 性能报告

目录 一、测试目的 二、测试工具 三、测试环境 1. 环境 服务端 客户端 2. 启动参数 服务端 客户端 四、测试场景 1. 大规模服务注册后达到稳定状态 场景描述 2. 大规模服务注册达到稳定状态后&#xff0c;部分实例频繁发布 场景描述 五、测试数据 1. 大规模服务…

软件测试基础

软件测试的定义、软件测试的目的 IEEE&#xff1a;The process of running or testing the system manually or automatically by using tools, in order to verify whether it satisfies the requirements or to make clear the differences between the actual outcome and…

DDoS攻击实验笔记

DoS&DDoS简介 DoS(Denial of Service)&#xff0c;拒绝服务攻击是通过一些方法影响服务的可用性&#xff0c;比如早期主要基于系统和应用程序的漏洞&#xff0c;只需要几个请求或数据包就能导致长时间的服务不可用&#xff0c;但易被入侵检测系统发现。 DDoS(Distributed D…
最新文章