职称论文

您当前的位置:学术堂 > 职称论文 >

一种处理标注叠加的算法设计与实现精读

来源:测绘 作者:王宁
发布于:2020-10-27 共2706字

  摘要:本文针对已有的GIS平台在小范围大比例尺多标注出图时, 标注在有限的空间内会出现叠加的情况, 初步设计采用开源的接口和组件, 研发了相关软件并实现了标注叠加的处理。即在标注叠加时, 将标注的外框作为需处理的多边形, 按照相交标注多边形其相交区域的高和宽来判断移动的方向, 从而达到移动标注的目的。如果出图范围内标注少, 算法可自动处理;如果总体的标注量总宽高大于出图范围, 就需要人工先进行处理标注的选取和大小设定, 再按照算法自动处理。算法可以按照选定的起始标注点, 依次进行判断, 核心是标注外框作为矩形处理。

  关键词:标注叠加; ArcGIS; AE/AO开发; 算法实现;

目录

  1引言……………………………………………………………………………………1

  2已有平台的对比……………………………………………………………………………………2

  3算法实现……………………………………………………………………………………3

  3.1算法描述……………………………………………………………………………………4

  3.2算法实现效果……………………………………………………………………………………5

  4结语……………………………………………………………………………………6

  文内图表……………………………………………………………………………………7

  图1使用ArcMap进行点标注显示……………………………………………………………………………………7

  图2使用ArcGIS平台AE/AO接口实现点标注显示……………………………………………………………………………………7

  图3按照外框叠加差值移动目标……………………………………………………………………………………7

  图4多标注压盖情况处理……………………………………………………………………………………7

  图5标注在出图范围框边界处理a……………………………………………………………………………………7

  图6标注在出图范围框边界处理b……………………………………………………………………………………7

  图7原始实验数据a……………………………………………………………………………………7

  图8原始实验数据a处理结果……………………………………………………………………………………7

  图9原始实验数据b……………………………………………………………………………………7

  图1 0原始实验数据b处理结果……………………………………………………………………………………7

  参考文献……………………………………………………………………………………8

算法工程

  1 引言

  在制图出图过程中,由于标注的数量众多,处理标注叠加等问题的软件也比较丰富,但是各类软件效果大多不能够很好地实现作业人员的意图,往往工作量很大。针对小范围大比例尺多标注出图,如1:2000以下全域图或者1:500到1:1500之间的目标样图,由于牵涉到专题图[1,2,3,4,5]制图的专业过程,包括选取、简化、夸张、符号化等操作及考虑最后的出图效果,如何合理、快速、有效地处理标注叠加,就成为了一个难点。本文先讨论已有的软件平台,再引入初步设计的移动标注算法,基于有限的显示空间的标注问题,使用开源的接口和组件[6,7,8,9,10],进行大部分叠加标注的自动处理,少部分进行人工编辑,提高了制图标注叠加处理效率。

  2 已有平台的对比

  首先直接将测试数据在ArcGIS(版本为10)平台下的ArcMap中打开,如图1,在标注字段很长的情况下,使用标注显示功能,发现该比例尺下标注进行了抽稀,很多点的标注并没有显示,这个是平台内部的机制,虽然避免了标注叠加,但是已经显示不完整,不能满足更多的业务需求。

  再以同样的数据,基于Microsoft Visual Studio2010 IDE,采用C#编程语言,使用ArcGIS平台的AE/AO接口实现标注显示,如图2所示。

  图1 使用ArcMap进行点标注显示  

  图2 使用ArcGIS平台AE/AO接口实现点标注显示

  发现相同的数据,在ArcGIS AE/AO接口支持下,使用接口开发并进行标注,同ArcMap里面直接打开数据并进行标注显示的效果大体相同,即在该比例尺下进行标注抽稀来规避标注叠加的问题,少部分的点标注直接不显示。但是放大到一定程度,两者都是详细的标注,所以说明已有的平台的处理已经不能满足更多的业务需求。

  其他平台同样有类似问题,请参考具体软件。

  3 算法实现

  3.1 算法描述

  本算法主要将标注按照图形要素进行处理,即标注有外框,外框转换成对应的矩形框,再按照矩形框来进行图形的叠加处理,详细示意如图3所示:

  图3 按照外框叠加差值移动目标  

  算法流程:

  (1)计算和统计出图范围内的标注数量,判断所有标注的高宽之和是否大于了整个出图范围,如果大于出图范围,需要进行调整,抽稀掉多余的标注;

  (2)按照中心点法则或者业务需要,获取起始的标注,后续的标注在依次加入的时候,转换其外框,进行外框叠加的高宽差值的运算,看是否为叠加状态,如果是叠加状态,就进行平移;

  (3)高宽差值的运算,按照矩形框的左上坐标点和本框的高宽进行,如利用标注1、2的左上点坐标和本身的高宽,即可获取到相交的高差值(H差值)、宽差值(W差值),方便进行对比。如果高宽差值为大于目标标注高宽,即不相交;

  (4)如果没有标注叠加就继续加入显示的标注集合,后续加入的标注,都要与之前的标注进行标注的压盖判断和平移。以前面标注作为基础,后续加入的继续平移,直到所有显示标注处理完成。如图4所示。

  图4 多标注压盖情况处理

  针对特别情况的处理(图5、图6) :

 

  图5 标注在出图范围框边界处理a  

  图6 标注在出图范围框边界处理b  

  在视图范围框上下左右都有标注被拦截、压盖的情况下,根据实际需要,采用向内移动的方式进行,否则放弃此标注显示。

  3.2 算法实现效果

  算法的初步实现,利用了开源的架构,使用了NetTopologySuite C#版本的插件,依靠本地的sqilte数据库和WPF技术,实现了读取数据、算法平移和标注显示,最后加上出图要素。特别注意的是,在将地理坐标转换为屏幕坐标时,需要标注的屏幕位置与WPF显示控件窗体的大小做对比,以防标注超出了显示控件范围,超出则根据需要进行调整。效果如下(图7~图10) :

 

  图7 原始实验数据a  

  图8 原始实验数据a处理结果  

  图9 原始实验数据b  

  图1 0 原始实验数据b处理结果

  总体评价,在一定比例尺及出图图片大小要求下,如1:2000以下全域图或者1:500到1:1500之间的目标样图,如果标注的数量不是特别多,叠加较多的情况,标注之间的距离间隙大,即可采用这种平移方式。如果标注的数据量过多,需要采用抽稀或者平移出视图范围的方式,处理掉一部分数据。本算法通过实际情况验证,可以解决一部分标注叠加的问题,效果良好,部分需要人工编辑处理。

  4 结语

  本文主要通过对比ArcGIS的标注显示,使用开源的接口设计来实现标注叠加处理的一种算法。这种算法的实现需要专门的接口来显示图形和标注,需要专门开发对应的出图模块,但是实用性较高,适用于空间范围大,标注较少的情况。如果范围小,标注点多,标注叠加的情况更加复杂,需要研究更加适用的处理方法,例如参考一些动态模型。

  参考文献
  [1]李海英。 ArcGIS与CASS在土地管理专题图制作中的应用[J].安徽农学通报, 2017, (14) :150-151.
  [2] 张岳, 陶校君。 1:5万DLG更新中的数据处理与检查[J].浙江测绘, 2007, (2) :43-44.
  [3]宋婷婷。基于NewMap Server架构的在线专题制图技术研究与试验[D].北京:中国测绘科学研究院, 2017.
  [4]李淑英。利用ArcGIS制作企业专题地图的方法研究[J].信息通信, 2014, (12) :74-75.
  [5]许玉英。简述ArcGIS制作专题地图的方法[J].现代测绘, 2013, (1) .
  [6]肖庆。组件GIS二次开发技术研究[J].软件导刊, 2008, (11) :148-150.
  [7]杨宏鹏, 王阿川, 王妍玮。 GIS二次开发方法与实现[J].信息技术, 2008, (8) :65-67.
  [8]崔修涛, 吴健平, 张伟锋。插件式GIS的开发[J].华东师范大学学报 (自然科学版) ;2005, (4) .
  [9]王君, 柳清瑞, 于彩虹。基于软插件技术和三层C/S结构的高等院校教务管理系统[J].辽宁大学学报 (自然科学版) , 2002, (2) .
  [10]张进军, 张维勇, 薛来文。一种基于插件的软件体系结构[J].合肥工业大学学报 (自然科学版) , 2005, (4) .

作者单位:四川拓土测绘地理信息有限公司
原文出处:王宁.一种处理标注叠加的算法设计与实现[J].测绘,2019,42(02):94-96.
相关内容推荐
相关标签:算法工程师论文
返回:职称论文