ArcGIS
中标注之一上下标、分数等特殊形式标注
分数形式标注要素:
首先将分母和分子的内容分别放在两个字段中,然后在标注的时候,
标注内容选择用表达式标注,
在表达式的输入框中输入
"" & [
分子的字段
] & "" & vbNewLine
& [
分母的字段
]
,
即可实现分数形式的标注。
上下角标形式标注要素:
将标注的主体内容、
上角标内容和下角标内容分别用三个字段保存。假设这三个字段分别是:
text
、
super_text
和
sub_text
。步骤如下:
1.
在被标注的图层的属性里,点击
“experssion(
表达式
)”
。
2.
在弹出
的
“
表达式
”
窗口中书写表达式如下
[text] & "" & [super_text] & "" & "" & [sub_text] & ""
其
中:
"" & [super_text] & ""
表示将
super_text
字段里的内容作为上角标
"" & [sub_text] & ""
表示将
sub_text
字段里的内容作为下角标
补充
:
比如在
:
对
BlockName
和
Company
进行标
注时候
,
使用下面语句实现
BlockName
红色显示
,
而
Company
黑色显示
"" & [BlockName] &
"" & VbNewLine & [Company]
今天发现了一个小问题
,
如果
BlockName
或者
Company
中有
特殊字符如
&
或者
>
等,
会出现将这些特殊字符作为
Script
语句一部分处理情况
,
导致无法正
常显示标注内容
(
无法解析
VBScript
语法
).
这个和网页编程时候非常类似
,
于是参考网页编
程方法对代码做了一下修改
,
用
"&"
替代
"&"
Function
FindLabel
(
[BlockName],
[Company]
)
strBlockName
=
Replace([BlockName],"&","&")
strCompany=
Replace([Company],"&","&")
FindLabel = "" & strBlockName & "" & VbNewLine & strCompany End Function
补充
2:
以前
用
ArcGIS Label
一般也就在图层的
Properties
里面定义一下
Label
字体大小和粗细。这两天
遇到一个问题,需要在
Label
中显示多个字段的内容,比如
BlockName
和
CompanyName
。
其实这个本来不是很难的问题,
因为
Label
中支持
VBScript
,
使用
[BlockName] & VbNewLine
& [CompanyName]
。就可以实现标注中第一行显示
BlockName
,第二行显示
CompanyName.
现在问题出来了,出图时候希望突出
BlockName
效果,希望加粗显示,而
CompanyName
使用一般字体。考虑了很长时间终于从
ArcGIS
帮助中找到了相关的内容,原来
Label
的
VBScript
里面支持类似于
Html
的
VBScript
标签,比如加粗就是用
,
上面问题就可以使用下
面语句解决
: "" & [BlockName] & "" & VbNewLine & [CompanyName]
除了加粗,
ArcGIS
中
还支持下面的文本格式标签
: Font: "" & [LABELFIELD] & "" Color: "" & [LABELFIELD] &
"" "" & [LABELFIELD] & "" Bold: "" & [LABELFIELD] & "" Italic: "" & [LABELFIELD] & ""
Underline:
""
&
[LABELFIELD]
&
""
All
caps:
""
&
[LABELFIELD]
&
""
Small
caps:
""
&
[LABELFIELD] & "" Superscript "" & [LABELFIELD] & "" Subscript: "" & [LABELFIELD] &
"" Character spacing (%): "" & [LABELFIELD] & "" Word spacing (%): "" & [LABELFIELD] &
""
Leading
(pts):
""
&
[LABELFIELD]
&
"
需要注意的是,使用这些标签后,生成的
Label
语句在
Verify
按钮中是不生效的,只对最终的显示结果生效