Arcgis标注语义换行

来源:互联网 发布:控制热点软件 编辑:程序博客网 时间:2024/05/17 22:29

  一、 引言

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

  

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

  二、 实现原理

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

  三、 实现方法

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

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

  

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

  

  四、 小结

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

0 0
原创粉丝点击