二维地理信息系统中的矢量快速拣选方法

文档序号:6548143阅读:320来源:国知局
二维地理信息系统中的矢量快速拣选方法
【专利摘要】本发明公开了一种二维地理信息系统中的矢量快速拣选方法,步骤(1),在计算机内存中,产生一幅临时的栅格图像,其大小与计算机屏幕或QWidget相同;步骤(2),在计算机上正常绘制各个矢量图形;步骤(3),在计算机内存中的临时图像上绘制步骤(2)中所述的各个矢量图形,用不同颜色填充矢量图形,每个图形所用的颜色值唯一;步骤(4),建立映射表;步骤(5),取得屏幕上鼠标所在位置的像素值;步骤(6),找到与之相同的颜色值,再利用映射表找到该颜色值对应的图形。本发明对点、线、面等不同矢量图形,均可使用同样的方法进行拣选,能够提高现有技术中图形拣选方法的效率和普适性。
【专利说明】二维地理信息系统中的矢量快速拣选方法
【技术领域】
[0001]本发明涉及地理信息系统,尤其是涉及一种二维地理信息系统中的矢量快速拣选方法。
【背景技术】
[0002]地理信息系统(GIS)是集地理学、地图学、计算机图形学、测绘、遥感等多门学科的技术成果而发展起来的一种综合性的高科技产物,在城市建设、交通规划、土地测量、农林业生产等诸多领域中发挥着重大作用。在GIS中,各类基本地理信息要素,如规划区域边界、城市、村镇和交通路线等都可以用点、线、面等三类矢量图形来表示,可以说矢量数据是GIS中最重要数据形式之一。
[0003]在GIS中,编辑矢量图形是一种关键性的基础工作之一。在进行手工编辑图形之前一般需要用鼠标来拣选所要编辑的图形,常规的方法是通过计算点击鼠标时光标所在的位置与图形之间的关系来判断哪个图形被拣选,对于“面”要素来说,就是判断光标位置与多边形的关系,如果光落在多边形内,表明该面要素被拣选,否则没有选中;对“点”和“线”要素来说,就是判断鼠标到“点”和线的距离,如果距离小于某个阀值,表明该要素被拣选,反之则没有选中。常规方法的缺点在于,当多边形的边数太多时,效率不高,而且,当有多个要素叠存在相互重叠的情况时,无法区分选中是哪个矢量图形。

【发明内容】

[0004]有鉴于此,本发明的目的在于提供一种二维地理信息系统中的矢量快速拣选方法,提高了现有技术中矢量图形的编辑效率,且能很好处理多个图形相互叠加的情况。
[0005]为解决上述技术问题,本发明采用以下技术方案:
一种二维地理信息系统中的矢量快速拣选方法,包括如下步骤:
步骤(1),在计算机内存中,产生一幅临时的栅格图像,其大小与计算机屏幕或Qffidget 相同;
步骤(2),在计算机上正常绘制各个矢量图形;
步骤(3),在计算机内存中的临时图像上绘制步骤(2)中所述的各个矢量图形,在绘制图形的过程中,用不同颜色填充矢量图形,颜色值为随机值,每个图形所用的颜色值唯一;步骤(4),建立映射表,将步骤(3)中的颜色值与所绘制的图形建立一一对应关系;步骤(5),取得屏幕上鼠标所在位置的像素值;
步骤(6),将步骤(5)中的像素值与步骤(4)所产生的唯一颜色值相比较,找到与之相同的颜色值,再利用映射表找到该颜色值对应的图形。
[0006]作为优选,所述的步骤(3),用唯一的颜色绘制矢量图形到内存图片中,作为背景存储在计算机内存中。
[0007]作为优选,所述步骤(I),在QT跨平台库中用QImage对象来表示一个栅格图像。
[0008]作为优选,所述步骤(2),在QT跨平台库中,用QPainter类提供的图形函数接口绘制各个矢量图形。
[0009]作为优选,所述步骤(3),用同样的QPainter接口函数,在QImage对象上绘制一次步骤(2)的矢量图形。
[0010]作为优选,所述的步骤(4),用Hash表结构将矢量图形与绘制它的唯一颜色值建立--对应的索引关系。
[0011]作为优选,所述的颜色值用32比特的4字节表示。
[0012]本发明所提出的方法具有以下有益效果:
本方法无需判断鼠标点和矢量图形的空间位置关系,也无需考虑矢量图形的类型,对点、线、面三类矢量图形的处理方法相同。与常规的方法相比,本方法能快速定位拣选的矢量图形,仅需要以很小的内存为代价;能以相同方式处理点、线、面三种不同类型的矢量图形,简化了计算机处理流程;能很好地处理多个要素重叠的情况,提高现有技术中图形拣选方法的效率和普适性。
[0013]本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发 明的目标和其他优点可以通过下面的说明书或者附图中所特别指出的结构来实现和获得。
【专利附图】

【附图说明】
[0014]图1为本发明的方法流程图;
图2为本发明的QImage对象与QWidget对象的关系示意图;
图3为本发明不同的矢量图形用唯一颜色值表示的示意图;
图4为本发明在哈希表中查找颜色值对应的矢量图形的示意图。
【具体实施方式】
[0015]本发明的核心为提供一种在地理信息系统中快速拣选矢量图形的方法,使用该方法可大幅提高地理信息系统中矢量图形拣选算法的效率,对点、线、面等不同矢量图形,均可使用同样的方法进行拣选,能够提高现有技术中图形拣选方法的效率和普适性。
[0016]为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
[0017]参见图1,本发明具体包括以下步骤:
步骤(1),准备好一个内存栅格图像,在QT跨平台库中用QImage对象来表示一个栅格图像,图像的大小必须与显示屏幕一致,在QT库中,用来渲染图像的控件被称为QWidget,如果矢量图形是绘制在QWidget上,而不是直接绘制在整个计算机屏幕,那么栅格图像QImage的大小需与QWidget的一致。
[0018]步骤(2),正常绘制矢量图层中的每个矢量,在QT库中,用QPainter类提供了一系列的图形函数接口,用这些接口函数很容易实现点、线、面的绘制。
[0019]步骤(3),用同样的QPainter接口函数,在QImage对象上绘制一次,即重复步骤
2,仅仅是绘制对象从QWidget或屏幕改为QImage对象。然后用唯一的颜色值填充每个多边形矢量,如是矢量图形是线类型或点类型,可直接用唯一颜色值绘制。QImage对象与Qffidget对象的关系参见图2。所述的唯一颜色值在windows、unix等操作系统中用32比特的4字节表示,可用随机函数生成,但要保证每个图形所用的颜色值唯一,参见图3。在步骤(2)中每个矢量图形被绘制一次,用来正常显示,在步骤(3)中再被绘制一次,用唯一颜色值绘制在内存图片中。
[0020]步骤(4),创建一个哈希表(Hash Table)数据结构,利用该结构,建立颜色值与绘制的矢量图形的一一对应关系。颜色值必须唯一,是为了能作为HASH TABLE的关键字,后续步骤可以很方便由唯一颜色值来查询对应的矢量图形。
[0021]步骤(5), QT库的QWidget控件提供了 QMouseEvent事件处理函数,当用户每次在QWidget或屏幕上点击鼠标时,该事件处理函数就会被调用。可以在这个函数中保存光标所在的位置。然后取得屏幕上光标所在位置的像素值。
[0022]步骤(6),参见图4,将步骤(5)中的像素值的颜色作为关键字,在步骤(4)所述的哈希表中查找到该颜色值对应的矢量图形。
[0023]最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其他修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种二维地理信息系统中的矢量快速拣选方法,其特征在于:包括如下步骤: 步骤(1),在计算机内存中,产生一幅临时的栅格图像,其大小与计算机屏幕或Qffidget 相同; 步骤(2),在计算机上正常绘制各个矢量图形; 步骤(3),在计算机内存中的临时图像上绘制步骤(2)中所述的各个矢量图形,在绘制图形的过程中,用不同颜色填充矢量图形,颜色值为随机值,每个图形所用的颜色值唯一; 步骤(4),建立映射表,将步骤(3)中的颜色值与所绘制的图形建立一一对应关系; 步骤(5),取得屏幕上鼠标所在位置的像素值; 步骤(6),将步骤(5)中的像素值与步骤(4)所产生的唯一颜色值相比较,找到与之相同的颜色值,再利用映射表找到该颜色值对应的图形。
2.根据权利要求1所述的一种二维地理信息系统中的矢量快速拣选方法,其特征在于:所述的步骤(3),用唯一的颜色绘制矢量图形到内存图片中,作为背景存储在计算机内存中。
3.根据权利要求2所述的一种二维地理信息系统中的矢量快速拣选方法,其特征在于:所述步骤(1),在QT跨平台库中用QImage对象来表示一个栅格图像。
4.根据权利要求3所述的一种二维地理信息系统中的矢量快速拣选方法,其特征在于:所述步骤(2),在QT跨平台库中,用QPainter类提供的图形函数接口绘制各个矢量图形。
5.根据权利要求4所述的一种二维地理信息系统中的矢量快速拣选方法,其特征在于:所述步骤(3),用同样的QPainter接口函数,在QImage对象上绘制一次步骤(2)的矢量图形。
6.根据权利要求1所述的一种二维地理信息系统中的矢量快速拣选方法,其特征在于:所述的步骤(4),用Hash表结构将矢量图形与绘制它的唯一颜色值建立一一对应的索引关系。
7.根据权利要求1所述的一种二维地理信息系统中的矢量快速拣选方法,其特征在于:所述的颜色值用32比特的4字节表示。
【文档编号】G06F17/30GK104036535SQ201410236559
【公开日】2014年9月10日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】陈长宝, 张玉, 张宗仁, 卢志渊, 杜红民, 谢兴, 郭振强 申请人:中原智慧城市设计研究院有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1