gisempire100
捉鬼专家
捉鬼专家
  • 注册日期2004-08-13
  • 发帖数552
  • QQ
  • 铜币2462枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1567回复:2

用vbscript实现ArcMap中的上下标标注功能

楼主#
更多 发布于:2008-01-04 18:05
<P>1.问题描述:<BR>如果要出一副地质图,一般地层的表示通常要上下标方式,比如A<SUP>1</SUP><SUB>4</SUB>(其中1为上标,4为下标),我把A14存入对应矢量要素的属性字段中,可是利用该字段标注要素时总是得不到想要的上下标。<BR>2.解决方法(代码版权归ESRI在线支持中心):<BR>下面的“Function FindLabel”是ArcMap标注的公式例子,在图层Label选项卡中。使用之前应该将“Advanced”钩选上,并将“SHAPE_Length”改为您自己的列名,再将其中的 "上标测试"和“下标”字样改成您的上下标即可。</P>
<P>Function FindLabel ( [Symbol] )<BR>  Dim lLen<BR>  lLen=Len( [Symbol] )<BR>  Dim i<BR>  Dim sStr<BR>  sStr=""<BR>  i=0<BR>  Do While i<lLen * 2<BR>    sStr=sStr ; " "<BR>    i=i+1<BR>  Loop<BR>  FindLabel = [Symbol]  ; "<SUP>" ; "上标测试"  ; vbcrlf ; sStr ; "下标" ; "</SUP>"<BR>End Function<BR>3.几点补充说明<BR>  上述代码只是解决了上下标的问题,因为我把上下标A14全存在一个字段里了,所以还有一个字符串提取的问题,就是说把1提出来变成上标,把4提出来用下标。可以用vb脚本的split函数。我把A14存成“A/1/4” 然后用split("A/1/4","/")即可提出这三个字符。<BR>  如果有些只有下标。而有些只有上标则要对第二步的代码加以完善,不同情况用不同的方法。 <BR></P>
喜欢0 评分0
A friend is never known till a man has need. ...CL
webgdd
路人甲
路人甲
  • 注册日期2003-12-04
  • 发帖数62
  • QQ
  • 铜币332枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-01-11 08:48
<TABLE fixed; WORD-BREAK: break-all" height="85%" width="95%" align=center border=0>

<TR>
<TD 9pt; LINE-HEIGHT: 12pt" vAlign=top width=* height="100%"><IMG src="http://www.gisempire.com/bbs/Skins/Default/topicface/face0.gif"> <B></B><BR>很实用,感谢了!</TD></TR></TABLE><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
stree
路人甲
路人甲
  • 注册日期2004-12-09
  • 发帖数223
  • QQ
  • 铜币782枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2008-01-05 01:17
很实用,感谢了!
举报 回复(0) 喜欢(0)     评分
游客

返回顶部