ArcGIS的Maplex扩展模块在ArcMap中增加了高级的标注布局和冲突检测的方法。它可以生成能保存在地图文档中的文字,也能产生可以保存在geodatabase复杂的注记层中的注记。
使用Maplex可以节约很多的时间。实例研究已经表明,在地图上标注,使用Maplex至少可以节约50%的时间。Maplex是GIS制图的一个重要工具,它提供了很好的文字渲染和具有打印质量的文字布局方式。因此,任何需要制作高质量地图的地方都应该考虑至少需要一套ArcGIS的Maplex。
Maplex已经包括在ArcInfo中了,对于ArcView和ArcEditor来说它也是一个可选择的扩展模块
一、具体操作
1. 使用Maplex引擎。
1)打开ArcMap,点击菜单栏【Tools】--【Extensions】,调出【Extensions】属性窗体,勾选上Maplex选项,如下图:
注:必须拥有Maplex授权才能使用该功能模块
2)在右键点击MapFrame,选择【属性】,点击【General】标签,在【label engine】下拉框选项选择【ESRI Maplex Label Engine】,点击【应用】按钮完成。
2. 工具菜单使用
1)在菜单空白的地方点击右键,调出工具选项列表,在列表中选择【Labeling】,调出Label的工具菜单,如下图:
2) 工具条工具介绍
按钮 | 名称 | 功能 |
| 注记管理器。通过注记管理器可以对注记进行详细设置,如注记样式、布局、冲突处理等。 | |
| Label Priority Ranking | 注记顺序设置。可以调整注记的叠加顺序。 |
| Label Weight Ranking | 注记权重设置。当label与feature可能存在冲突时,可以通过设置权重去解决冲突。 |
| Lock Labels | 锁定注记。当注记被锁定时,其绝对位置不会受地图缩放的影响。 |
| Pause Labeling | 停止注记。当停止注记的时候,注记会被隐藏。 |
| View Unplaced Labels | 查看没有显示的注记。当要素处于地图边缘只有少部分显示无法放下所有的注记,这时候该要素的注记会默认不显示。使用该功能可以查看上述情况没显示的注记。 |
3) Label Manager工具介绍
a. TextString --通过【expression】 控制label的表达,能实现单个和多个字段混合显示、脚本定制label显示格式等
b. TextSymbol --可设置label的字体样式
c. placement properties 框架下的功能
下拉框内容 可根据不同的图层类型提供多种不同的放置模板作为参考
Position功能 可解决label如何放置的问题。提供多种放置的方式,如横放、笔直放置、沿着曲线放置等;可根据实际需要对label进行偏移
Properties功能 包含三个标签页的功能:label position、fitting strategy 、conflict resolution。
功能 | 说明 |
label position | 是labelmanager主界面中的position选项和下拉框选项的功能的整合 |
fitting strategy | 这个标签页的功能能够解决“如何让label适应地图”的问题,诸如label的堆放、在稠密的地方隐藏部分label以提高label的可读性、在无法放置label的情况下缩减label字体的大小以适应要素范围、对label进行简写显示。 |
conflict resolution | 这个标签页提供label冲突的解决方案。可以通过其设置feature class 的权重去确定label的层叠关系;设置相邻label之间的最小间距;设置是否允许label重叠;删除重复的label等 |
3. 具体使用设置
1) 显示内容和样式设置
使用Maplex可以像传统的label功能一样设置label的显示的字段和样式,但Maplex功能更为强大,它还可以定义规则来指定label的放置。下面以宗地为例,介绍如果对注记进行分行显示。
a.设置多个字段显示label。打开【Label manager】,在左边的【label class】列表中选择“宗地”,点击【expression】按钮,调出【label expression】,设置要显示的字段组合,如下图,使用“SERIAL_NUM”和“NUMBER_”字段进行组合,中间以空格间隔开.
b.设置label的放置方式。在【Label manager】界面中,在【Placement Properties】框中点击【Position】按钮,选择放置的方式。如下图对面状提供横放、直放和曲线放置三种方式:
![](http://www.gisall.com/attachments/2010/05/122747_201005261512471jnAG.png)
线要素还提供更多的放置方式,如下图:
![](http://www.gisall.com/attachments/2010/05/122747_201005261513021WS7A.png)
c.分隔换行显示。在【Label manager】界面中,在【Placement Properties】框中点击【Properties】按钮,弹出【placement properties】面板,点击【Fitting Strategy】标签。勾选上【Stack label】选项,并点击【options】按钮,调出【label stacking options】面板。在stacking separators 项输入要分隔的符号(本例子中使用空格键作为分隔),选择【Forced sprite】
![](http://www.gisall.com/attachments/2010/05/122747_201005261515551WXEP.png)
![](http://www.gisall.com/attachments/2010/05/122747_201005261516091WrKP.png)
d.显示效果如下图所示
![](http://www.gisall.com/attachments/2010/05/122747_201005261516181zNap.png)
e.对不能完全显示的label进行字体的缩减。点击【properties】按钮,在【placement properties】对话框中选择【fitting strategy】标签页,勾选上【reduce font size】,如下图:
![](http://www.gisall.com/attachments/2010/05/122747_201005261518291QGn3.png)
点击右边的【limits】按钮,设置限制参数,如下图参数显示,label字体大小为8pts,当其不能完全在图层内放置是,字体缩减为的步长为0.5pts,最小字体为4pts,加入4pts下label都无法放置,那这个要素的label则不再地图上显示。
![](http://www.gisall.com/attachments/2010/05/122747_201005261520031Rsuz.png)
效果如下图所示:
![](http://www.gisall.com/attachments/2010/05/122747_2010052615201515Xoi.png)
2)冲突处理
Maplex提供了强大的冲突处理策略,如重叠的权重、删除重复项、是否允许重叠等。下面以一个街道的例子说明一下冲突处理。如下图,已经加入了街道数据,并显示街道的名称。传统的label设置是每一个feature都添加一个label,这样,对于短小的feature来说,显示一个过长的label会导致label显示过于密集,不利于查看。
![](http://www.gisall.com/attachments/2010/05/122747_201005261523021sE5p.png)
这中情况下可以使用Maplex的remove duplicate冲突解决方案。具体的操作如下,在【placement properties】对话框,选择【conflict resolution】,勾选【remove duplicate】选项;点击【limits】按钮,在【duplicate label】对话框中输入查找的参数。这样,在输入范围内如出现重复的label,ArcMap会将其删除并重新计算label位置,如下图所示:
![](http://www.gisall.com/attachments/2010/05/122747_201005261523101P5Om.png)
![](http://www.gisall.com/attachments/2010/05/122747_20100526152315161bK.png)
效果如下图所示
![](http://www.gisall.com/attachments/2010/05/122747_201005261523221jAdw.png)
其他冲突的功能这里不作详细的介绍。
4.其他Label工具的使用
4.1 label priority ranking ,可设置label的优先次序。
![](http://www.gisall.com/attachments/2010/05/122747_201005261523291bUqp.png)
4.2 weight ranking 。设置权重,当feature和label之间可能发生潜在冲突的时候(如重叠、压盖等),通过设置权重可以控制该显示哪个label。如下图所示
![](http://www.gisall.com/attachments/2010/05/122747_201005261523391mGj1.png)
左图的道路图层的权重值设为0,从图上可以看到,其他图层的label有部分穿过道路,与道路发生压盖;右图对道路图层设置了权重值,比其他图层的权重值都要高,从图上可见,其他图层的label对道路进行了自动避让。