ArcGIS让你的标注炫起来2(Maplex)

更新时间:2024-04-12 20:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ArcGIS:让你的标注炫起来

—— Maplex的几种特殊应用

Maplex智能标注带给我们的不仅是标注的位置设置智能化、适应性策略与冲突解决方法的贴合实际,它还带给我们更多标注样式的自定义空间。让我们能够在实际案例中按照行业规定等进行规范化的标注。

下面我们就来介绍几种常用的标注形式:

1 地质图上下标

在地质图中经常会使用上下标的文字,在ArcGIS 10的帮助文档中,我们可以查到上下标的写法如下所示:

上标:\上标字段] & \; 下标:\下标字段] & \。

但是如果需要在同时使用上下标的时候,就会出现上下标不对齐的问题。如果我们想要让标注显示的美观一些,就需要使用到高级的标注技巧,Maplex这个扩展模块就帮我们解决了这个问题。

上下标的解决方案如下:

① 在数据表格中将上下标内容存储在一个字段中,用空格分开,如“上标 下标”; ② 在标注表达式里敲入代码:[标注字段]&\上下标字段] & \;

(这句代码仅仅采用了上标的关键字,它会把现在的上下标统一显示在上标的位置,下面还需要调整标注的放置属性。)

③ 点Placement Properties—Fitting Strategy—Stack Label—Option,设置如下:

图1 Label Stacking Options设置

得到的效果图如下图2所示:

图2 地质图上下标效果图

2 分式标注

ArcGIS里并不能直接去构造分式,我们可以想办法把分子加下划线来表示,但对于分母的长度比分子长出很多的情况,显示效果就非常不理想。因此,最好能够动态的判断分子和分母的长度,按照最长的长度来确定分式横线的长度,代码如下所示(VBScript):

Function FindLabel ( [分子字段] , [分母字段] )

dim a,b,c

b=len ( [分子字段] ) c=len ( [分母字段] ) if (b>c) then a=b else a=c end if

FindLabel =[分子字段] & vbnewline& string(a*0.5,\—\分母字段] End Function

对于代分数的话,也可以用类似的方法,只需再添加一个表示整数的字段,代码如下: Function FindLabel ([整数字段] , [分子字段] , [分母字段] ) dim a,b,c,d

a=len ( [整数字段] ) b=len ( [分子字段] ) c=len ( [分母字段] ) if (b>c) then d=b else d=c end if

FindLabel =[分子字段] &vbnewline&[整数字段] & string(a*0.5,\—\space (a) & [分母字段] End Function

使用了Maplex标注引擎,就会发现效果的改善,如下图所示:

图3 分式标注效果图

3 等高线标注

等高线的标注需要不打断线,但是在线上进行标注,这就需要用到晕圈,其创建步骤如下:

① 设置“等值线放置”样式。 ② 在要素之后创建晕圈。

③ 创建标注表达式,如:每隔 100 个间距标注一次。 根据数据使用下面其中一个标注表达式。

? 如果您希望仅标注计曲线,并且等值线数据包含的索引字段指定了哪些等值线为计

曲线,则可以使用以下标注表达式:

Function FindLabel([elevation],[index]) If [index] = 1 Then FindLabel = [elevation] else FindLabel = \

? 如果您希望标注指定的等高距,可以使用以下标注表达式(100为间距,可替换):

Function FindLabel ([elevation]) If ([elevation] Mod 100) = 0 Then FindLabel = [elevation] End If End Function

如下图4显示的等值线,是每隔 100 个间距放置一个标注并用晕圈围绕。

图4 等高线标注效果图

( 作者:guyp@lreis.ac.cn )

本文来源:https://www.bwwdw.com/article/4k0p.html

Top