资源描述
ArcGIS制图之标注换行中国文化博大精深,不同汉字的不同组合代表着不同的含义,也是我们称之为的语义。在地图制作中,大量的POI点属性值有长有短,标注直接显示极大的影响地图美观。按照传统习惯,对于长的标注进行语义换行,如,中华人民共和国换行为中华人民,共和国,而非中华人,民共和国。ArcGIS Maplex扩展模块提供自动换行的功能,本文将介绍一种基于此功能的标注语义换行方法。1.引言在Maplex中,提供stack label对标注进行自动换行的功能,可对属性值中的特定标识符进行前后的换行,如下图所示,对属性值中存在“购”的字符在其前换行,也即“中粮广场购物中心”换行为“中粮广场,购物中心” 。图1 Maplex换行设置Maplex仅支持单个字符的前后换行,简单的实现语义换行,却并不完全属于真正意义上的语义换行。如“*爱车车行俱乐部”,若标识符设置为“车”,不论“车”前还是“车”后都不恰当,“车行”才是一个完整的语义。如何才能最大程度的实现语义换行?2.实现原理前面我们提到,Maplex仅支持单个字符的前后换行,是否可指定一个标识符,在一般的换行的语义前或者后进行插入,再使用stack label来进行自动换行?答案是肯定的。因此,我们要做的首要工作是制作关键词库。其次,设定相应的规则,是在前还是在后进行换行,如判断关键词在整体标注中的位置,偏前位则在其后进行换行,偏后位则在其前换行。3.实现方法在人口经济数据自动空间化处理一文中介绍过Python,一种开源、面向对象、跨平台的编程语言。使用Python可对ArcGIS桌面进行扩展定制,且构建工作流,进行自动化数据处理。在此,我们同样使用Python语言来进行语义换行自动化数据处理。这里,标识符我们选用“,”,此外,对于一类POI点来说,关键词并非一个,如大型购物类POI,存在“百货”、“购物”、“商贸”等。换行规则为:当标 注长度超过5时,按关键词进行语义换行;若关键词前没有任何字或关键词后没有任何字,则归类无关键词处理;判断关键词在整体标注中的位置,偏前位则在其后进行换行,偏后位则在其前换行;无关键词的处理按字数进行,奇数为N/N+1换行,偶数为N/N换行。Python代码如下:图2 换行规则代码实现数据处理完成后,使用Maplex的stack label,对标识符“,”进行换行,标识符设置为不可见即可。此外,还可设置换行的最大行数及每行的字数限制等。图3 最终换行显示4.小结通过制作关键词库,定义换行规则,使用python进行自动化数据处理,即可轻松的实现标注语义换行,在加强地图信息表达的同时,美化地图显示。
展开阅读全文