ArcGIS中标注(label)的使用技巧

摘要:
关于Maplex:Maplex是桌面软件的扩展模块。ArcGIS的Maplex扩展模块为ArcMap添加了高级注释布局和冲突检测方法。实验表明,使用Maplex在地图上标记可以节省至少50%的时间。虽然通过注释技术和Maplex优化,大多数标注都可以显示在最佳位置,但如果要单独修改标注,可以将标注转换为注释。

      标注是显示在地图上的文字信息,它是出图中不可或缺的重要元素。标注的样式丰富,并且放置位置灵活,因此带来了对标注控制的难度。例如地质图里的上下标,或是一些分式的标注,就必须使用代码编程来实现。这篇文章就主要结合几个实例来讨论一下标注的使用技巧,以及在ArcGIS软件中的实现。

 一、上下标      

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

      上标:"<SUP>" & [上标字段] & "</SUP>"

      下标:"<SUB>" & [下标字段] & "</SUB>"

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

关于Maplex:Maplex是桌面软件的一个扩展模块,ArcGIS的Maplex扩展模块在ArcMap中增加了高级的标注布局和冲突检测的方法。使用Maplex可以节约很多的时间。实验表明,在地图上标注,使用Maplex至少可以节约50%的时间。Maplex是GIS制图的一个重要工具,它提供了很好的文字渲染和具有打印质量的文字布局方式。 

 

上下标的解决方案如下:

1. 在数据的表格中将上下标内容存储在一个字段中,用空格分开,例如“上标 下标”;

2. 在Data Frame(数据框)的属性对话框中把标注引擎调整为“ESRI Maplex Label Engine”;

3. 在标注的表达式里敲入以下代码

[标注字段]&"<SUP>" & [上下标字段] & "</SUP>"

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

4. 点击Placement PropertiesFitting StrategyStack LabelOption,进行如下设置

         ArcGIS中标注(label)的使用技巧第2张    

得到的效果图如下所示,因为上下标字符的长度不同,右对齐尚不能达到很完美的效果,但是还是改进了许多。    

         ArcGIS中标注(label)的使用技巧第3张 

 

二、分式标注

分式标注是又一个难点,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,"") & vbnewline &  [分母字段

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(d*0.5,"") & vbnewline & space(a) & [分母字段

End Function

 

需要说明的是,这段代码的效果还不能将标注调整到最好的显示效果,但如果你使用了Maplex标注引擎,就会发现效果的改善,如下图所示。

     ArcGIS中标注(label)的使用技巧第4张

 

三、分类标注

  分类标注适用于为同一图层中的不同要素设置不同的标注样式,例如高速公路和环路、普通道路的字体为不同的大小和颜色。而标注默认会应用于整个图层,这就需要我们为默认的标注增加一个分组,在图层属性对话框中设置标注的方法为“Define classes of features and label each class differently,点击Add增加分组(需要几种不同的样式就设置几个分组),并且要为每个分组设置SQL语句进行过滤。然后为每个组设置不同的标注样式。

    ArcGIS中标注(label)的使用技巧第5张

 

总结:由于标注是动态放置,且样式可以通过VBScriptJScript来设置,因而对标注的管理非常灵活。虽然经过标注技巧和Maplex的优化能够将大部分标注以最优的位置显示,但如果期望对某些单独修改,可以将标注(Label)转换为注记(Annotation)。

免责声明:文章转载自《ArcGIS中标注(label)的使用技巧》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决java POI导入Excel超时问题dexlib2的源码框架下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

《ArcGIS Runtime SDK for Android开发笔记》——(11)、ArcGIS Runtime SDK常见空间数据加载

 ArcGIS Runtime SDK for Android 支持多种类型空间数据源、每一种都提供了相应的图层来直接加载,图层Layer是空间数据的载体,其主要继承关系及类型说明如下图所示: 转载请注明出处:http://www.cnblogs.com/gis-luq/p/5062715.html 1、图层分类解析 Layer是所有图层的基类,声明了空...

ArcGIS Server常见问题之一

摘自ESRI网站,有些内容是有限制的,要会员才能看到。目前关于ArcGIS Server开发的资料非常少,就这么一点文档,还要限制,不能让大家共享,实在是罪过。现在我贴出来,希望这些资料对一起学习AGS的朋友有所帮助。 错误描述 在ArcCatalog中,当成功的创建了server object之后,server object不能被预览。ArcCatalo...

ArcGIS使用Python脚本进行地理处理

文章目录 ArcPy的类 ArcPy的执行 ArcPy权限检查 ArcPy获取空间数据信息 ArcPy中游标,SQL ArcPy操作几何要素 ArcPy操作栅格数据集 Python是ArcGIS内置的脚本处理函数,可进行地图分析,数据处理,制图等功能。脚本与我们熟悉的ModelBuilder或是ArcToolbox功能很类似,但是不同的地方有:...

ArcGIS 一级文件夹下所有GDB中的指定要素添加到mxd的图层中

一级文件夹下存在多个GDB,每个GDB存在多个要素类,要求对名字为frame的要素类,添加到mxd的图层中显示 如下图: mxd = arcpy.mapping.MapDocument('CURRENT') df = arcpy.mapping.ListDataFrames(mxd)[0] arcpy.env.workspace = 'D:/.../一级...

iOS开发数据库篇—SQL

一、SQL语句 如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句 1.什么是SQL SQL(structured query language):结构化查询语言 SQL是一种对关系型数据库中的数据进行定义和操作的语言 SQL语言简洁,语法简单,好学好用 2.什么是SQL语句 使用SQL语言编写出来的句子代码,就是SQL语句 在程序运行...

ArcGIS切片技巧及注意事项三之高级工具应用

1 - 修改已经发布缓存服务的缓存级别 如上图所示,红箱子里有很多缓存管理的工具,这里我们要用的是里面的管理地图服务器缓存比例。 下图中,服务器输入本机,然后选择我们需要调整比例尺级别的服务,这个工具适用于我们的缓存已经发布,例如我们已经发布到500比例尺,现在我们想将缓存发布到200比例尺,这里我们追加一个200比例尺,然后在到我们服务缓存发布界面单独...