一种便于进行GIS矢量数据编辑的GIS系统
技术领域
本发明涉及数据处理领域,尤其涉及一种便于进行GIS矢量数据编辑的GIS系统。
背景技术
GIS矢量数据为地理信息系统中的矢量数据,即为电子地图相关的矢量数据,一般电子地图都使用矢量式方式的进行存储。在当前电子地图制作行业,一般都按照国家标准或地方标准对地理要素进行采集和绘制,由于地理要素种类比较多,所以必须要进行分类和分层存储,同时为了区分绘制好的地理要素,需要对每种地理要素绘制不同的符号化表达,在绘制地图过程中,需要频繁地缩放和移动地图,所以必须保证渲染效率足够高,用户体验才能感觉到操作的平滑和流畅;在绘制的交互上,系统需要提供足够的节点和线段捕捉支持,并且能够以命令或浮动交互的方式给用户进行多样化功能的选择。
基于以上的要求,一般的对于GIS矢量数据的制作都使用基于CAD平台的软件进行绘制,CAD提供自定义图层,提供块定义和线型定义。但是CAD平台进行GIS矢量数据编辑有几个弊端:首先,CAD存储的DWG格式的数据不是公开的,需要使用相关的工具进行复杂的转换成为地理信息系统可以使用的格式;其次,CAD平台的数据图层是不区分点线面几何类型的,数据可以混存;再次,CAD平台的数据是不关心拓扑结构的。所以在采用CAD进行电子地图的生产,在后期都需要由DWG格式转换为GIS的格式,再进行几何类型转换和拓扑检查等复杂工序,非常耗时。综上,传统的采用CAD平台对于GIS矢量数据编辑的过程操作复杂,对编辑后的数据的查看具有一定局限性。
发明内容
为了克服现有技术的不足,本发明的目的在于提供一种便于进行GIS矢量数据编辑的GIS系统,其能解决传统的采用CAD平台对于GIS矢量数据编辑的过程操作复杂,对编辑后的数据的查看具有一定局限性的问题。
本发明的目的采用以下技术方案实现:
一种便于进行GIS矢量数据编辑的GIS系统,包括数据存储模块、图形引擎模块以及人机交互模块,所述图形引擎模块分别与所述数据存储模块及所述人机交互模块连接,所述数据存储模块包括存储单元和数据搜索单元,所述存储单元与所述数据搜索单元连接,所述图形引擎模块包括渲染单元以及转换单元,所述转换单元与所述渲染单元连接,所述渲染单元以及所述转换单元均与所述存储单元连接,所述存储单元以二维数据库表的形式存储GIS标准数据及以二进制的形式存储几何数据,所述数据搜索单元提供基于关键字的快速查询、基于指定点或指定区域的快速匹配,所述渲染单元用于对所述存储单元中经过反序列化后的几何数据进行图形文字渲染处理以及用于对经过反序列化后的几何数据中的地理要素进行符号化渲染处理,所述转换单元用于将用户提交的图形操作转化为几何拓扑操作、将图形要素信息序列化为几何对象、对几何对象的坐标进行屏幕坐标至地理坐标转换以及将几何对象序列化至所述存储单元中保存,所述人机交互模块用于接收用户发送的操作请求,所述人机交互模块根据所述操作请求发送操作指令至所述数据存储模块或所述图形引擎模块。
进一步地,所述存储单元使用预设关系型数据库作为数据存储的载体,所述存储单元中存储若干图层,所述存储单元对每个图层使用预设关系型数据库中的一个二维数据库表存储,所述存储单元使用预设关系型数据库的二进制流型字段存储几何数据。
进一步地,所述数据搜索单元设置了若干与图层的对应的索引表,每个索引表与唯一的所述图层对应,索引表中使用格网方式记录几何图形对应的格网编号,所述格网编号包括横向编号和纵向编号,当用户通过所述人机交互模块发送对指定图层的搜索范围至所述数据搜索单元时,所述数据搜索单元使用索引表判断指定图层内的几何图形是否与所述搜索范围相交,若不相交,则放弃,若相交,则提取与所述搜索范围相交的几何图形的最小外接矩形,判断所述最小外接矩形是否与所述搜索范围相交,若不相交,则放弃,若相交,则反序化所述最小外接矩形对应的几何图形,使用九交模型将经过反序化的几何图形与所述搜索范围进行匹配,若相交,则将几何图形作为搜索结果输出。
进一步地,所述渲染单元设置若干阈值,所述阈值包括预设宽高阈值、预设宽度阈值、预设点阈值、预设间隔阈值、预设宽度阈值,将作为搜索结果的几何图形作为当前几何图形;若所述当前几何图形为点类型且符号化后的宽高在转换到视口大小后小于预设宽高阈值,则将所述几何图形绘制为简单点符号,若所述当前几何图形为线类型且符号化后的宽度在转换到视口大小后小于预设宽度阈值,则将所述几何图形绘制为简单线符号;若所述当前几何图形为线类型时且所述当前几何图形符号化后的线为点划线,所述点划线中点的大小在转换到视口大小后小于预设点阈值或点之间间隔的大小在转换到视口大小后小于预设间隔阈值时,则将所述几何图形绘制为简单线符号;若所述当前几何图形为面类型且符号化后的面宽度在转换到视口大小后小于预设宽度阈值,则将所述几何图形绘以纯色进行填充。
进一步地,在所述渲染单元对所述存储单元中经过反序列化后的几何数据进行图形文字渲染处理或对经过反序列化后的几何数据中的地理要素进行符号化渲染处理时,所述数据搜索单元为每个图层建立位图索引以及根据每个图层中几何图形的要素ID和外接矩形建立Rtree树引。
进一步地,所述渲染单元为每个图层均建立对应的渲染线程以及预设时间阈值,每个渲染线程按照对应的预设时间阈值运行。
进一步地,所有图层均处于可编辑状态。
进一步地,所述存储单元设置缓存句柄,所述存储单元通过缓存句柄接收同一个数据源的数据。
进一步地,所述人机交互模块包括:图层树单元、工具栏单元、视口区单元、命令交互单元,所述图层树单元用于列出当前加载数据源和图层,所述工具栏单元为所述GIS系统的操作功能入口,所述视口区单元用于显示进行图形文字渲染处理和符号化渲染处理后的几何数据,所述命令交互单元用于接收交互指令。
相比现有技术,本发明的有益效果在于:本申请的一种便于进行GIS矢量数据编辑的GIS系统,包括数据存储模块、图形引擎模块以及人机交互模块,图形引擎模块分别与数据存储模块及人机交互模块连接,数据存储模块包括存储单元和数据搜索单元,存储单元与数据搜索单元连接,图形引擎模块包括渲染单元以及转换单元,转换单元与渲染单元连接,渲染单元以及转换单元均与存储单元连接。通过GIS系统方便地进行直接基于GIS数据标准的图形采集、绘制和编辑,达到能节省数据生产的时间和流程步骤,同时又保证数据质量,且经过GIS系统编辑后的数据的查看不再具有局限性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明的一种便于进行GIS矢量数据编辑的GIS系统的架构框图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
如图1所示,本申请提供一种便于进行GIS矢量数据编辑的GIS系统,具体包括:
包括数据存储模块、图形引擎模块以及人机交互模块,图形引擎模块分别与数据存储模块及人机交互模块连接,数据存储模块包括存储单元和数据搜索单元,存储单元与数据搜索单元连接,图形引擎模块包括渲染单元以及转换单元,转换单元与渲染单元连接,渲染单元以及转换单元均与存储单元连接。存储单元以二维数据库表的形式存储GIS标准数据及以二进制的形式存储几何数据,数据搜索单元提供基于关键字的快速查询、基于指定点或指定区域的快速匹配。
渲染单元用于对存储单元中经过反序列化后的几何数据进行图形文字渲染处理以及用于对经过反序列化后的几何数据中的地理要素进行符号化渲染处理,在本实施例中对存储单元中经过反序列化后的几何数据进行图形文字渲染处理具体为:对数据存单元中经过反序列化后的几何数据进行解析为坐标序列,同时根据文字的字体族、字号等信息抽取文字的轮廓坐标序列,根据数据的空间位置进行投影到二维平面上,再根据显示区域的大小投影到屏幕坐标系上。本实施例中所有的地理要素均需要使用指定的符号进行表达,图形显示模块需要根据地理要素的符号表达描述和地理要素的骨架线,渲染成指定的符号效果。转换单元用于将用户提交的图形操作转化为几何拓扑操作、将图形要素信息序列化为几何对象、对几何对象的坐标进行屏幕坐标至地理坐标转换以及将几何对象序列化至存储单元中保存,人机交互模块用于接收用户发送的操作请求,人机交互模块根据操作请求发送操作指令至数据存储模块或图形引擎模块。
本实施例中,存储单元使用预设关系型数据库作为数据存储的载体,存储单元中存储若干图层,存储单元对每个图层使用预设关系型数据库中的一个二维数据库表存储,存储单元使用预设关系型数据库的二进制流型字段存储几何数据。数据搜索单元设置了若干与图层的对应的索引表,每个索引表与唯一的图层对应,索引表中使用格网方式记录几何图形对应的格网编号,格网编号包括横向编号和纵向编号,当用户通过人机交互模块发送对指定图层的搜索范围至数据搜索单元时,数据搜索单元使用索引表判断指定图层内的几何图形是否与搜索范围相交,若不相交,则放弃,若相交,则提取与搜索范围相交的几何图形的最小外接矩形,判断最小外接矩形是否与搜索范围相交,若不相交,则放弃,若相交,则反序化最小外接矩形对应的几何图形,使用九交模型将经过反序化的几何图形与搜索范围进行匹配,若相交,则将几何图形作为搜索结果输出。本实施例中,GIS系统会将每个图层的加载都使用独立的链接进行管理,存储单元设置缓存句柄,存储单元通过缓存句柄接收同一个数据源的数据。渲染单元为每个图层均建立对应的渲染线程以及预设时间阈值,每个渲染线程按照对应的预设时间阈值运行。在用户运用GIS系统进行数据编辑操作时,每个图层均为可编辑状态。
渲染单元设置若干阈值,阈值包括预设宽高阈值、预设宽度阈值、预设点阈值、预设间隔阈值、预设宽度阈值,将作为搜索结果的几何图形作为当前几何图形;若当前几何图形为点类型且符号化后的宽高在转换到视口大小后小于预设宽高阈值,则将几何图形绘制为简单点符号,若当前几何图形为线类型且符号化后的宽度在转换到视口大小后小于预设宽度阈值,则将几何图形绘制为简单线符号;若当前几何图形为线类型时且当前几何图形符号化后的线为点划线,点划线中点的大小在转换到视口大小后小于预设点阈值或点之间间隔的大小在转换到视口大小后小于预设间隔阈值时,则将几何图形绘制为简单线符号;若当前几何图形为面类型且符号化后的面宽度在转换到视口大小后小于预设宽度阈值,则将几何图形绘以纯色进行填充。本实施例中在上述渲染过程中直接操作内存块,完成后再使用OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API))技术把内存中的渲染结果绘制到视口显示设备上。
在渲染单元对存储单元中经过反序列化后的几何数据进行图形文字渲染处理或对经过反序列化后的几何数据中的地理要素进行符号化渲染处理时,数据搜索单元为每个图层建立位图索引以及根据每个图层中几何图形的要素ID和外接矩形建立Rtree树引。在本实施例中,在数据渲染阶段,本系统分配指定的内存给每个图层建立位图索引,在绘制和符号化的过程中,在对应的位图像素上记录上该区域是否有绘制要素,实现基于像素级的选择,其次,为解决隐藏状态要素的选择,对应的位图像素中记录的是透明度值,同样指示了该区域存在要素。本实施例中的GIS系统同样会根据几何图形的要素ID和外接矩形建立Rtree树引,本实施例中GIS系统定位到有要素后使用Rtree树在内存链表中查询对应的要素ID,最后通过要素ID查询要素的信息。
本实施例中的人机交互模块包括:图层树单元、工具栏单元、视口区单元、命令交互单元,图层树单元用于列出当前加载数据源和图层,工具栏单元为GIS系统的操作功能入口,视口区单元用于显示进行图形文字渲染处理和符号化渲染处理后的几何数据,命令交互单元用于接收交互指令。具体为:图层树单元,负责列出当前加载数据源和图层,并可以提供与图层相关的设置,包括图层的显示、隐藏、统计,以图层为单位进行数据的定位和显示。工具栏单元,是GIS系统绝大部分功能的入口,以卡片式的菜单提供功能,功能激活采用互斥的模式工作。视口区单元,是图形显示模块的展示区域,负责把渲染完成的图形显示的区域,视口区允许用户按照不同的功能提供鼠标左击、右击、中键点击、中键滚动、拖动的响应。命令交互单元,是用户操作过程的必要交互入口,在复杂操作过程中起到提示、提供选择、接受指令的作用,可以让用户在不打断当前功能执行的情况下进行复杂的操作。本实施例中的GIS系统中的数据存储单元设置有负责专门进行数据存储的线程,定时运行对内存编辑区进行扫描,针对需要存储的数据进行入库操作,并标记状态。本申请中的GIS系统为方便编辑,提供撤销回退的操作,本操作的本质是修改命令交互区中的数据状态指针,在刷新时系统自动叠加内存区和存储区数据进行渲染。为了保证数据库的存储效率,存储单元启用事务进行数据存储,针对不同图层的数据在同一个事务中进行提交。为提高作业效率,方便用户交互,GIS系统使用Windows消息机制,命令交互单元始终监听编辑过程中输入的相关指令,转发用户指令到当前功能中,改变功能的行为,例如用户在绘制线状态地物的时候,可以随时启动各种捕捉功能,也可以临时启动一种辅助作图方法,如线地物的下一个点需要绘制两个圆弧相交而得出的点,GIS系统提供操作栈机制,允许当前所有操作和状态入栈,执行新的指令进行新的操作,完成后再恢复操作栈继续操作。本申请中在渲染处理上使用了多线程并行渲染和内存动态调度技术,图形内存块快速初始化和双缓冲技术,实现图形的快速绘制,为用户移动和缩放地图时提供良好的体验
本申请的一种便于进行GIS矢量数据编辑的GIS系统,包括数据存储模块、图形引擎模块以及人机交互模块,图形引擎模块分别与数据存储模块及人机交互模块连接,数据存储模块包括存储单元和数据搜索单元,存储单元与数据搜索单元连接,图形引擎模块包括渲染单元以及转换单元,转换单元与渲染单元连接,渲染单元以及转换单元均与存储单元连接。通过GIS系统方便地进行直接基于GIS数据标准的图形采集、绘制和编辑,达到能节省数据生产的时间和流程步骤,同时又保证数据质量,且经过GIS系统编辑后的数据的查看不再具有局限性。
以上,仅为本发明的较佳实施例而已,并非对本发明作任何形式上的限制;凡本行业的普通技术人员均可按说明书附图所示和以上而顺畅地实施本发明;但是,凡熟悉本专业的技术人员在不脱离本发明技术方案范围内,利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对以上实施例所作的任何等同变化的更动、修饰与演变等,均仍属于本发明的技术方案的保护范围之内。