同事用ArcGIS作图,觉得标注字段太长,想让长的标注自动换行,让我帮忙。于是照着ArcGIS的帮助文件写了一个表达式,成功换行。
- 打开需要添加标注的图层的属性
2、选择你需要标注的字段,然后点击表达式
3、在弹出的标注表达式窗口中勾选“高级”
4、将以下代码替换上图中红色框中的代码,点击验证,通过验证就说明表达式正确,点确定即可完成操作。如果表达式错误,则会弹出相应的错误提示,按照错误提示修改表达式,直到通过验证。
Function FindLabel ([NAME])
ss=len([NAME])
if (ss >4) then
FindLabel = left([NAME],int(ss/2)) & chr(13) & right([NAME],ss-int(ss/2))
else
FindLabel = [NAME]
end if
End Function
给大家简单说明一下这个代码:
ArcGIS表达式里VBScript固定结构就是:
Function FindLabel (字段名)
表达式
······
End Function
- len([NAME]) : 字段属性的长度 chr(13): 换行符
- left([NAME],int(ss/2)):int取整,left是取字符串坐标多少个字符,从左边第一个算起
- right([NAME],ss-int(ss/2)) :right是取右边多少个字符,最右边1个算起。
可以参照这个改成换3行、4行······