ArcGIS中标注之一上下标、分数等特殊形式标注(转)

原文:http://blog.chinaunix.net/u/15722/showart_1330699.html
分数形式标注要素: 
首先将分母和分子的内容分别放在两个字段中,然后在标注的时候,标注内容选择用表达式标注,在表达式的输入框中输 入"<UND>" & [分子的字段] & "</UND>" & vbNewLine & [分母的字段],即可实现分数形式的标注。 
上下角标形式标注要素: 
将标注的主体内容、上角标内容和下角标内容分别用三个字段保存。假设这三个字段分别是:text、super_text和sub_text。步骤如下: 
1.在被标注的图层的属性里,点击“experssion(表达式)”。 
2.在弹出的“表达式”窗口中书写表达式如下 
[text] & "<sup>" & [super_text] & "</sup>" & "<sub>" & [sub_text] & "</sub>" 
其中: 
"<sup>" & [super_text] & "</sup>"表示将super_text字段里的内容作为上角标 
"<sub>" & [sub_text] & "</sub>"表示将sub_text字段里的内容作为下角标 
补充: 
比如在:对BlockName和Company进行标注时候,使用下面语句实现BlockName红色显示,而Company黑色显示 
"<CLR red='255' green='0' blue='0'>" & [BlockName] & "</CLR>" & VbNewLine & [Company] 
今天发现了一个小问题,如果BlockName或者 Company中有特殊字符如 &或者>等,会出现将这些特殊字符作为Script语句一部分处理情况,导致无法正常显示标注内容(无法解析VBScript语法). 
这个和网页编程时候非常类似,于是参考网页编程方法对代码做了一下修改,用"&"替代"&" 
Function FindLabel ( [BlockName], [Company] ) 
strBlockName = Replace([BlockName],"&","&") 
strCompany= Replace([Company],"&","&") 
FindLabel = "<CLR red='255' green='0' blue='0'>" & strBlockName & "</CLR>" & 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标签,比如加粗就是用<BOL>,上面问题就可以使用下面语句解决: 
"<BOL>" & [BlockName] & "</BOL>" & VbNewLine & [CompanyName] 
除了加粗,ArcGIS中还支持下面的文本格式标签: 
Font: 
"<FNT name='Arial' size='18'>" & [LABELFIELD] & "</FNT>" 

Color: 
"<CLR red='255' green='255' blue='255'>" & [LABELFIELD] & "</CLR>" 
"<CLR cyan='100' magenta ='100' yellow='100' black='100'>" & [LABELFIELD] & "</CLR>" 

Bold: 
"<BOL>" & [LABELFIELD] & "</BOL>" 

Italic: 
"<ITA>" & [LABELFIELD] & "</ITA>" 

Underline: 
"<UND>" & [LABELFIELD] & "</UND>" 

All caps: 
"<ACP>" & [LABELFIELD] & "</ACP>" 

Small caps: 
"<SCP>" & [LABELFIELD] & "</SCP>" 

Superscript 
"<SUP>" & [LABELFIELD] & "</SUP>" 

Subscript: 
"<SUB>" & [LABELFIELD] & "</SUB>" 

Character spacing (%): 
"<CHR spacing='25'>" & [LABELFIELD] & "</CHR>" 

Word spacing (%): 
"<WRD spacing='150'>" & [LABELFIELD] & "</WRD>" 

Leading (pts): 
"<LIN leading='12'>" & [LABELFIELD] & "</LIN 
需要注意的是,使用这些标签后,生成的Label语句在Verify按钮中是不生效的,只对最终的显示结果生效
posted @ 2009-08-22 14:37    阅读(2578)  评论(1)    收藏  举报