写在前面的话: B站搜索“中图地信”便可观看全套71章节详细操作视频(有操作数据获取,同步学习)
(一)标注变色效果的实现
标记表达式在不使用Maplex的情况下也可以使用,但本例中用到了Maplex换行设置,所以启用ESRI Maplex标注引擎。下面介绍标注变色的实现过程。
[1]启动ArcMap,打开【标注变色_Start.mxd】;
[2]右键单击菜单栏空白处,选择【标注】工具条;
[3]在【标注】工具条上,选择【标注】->【使用Maplex 标注引擎】,启动Maplex标注引擎,如图 1所示;
图 1 启用Maplex标注引擎
[4]在内容列表中,右键单击【学校】图层,选择【属性】,弹出【图层属性】窗口,切换到【标注】页,如图 2所示;
图 2 图层属性
[5]在标注页面单击【表达式】,弹出标注【表达式】窗口,如图 3所示;
图 3 标注表达式
[6]在标注表达式页面中,默认情况使用的是之前通过名字标注的表达式,勾选Advanced,脚本类型选择VBScript,输入以下脚本:
Function FindLabel ( [name1], [englishname1] )
str = Split( [name1],",")
FindLabel ="<FNT SIZE= '11'><CLR RED = '255'>" & str(0) & "</CLR></FNT>" & "," & "<FNT SIZE=' 9'><CLR BLUE = '255'>" & str(1) & "</CLR></FNT>" & "," & "<FNT SIZE= '7'>" & [englishname1] & "</FNT>"
End Function
【注释】:注记的格式化可以嵌套使用,比如字体和颜色可同时设置,修改颜色的主要是标签<CLR>,这段脚本中对标注内容进行了分割,添加了“,”标记,用于换行使用。
[7]脚本写完之后,单击【验证】可以预览标注效果,如图 4;
图 4 标注表达式验证
[8]单击【确定】,回到【标注表达式】窗口,单击【保存】按钮,可以将这段脚本保存起来,方便下次使用;
[9]单击【确定】,回到图层属性【标注】页,单击【放置属性】,弹出标注放置属性窗口,如图 5;
图 5 标注放置属性
[10]切换到【自适应策略】页,单击标注堆叠的选项,弹出标注堆叠选项对话框,在堆叠分隔符列表中输入“,”,勾选【强制分割】,其他参数设置如图 6;
图 6 标注堆叠选项
[11]连续单击【确定】,回到地图窗口,可以看到标注已经变色,并且换行,查看效果如图 7。
图 7 标注变色
注意:在中文版软件中,修改颜色的脚本可能失效,注记始终显示为黑色;若遇到这种情况,切换到英文版本即可解决。
(二)标注三值的实现
接下来我们就来看下分数形式的标注是怎么实现的。
查看标注字段
[1]启动ArcMap,打开【标注三值_Start.mxd】;
[2]在内容列表中,右键单击【宗地】图层,选择【打开属性表】;
[3]打开要素属性表,查看需要进行标注的字段名称,包括宗地权利人(QLR字段)、宗地号(ZDH)、宗地面积(ZDMJ),如图 8所示,确定用于注记的字段包括QLR,ZDH和ZDMJ;
图 8 宗地属性表
启用Maplex引擎
有两种方式可以启用Maplex引擎。
[4]右键单击数据框,选择【属性】,弹出数据框属性窗口,切换到【常规】页,在标注引擎中选择【Maplex 标注引擎】,如图 9所示;
图 9 数据框属性
[5]单击【确定】,该地图文档启用了Maplex标注引擎;
另外一种方式是通过标注工具条来启用Maplex标注引擎。在工具栏空白处右键选择标注工具条,选择【标注】->【使用Maplex标注引擎】,如图 10所示,该地图文档启用了Maplex标注引擎。
图 10 启用Maplex标注引擎
设置标注分数样式
[6]在内容列表中,右键单击【宗地】图层,选择【属性】,切换到【标注】页,如图 11所示;
图 11 图层属性
[7]在标注页面单击【表达式】,弹出标注表达式窗口,如图 12所示,勾选【高级】,脚本类型选择VBScript,输入以下脚本:
Function FindLabel ( [QLR] , [ZDH] , [ZDMJ] )
if [ZDMJ] <>"" then
FindLabel = [QLR] &vbcrlf &vbcrlf &[ZDH] &vbcrlf & "—— "& vbcrlf & int( [ZDMJ] )
else
FindLabel = [ZDH]
end if
End Function
图 12 标注表达式
[8]脚本写完之后,单击【验证】可以预览标注效果,如图 13;
图 13 标注表达式验证
[9]单击【确定】,回到标注表达式窗口,单击【保存】按钮,可以将这段脚本保存起来,方便下次使用;
[10]连续单击【确定】,查看地图效果,如图 14所示;
图 14 标注三值
修改标注文字样式
我们注意到分号的线不是连续的,实际上这是字体设置问题。
[11]在内容列表中,右键单击【宗地】图层,选择【属性】,切换到【标注】页面,在文本符号中更改字体类型为Arail,也可以点击【字符】按钮,如图 15所示;
图 15 图层属性
[12]字体采用英文字体(如Arial),这样标注里的“--”可以显示成连续的直线,如果选择中文字体,“—”只会显示成“--”。所以此处将字体类型改为英文(如Arial),也可以继续点击【编辑符号】,进行更详细的文字设置,反复调整参数如图 16,直到达到最满意的效果,如图 17。
图 16 文本属性编辑器
图 17 标注三值
注意:以上所有操作都可以在标注工具条上的标注管理器中完成。
(三)标注角标的实现
为讲述方便,先对标注内容和数据做必要说明。
标注内容
完整的标注内容如图 18所示,这里拆分成三项,即标注主体、上角标和下角标。展现形式上,要求上角标与下角标左对齐,并与标注主体在同一行。
图 18 标注分类
数据说明
点数据,包含10个要素,如图 19所示,属性内容包括str、str1和tr2,分别存储标注主体、上角标和下角标的内容。其中,str1的内容为“<sup>+3</sup>”,使用标记语言表示上角标;str2内容为“<sub>2</sub>”,使用标记语言表示下角标。标注主体的最大字符长度为10。
图 19 点数据及其属性
组合str、str1、str2([str] & [str1] & [str2] ),默认显示的标注效果如图 20,上角标和下角标没有左对齐。
图 20 默认标注效果
下面介绍标注角标的实现过程。
[1]启动ArcMap,打开【标注角标_Start.mxd】;
启用Maplex注记引擎
[2]在内容列表中,右键单击【数据框】,选择【属性】,弹出【数据框属性】窗口,在【标注引擎】选项中选择【Maplex 标注引擎】,单击【确定】;
标注分类
基于数据内容,即str、str1和str2字段,将标注分为11类,分别为Default类、1-10类,其中Default类标注表达式内容为“标注主体+下角标”,1-10类标注表达式内容为“上角标”,并对1-10类设置不同的偏移量。
[3]右键单击ArcMap工具栏空白处,选择【标注】工具条,单击【标注管理器】,打开标注管理器窗口,默认已经添加默认类别,如图 21;
图 21 Default标注类别
[4]单击【表达式】,弹出标注表达式窗口,输入表达式“[str] &[str1]& [str2]”,如图 22;
图 22 默认类标注表达式
[5]单击【确定】,回到标注管理器窗口,在文本符号下设置字体样式、字体大小,如图 23;
图 23 默认类字体符号设置
[6]单击【位置】,弹出位置选择对话框,选择【东】,如图 24;
图 24 默认类标注位置选择
[7]连续单击【确定】,回到地图窗口,此时标注样式如图 25所示;
图 25 默认类标注样式
[8]添加1类别。在标注工具条上单击【标注管理器】,打开标注管理器窗口;
[9]在标注分类中选中Point图层,在【添加标注分类】中输入分类名称“1”,单击【添加】按钮,成功添加1类别,如图 26;
图 26 添加1类别
[10]在标注分类中选中Point图层下面的1类,单击【SQL查询】,如图 27;
图 27 1类筛选设置
[11]弹出SQL查询窗口,输入“CHAR_LENGTH( "str" ) = 1”,根据标注主体字符长度分类,如图 28;
图 28 1类SQL查询窗口
[12]单击【确定】,回到标注管理器窗口,单击【表达式】,弹出标注表达式窗口,输入表达式“[str1]”,如图 29所示;
图 29 1类标注表达式
[13]单击【确定】,回到标注管理器窗口,在文本符号下设置字体样式、字体大小,与默认类相同;在【位置】选项中选择【东】,与默认类相同;
[14]设置【偏移】值为10(该值通过尝试获得,如果该值不能够显示出完整的标注,需增大偏移值),如图 30所示;
图 30 1类偏移量设置
[15]添加2类别,设置方式重复第9-14步,注意SQL查询中输入的语句“CHAR_LENGTH( "str" ) = 1”,其中的“1”换成对应的类别值;
[16]关闭标注管理器,查看地图标注效果,如图 31所示。
图 31 标注角标效果
【小技巧】:在设置对齐过程中,若发现标注主体把上角标挡住的情况,可考虑修改标注主体的字体大小。
(四)点抽稀的实现
[1]启动ArcMap,打开【点抽稀_Start.mxd】;
[2]右键单击ArcMap工具栏空白处,选择【标注】工具条,选择【标注】-> 【使用Maplex 标注引擎】,启动Maplex标注引擎,如图 32;
图 32 使用Maplex标注引擎
[3]在标注工具条上单击【标注管理器】,打开标注管理器界面;
[4]在【文本符号】下单击【符号】,弹出符号选择窗口,选择【项目牵引线】样式,如图 33;
图 33 符号选择器
[5]单击【编辑符号】,进入编辑器窗口,切换到【高级文本】选项卡,勾选文本背景,单击【属性】,如图 34;
图 34 牵引线设置
[6]进入文本背景属性编辑器窗口,在【线注释】下选中牵引线【符号】,如图 35;
图 35 牵引线符号设置
[7]单击【符号】,弹出符号选择窗口,单击【编辑符号】,进入符号属性编辑器窗口,将线符号类型改为【标记线状符号】,如图 36;
图 36 选择标记线状符号
[8]切换到【制线符】页,颜色设置为无色,如图 37;
图 37 设置制线符为无色
[9]切换到【线属性】页,设置【偏移】为1,线整饰选择左箭头,如图 38;
图 38 点牵引线符号设置
[10]在线整饰下单击【属性】,弹出线方向编辑器窗口,如图 39;
图 39 线方向编辑器
[11]单击【符号】,进入符号选择窗口,选择医院符号(可用关键字“医院”进行搜索),设置符号颜色为红色RGB(168,0,0),大小为12,如图 40;
图 40 符号选择窗口
[12]单击【确定】,回到线整饰编辑器窗口,在翻转下选择全部翻转、翻转第一个,在旋转下选择旋转符号以随沿线角度,如图 41;
图 41 线方向编辑器
[13]连续单击【确定】,回到字符属性编辑器窗口,即第6步出现的窗口,设置【牵引线容差】为8,,此为牵引线的容限,当偏移要素点超过8的时候显示牵引线的标注,如图 42;
图 42 设置牵引线容限
[14]连续单击【确定】,回到标注管理器窗口,在放置属性下设置便宜为上一步的“牵引线容差+1”值,即9,如图 43;
图 43 标注偏移设置
[15]为了更好的进行显示,还可以对点的摆放位置进行灵活设置。单击【位置】,可以选择最佳位置,或是东、北等,如图 44;
图 44 位置选项
[16]连续单击【确定】,关闭标注管理器;
[17]在内容列表中,单击【医院】图层对应的符号,弹出符号选择窗口;
[18]单击【编辑符号】,进入【符号属性编辑】窗口,在【图层】下取消图层显示;
[19]连续单击【确定】,回到地图窗口,可以看到经过抽稀之后,点的压盖问题已经解决,如图 45所示。
图 45 抽稀后的POI点
可以看到,将符号融入标注中,充分利用Maplex标注引擎自带的抽稀功能,可以很好的解决大量密集点的地图显示问题,具有实际应用价值。
注意:使用这种方式,POI符号显示的位置与实际点位会有偏差,数据精度稍有下降。
(五)将标注限制在指定区域内
下面以某一区县为例,介绍ExtentErase的实现过程。
[1]启动ArcMap,打开【标注限定在指定范围内_Start.mxd】;
[2]右键单击ArcMap工具栏空白处,选择【标注】工具条,选择【标注】-> 【使用Maplex 标注引擎】,启动Maplex标注引擎;
[3]生成行政区划图层的包络矩形。打开【ArcToolbox】->【数据管理】->【要素】->【要素包络矩形转面】工具,输入要素选择【行政区划】图层,输出图层命名为【行政区划包络矩形】,如图 46;
图 46 要素包络矩形转面工具
[4]单击【确定】,生成面图层【行政区划包络矩形】,如图 47;
图 47 行政区划图层的包络矩形
[5]擦除面。打开【ArcToolbox】->【分析工具】->【叠加分析】->【擦除】工具,输入要素选择“行政区划包络矩形”,擦除要素选择“行政区划”图层,输出要素类命名为【ExtentErase】,如图 48;
图 48 擦除工具
[6]单击【确定】,生成面图层【ExtentErase】,如图 49,空白部分为擦除的区县;
图 49 ExtentErase图层
[7]在MapLex中设置ExtentErase图层权重等级。打开【标注】工具条,单击【权重等级】选项,弹出【权重等级】窗口,将【ExtentErase图层】的要素权重和面边界权重值设为1000,如图 50;
图 50 权重等级窗口
[8]单击【确定】,查看最终效果,如图 51。
图 51 效果图
通过将要素权重和面边界权重值设成最大值1000,使得在区县行政区划内,标注不会压盖ExtentErase图层。图 51中,浅绿色的是ExtentErase,在区县行政单位范围里,标注不得溢出区县行政单位边界而覆盖ExtentErase图层,从而避免在相邻城市融合时,出现不必要的标注缺失和标注压盖问题。