『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

标注语义换行

标注语义换行
中国文化博大精深,不同汉字的不同组合代表着不同的含义,也是我们称之为的语义。在地图制作中,大量的POI点属性值有长有短,标注直接显示极大的影响地图美观。按照传统习惯,对于长的标注进行语义换行,如,中华人民共和国换行为中华人民,共和国,而非中华人,民共和国。ArcGIS Maplex扩展模块提供自动换行的功能,本文将介绍一种基于此功能的标注语义换行方法。
一、 引言


Maplex中,提供stack label对标注进行自动换行的功能,可对属性值中的特定标识符进行前后的换行,如下图所示,对属性值中存在的字符在其前换行,也即中粮广场购物中心换行为中粮广场,购物中心


Maplex仅支持单个字符的前后换行,简单的实现语义换行,却并不完全属于真正意义上的语义换行。如“***爱车车行俱乐部,若标识符设置为,不论前还是后都不恰当,车行才是一个完整的语义。如何才能最大程度的实现语义换行?

二、 实现原理

前面我们提到,Maplex仅支持单个字符的前后换行,是否可指定一个标识符,在一般的换行的语义前或者后进行插入,再使用stack label来进行自动换行?答案是肯定的。因此,我们要做的首要工作是制作关键词库。其次,设定相应的规则,是在前还是在后进行换行,如判断关键词在整体标注中的位置,偏前位则在其后进行换行,偏后位则在其前换行。

三、 实现方法

Python,一种开源、面向对象、跨平台的编程语言。使用Python可对ArcGIS桌面进行扩展定制,且构建工作流,进行自动化数据处理。在此,我们同样使用Python语言来进行语义换行自动化数据处理。

这里,标识符我们选用“,”,此外,对于一类POI点来说,关键词并非一个,如大型购物类POI,存在百货购物商贸等。换行规则为:当标注长度超过5时,按关键词进行语义换行;若关键词前没有任何字或关键词后没有任何字,则归类无关键词处理;判断关键词在整体标注中的位置,偏前位则在其后进行换行,偏后位则在其前换行;无关键词的处理按字数进行,奇数为N/N+1换行,偶数为N/N换行。Python代码如下:

 数据处理完成后,使用Maplexstack label,对标识符“,”进行换行,标识符设置为不可见即可。此外,还可设置换行的最大行数及每行的字数限制等。

 四、 小结

通过制作关键词库,定义换行规则,使用python进行自动化数据处理,即可轻松的实现标注语义换行,在加强地图信息表达的同时,美化地图显示。

      京ICP备08100627号-22 京公网安备 11010802030428号