内容来自《ArcGIS从0到1》
ArcGIS中地图文字信息有两种表达方式:
标注(Label)和注记(Annotation)。
标注是主要用于将要素图层的属性字段内容显示在地图上。标注是动态的,即每次重绘地图时(例如,平移和缩放地图时)都会重新计算标注显示的内容和位置。标注不是所有对象都标注,如果地块太小,可能无法标注。
标注的特点如下:
有字段属性动态标注出来;
字体大小不随比例尺的变化;
标注位置,会随地图位置,比例尺的改变而移动位置;
设置后必须以MXD方式保存标注;
标注永远不能覆盖(下面图层的标注永远可见)。
注记是存放地理数据库中( SHP文件不支持注记)。与其他要素类一样,注记要素类中的所有要素均具有地理位置和属性,可以位于要素数据集内或独立的要素类内。每个文本注记要素都具有符号系统,其中包括字体、大小、颜色以及其他任何文本符号属性。注记通常为文本,但也可能包括需要其他类型符号系统的图形形状(例如方框、箭头、直线和点)。
注记特点如下:
注记是一个实实在在的要素,其物理存在于一个注记类图层;
字体大小跟着比例尺的变化而变化,比例尺小时字体就小,比例大时字体变大;
注记位置是固定的;
总结:由于标注和注记特点不一样,作用也不一样,标注主要用于地图的浏览,而注记主要用于地图打印;反之标注一般不用于地图打印,注记不用于浏览。CAD中只有注记,没有标注,ArcGIS中标注不能直接转CAD,需要把标注转为注记,注记只能放在数据库中。
二分式标注在我们实际工作常用,分式注记的内容主要有分子、分母和分数线三部分内容,使用VBScript语法时,有如下三种方式:
1. ""& [分子字段] &""&vbcrlf & [分母字段] ;
2. ""& [分子字段] & ""&vbnewline& [分母字段];
3. ""& [分子字段] &""& chr(13)& chr(10)& [分母字段] ;
说明:换行有三种方式,使用vbcrlf或者vbnewline,也可是使用chr(13) & chr(10)。其中chr(13)是硬回车,chr(10)是软回车;而""表示开始下划线,""表示结束下划线。字段名前后使用中括号,“&”是字段串连接符,VB语言不区分大小写,引号是半角的双引号。
Python的表达式:"" +[分子字段] +"" + "\n" + [分母字段];
测试数据请参看“chp7\分式.mxd”,第一个标准为普通二分式,效果如图所示:
可以看到,当前标注已基本实现分式,缺陷是分式线的长度取分子字符的长度,理论上应该取分子和分母中字符最长一个,要达到该效果,只能编写高级的代码实现,具体的处理代码如下:
'调用时,在需要修改的地方,请输入如下代码:
把其中字段,修改成自己拟标注的字段,其中字段1为分子字段;字段2为分母字段。也可以是更多字段的二分式,如:
要查看这个高级代码,处理后的分式标注效果,在ArcMap下打开“chp7\分式.mxd”文档,单击“DLTB高级二分式”右击图层属性,如图7-105所示。在界面中,先选中“高级”选项,然后在“解析程序”选项中选择“VBScript”,然后在表达式编辑框中复制上述程序代码。这个代码换成自己数据时,一定要字段修改成自己的字段。
在表达式编辑框内输入完上述函数代码后,单击“确定”后显示的标准效果如下:
如果需要修改标注分子、分母的数据内容,就重新编写FindLabel函数中代码内容。如果需要调用三个字段,修改的具体代码类似如下:
该标注格式的样例数据,具体见“chp7\分式.mxd”文档下“DLTB高级二分式三字段”数据,按照上述函数定义,输入到对应的表达式编辑框中,按“确定”后,效果如下(分子为:图斑的地类代码+图斑面积,分母为图斑的地类名称):
- END -
领取专属 10元无门槛券
私享最新 技术干货