加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ArcMap实现多字段上下标注居中显示

(2013-03-08 15:13:59)
标签:

it

分类: GIS

ArcMap实现多字段上下标注居中显示

1、设置高级标注内容

http://s13/mw690/5d32e493td76499eafe8c&690
设置高级标注

2、设置标注内容对齐方式

http://s5/mw690/5d32e493td764a8854f54&690

设置sysmbol对齐方式

3、标注效果图


http://s12/mw690/5d32e493t7bf078f807eb&690
效果图引用

注:以下内容引用致百度文库以供学习

简单标注

ArcGIS中应用Expressions标注(Label)之一—上下标、分数等特殊形式标注

在制图时经常会遇到一些比较特殊的标注,比如林业图中的小班标注、地类图斑的扣除标注等,分数形式或上下标等。

分数形式标注要素:

      首先将分母和分子的内容分别放在两个字段中,然后在标注的时候,标注内容选择用表达式标注,在表达式的输入框中输入"" & [分子的字段] & "" & vbNewLine & [分母的字段],即可实现分数形式的标注。 

上下角标形式标注要素:

      将标注的主体内容、上角标内容和下角标内容分别用三个字段保存。假设这三个字段分别是:textsuper_textsub_text

步骤如下: 

1.在被标注的图层的属性里,点击“experssion(表达式)”。

2.在弹出的“表达式”窗口中书写表达式如下 [text] & "" & [super_text] & "" & "" & [sub_text] & "" 其中: "" & [super_text] & ""表示将super_text字段里的内容作为上角标 "" & [sub_text] & ""表示将sub_text字段里的内容作为下角标 

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按钮中是不生效的,只对最终的显示结果生效。

 

高级标注   

arcgis中可以使用简单的单行标注,也可以勾选advanced使用复杂一点的多行标注,为了有效的控制label的色彩字体等也可以使用arcgis label tags。以下是一些示例,全部使用VBScript

1. 加前导字符串:"Parcel no: " & [PARCELNO] "Parcel no: " & [PARCELNO]

2. 四舍五入显示: Round ([AREA], 1)

3. 字符全部变小写: LCase ([NAME])

4. 首字母大写其余小写:

Function FindLabel ( [NAME] )

FindLabel = UCase(Left([NAME],1)) & LCase(Right([NAME], Len([NAME]) -1))

End Function

5. 多字段多行显示: [PARCEL_ID] & vbNewLine & [LAND_USE]

6. 单字段多行显示(此处以逗号为分隔符):

Function FindLabel ( [LABELFIELD] )

FindLabel = replace([LABELFIELD], ", ", vbnewline)

End Function

7. 分条件标注并使用tags

Function FindLabel ([NAME], [POPULATION])

   if ([POPULATION] >= 250000) then

    FindLabel = "" + [NAME] + ""

else   FindLabel = [NAME]  

end if

End Function 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有