前言
今天在用ArcMap制图的时候遇到一个制作类似以假分数格式的label标注的问题。效果如下:
解决方法
参考:https://www.cnblogs.com/yzhyingcool/p/10089517.html
使用VBScript脚本代码如下:
Function FindLabel ( [面积亩] , [XH], [潍坊系] )
Dim fmLength '分母长度
Dim fzLength '分子长度
Dim zsLength '整数长度
Dim hxLength '分式线长度
fmLength = Len("潍坊编号:"+[潍坊系]) 'len函数取字符串长度,字段计算器那儿有讲
fzLength = Len("序号:"+[XH])
zsLength = Len([面积亩]+"亩")
If fmLength > fzLength Then '如果分母比分子长
hxLength=fmLength
else '反之
hxLength=fzLength
End If '下面的"-"或"—"根据英文(数字)或者中文进行调整即可
FindLabel = "序号:"+[XH] +vbcrlf+ space(fmLength)+string(fmLength*2,"-")+space(zsLength/2)+[面积亩]+"亩"+vbcrlf+ "潍坊编号:"+[潍坊系]
End Function
备注:
- [面积亩],[潍坊系],[XH] :需要替换成自己需要的字段
- vbcrlf:回车并换行
- space(): 空格函数,这个需要根据实际情况进行调整