ArcGIS三分式标注、四分式标注和同时上下标实现
部分内容来自《ArcGIS从0到1》,扫码下面加微信公众号,学习更多
可以在:https://item.jd.com/12668816.html购买
-
1.三分式有后三分式和前分式,后三分式多一些,如下:
使用数据:“chp7\三分式.mxd”文档,,系统标注的显示效果如下: 该标注格式为三分是标注,其中分子为图斑的地类代码,中间为分隔线+图斑的面积,分母为图斑的地类名称。实现该样式标注的详细VBscript代码如下:
-
代码如下: '设计人:闫磊 '----------FUNCTION STRLEN(STR)---------- FUNCTION strlen(str) dim p_len p_len=0 strlen=0 p_len=len(str) FOR xx=1 to p_len IF asc(mid(str,xx,1))<0 then strlen=int(strlen) + 2 ELSE strlen=int(strlen) + 1 END if NEXT END function FUNCTION myFind(cunname,DJH,SHAPE_Area ) dim str str=SHAPE_Area dim d d=strlen(str) dim d1 dim d2 d1=strlen(cunname) /2 d2=strlen(DJH) /2 if d2>d1 then d1=d2 end if myFind = cunname & space(d) &vbnewline & string(d1,"—") & str& vbnewline & DJH & space(d) END Function '修改这里 Function FindLabel([DLBM],[DLMC],[shape_area] ) FindLabel = myFind([DLBM],[DLMC],Round([shape_area]*3/2000,1) &"亩" ) End Function
修改FindLabel函数参数,可以是三个,也可以是更多参数;如该函数的标注处理效果,使得字体间隔不符合使用要求的,还需要设置标注字符的间距,具体操作如图所示。
标注字体符号设置
在该图层的属性界面的“标注”选项中,单击“符号”按钮,出现如图所示:
图7-107 编辑字体符号
单击“编辑符号”,切换到格式化文本,设置字符间距和行距,都设置为负值,根据效果设置,如图所示。
设置字体间距和行间距
-
2.前三分式,效果如下:
'----------FUNCTION STRLEN(STR)----------
FUNCTION strlen(str)
dim p_len
p_len=0
strlen=0
p_len=len(str)
FOR xx=1 to p_len
IF asc(mid(str,xx,1))<0 then
strlen=int(strlen) + 2
ELSE
strlen=int(strlen) + 1
END if
NEXT
END function
FUNCTION myFind( cunname, DJH,SHAPE_Area )
dim str
str=SHAPE_Area
dim d
d=strlen(str)
dim d1
dim d2
d1=strlen(cunname) /2
d2=strlen(DJH) /2
if d2>d1 then
d1=d2
end if
myFind =" " & space(d-1) &cunname & vbnewline & str & string(d1, "—") & vbnewline & space(d) & DJH
END Function
'编制日期:2012-03-25
Function FindLabel ([小班号],[林种],[树种],[小班面积],[完成面积],[密度],[完成情况])
FindLabel = myFind( [林种] & "-" & [小班面积] & "(" & [完成面积] & ")",[树种] & "-" & [密度] & "-" & [完成情况], [小班号])
End Function
设置和上面一样
-
3.四分式,效果如下:
'----------FUNCTION STRLEN(STR)----------
FUNCTION strlen(str)
dim p_len
p_len=0
strlen=0
p_len=len(str)
FOR xx=1 to p_len
IF asc(mid(str,xx,1))<0 then
strlen=int(strlen) + 2
ELSE
strlen=int(strlen) + 1
END if
NEXT
END function
FUNCTION myFind( cunname, DJH,SHAPE_Area,lb )
dim str
str=SHAPE_Area
dim d
d=strlen(str)
dim d1
dim d2
d1=strlen(cunname) /2
d2=strlen(DJH) /2
if d2>d1 then
d1=d2
end if
myFind =" " & space(d-1) &cunname & vbnewline & str & string(d1, "—") & lb & vbnewline & space(d) & DJH
END Function
'编制日期:2012-03-25
Function FindLabel ([小班号],[林种],[树种],[小班面积],[完成面积],[密度],[完成情况],[类别] )
FindLabel = myFind( [林种] & "-" & [小班面积] & "(" & [完成面积] & ")",[树种] & "-" & [密度] & "-" & [完成情况], [小班号],[类别])
End Function
-
4.上下标同时,效果如下
代码如下
-
Function FindLabel ( [NAME] ) Dim lLen lLen=StrLen( [NAME] )/2 Dim i Dim sStr sStr="" i=0 Do While i<lLen * 2 sStr=sStr & " " i=i+1 Loop FindLabel = [NAME] & "<SUP>" & "上面" & vbcrlf & sStr & "下面" & "</SUP>" End Function function strlen(str) dim p_len p_len=0 strlen=0 p_len=len(str) for xx=1 to p_len if asc(mid(str,xx,1))<0 then strlen=int(strlen) + 2 else strlen=int(strlen) + 1 end if next end function
分类:
其他
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2014-08-03 ArcGIS 投影转换(AE)
2012-08-03 云南云测采用本人开发所有权辅助建库软件,获得好评