专利名称:一种基于嵌入式环境的gis引擎实现系统及方法
技术领域:
本发明涉及一种快速处理嵌入式环境的地理信息的系统及方法,更具体地说,涉及一种基于嵌入式操作系统平台的使用二维平面坐标系矢量数据而不使用通用通用数据 库城市地理信息系统环境下的地理信息处理系统及方法。
背景技术:
地理信息系统,简称GIS (Geographic Information System),是分析和处理海量地理数据的通用技术。地理信息是指直接或间接与地球上的空间位置有关的信息,又常称 为空间信息。地理信息系统使用电子地图,电子地图有两种类型矢量型数据格式和光栅型数 据格式。矢量数据结构是通过记录坐标的方式尽可能精确地表示点、线和多边形等地理实 体,坐标空间设为连续,允许任意位置、长度和面积的精确定义,属性隐含在每个地理实体 中。栅格数据格式是位置隐含,即数据直接记录属性本身,而所在位置则根据行列号 转换为相应的坐标。以规则的阵列来表示空间地物或现象分布的数据组织,组织中的每个 数据表示地物或现象的非几何属性特征。矢量数据结构的显著特点定位明显,属性隐含。而栅格数据属性突出而矢量型地 理信息系统难于实现但是能进行多层的分析,光栅型地理信息系统不适于多层的分析。城市地理信息的应用中,多种应用需要有各自独立的属性信息,使用矢量数据结 构可以得到更少的数据冗余和更高的精度。在现有的很多地理信息系统应用中,由于都是基于各自独特的应用而没有分离地 理信息模块自身,使得模块化应用和跨平台实现成为不可能。另外,有些独立的应用开发包 功能和效率不够理想,从结果上看,电子地图的界面形式受到限制,响应速度不是很令人满
意ο
发明内容
为了解决上述传统问题,因此本发明的一个目的就是提出了一种基于嵌入式环境的高性能GIS引擎实现系统及方法。在一个方面中,提出了一种基于嵌入式环境的GIS引擎实现系统,该系统包括地 理信息处理模块,应用管理模块和客户界面。在这个方面中,其中地理信息处理模块进一步包括将ARCGIS系统中的空间数据 文件转化成本系统特有的pmw文件,并将其初始化后向应用管理模块提供地理信息。在这个方面中,其中用户管理模块进一步包括根据从客户界面收到的指令调度业 务流程对地理信息处理模块提供的地理信息进行处理。在这个方面中,其客户界面进一步包括解析客户发出的指令并将指令发送至应用管理模块。在另一个方面中,提出了一种基于嵌入式环境的GIS引擎实现方法,该方法包括 生成空间数据文件,GIS引擎初始化及引擎显示。在这个方面中,其中生成空间数据文件进 一步包括以下步骤读取ARCGIS系统中的空间数据文件,获取地层信息及相应的地图名称;根据获取的每一个地图名称创建同名的以pmw为后缀的空文件以及地图全局的 四叉树;在pmw文件中创建地图头部信息;将每个图层信息写入pmw文件中;记录每个图层的文件长度,并将该值赋给该图层的头部信息基本单元中的图层数 据长度及下一个图层在头部信息的基本单元中的文件起始位置中;检查有无由于任何意外导致图层写入任务失败致使整个地图转换过程失败的情 况,若有则删除已生成且无效的pmw文件,并将相应的错误码传送至应用管理模块,应用管 理模块将根据错误码在错误列表中查找相应的错误信息并向客户界面输出错误信息。在这个方面中,其中地图全局的四叉树创建包括获取地图制作时预定义的四叉树的深度参数和地图范围参数;判断该四叉树是否已经初始化,若已被初始化则负责删除该四叉树上已有的所有 的节点以免内存泄漏;生成根节点,并生成下一个子节点,判断生成的字节点是否是叶子节点,若是则判 断该字节点的所有兄弟节点是否已生成;所有节点生成则四叉树创建完成。在这个方面,其中在pmw文件中填充地图头部信息包括依次根据地图中每个图 层信息,根据图层的姓名创建相应图层命名的头部信息的基本单元,将第一个图层基本单 元中的文件起始位置设置为0,所有图层的头部信息的基本单元构成一个pmw文件的头部信息。在这个方面,其中将每个图层信息写入pmw文件中,包括打开图层文件中的shp文件和dbf文件,得到图层关于图元个数、类型、边界的基 本信息,以便于遍历所有图元;用该图层的图层头、四叉树的节点块、四叉树的索引块以及按图元次序排列的索 引块,填充图层起始位置到图层图元数据之间的空隙,这些数据存放在图层数据之前;重新格式化属性域的宽度,使每个属性域的宽度不大于该域最大属性值的宽度, 以降低存储消耗,同时改变数据的读写属性为只读;顺序读取每个图元数据并转换写入到pmw文件中,即将原来的以shp和dbf为存 储格式的文件转化为Pmw文件对图元存储的自定义格式;把当前图元的索引添加到四叉树的相应节点;遍历所有四叉树节点,累加每个节点中的图元个数,作为节点中记录索引集合位 置的量;填写完整的图层头信息、四叉树节点及每个节点的索引块到文件;进行错误检查,如有错误则设置错误标志。
在这个方面,其中pmw文件对图元存储的自定义格式包括索引,空间数据,属性数据三部分。在这个方面,其中GIS引擎初始化包括更改ARCGIS通用地图中的axl配置文件中的相关文件路径并更改文件后缀形成 xml格式的空间数据定义文件;解析空间数据定义文件,获取基本地层信息,包括图层名称、字体名称、图层 最小显示比例、图层最大显示比标签域、图层可见布尔值和地图空间数据相关联的信息;循环读取pmw空间数据文件中的每个图层的头部,获取的图层名对比D2中获取的 图层名,匹配后初始化该图层的空间数据文件头以及指示图层在文件中位置的偏移量,成 生可操作的电子地图;初始化完成后,用户可以通过用户界面随时进行显示或查询等操作。在这个方面,其中GIS引擎显示包括判断是否第一次调用画图函数,如为第一次则构造适配系统画布的内存画布;设置坐标原点为画布中心点,以便于地图坐标和屏幕坐标的转换;转化系统画布的中心点以匹配内存画布;判断地图是否更新到原有内存画布的内容不在合适的程度,如需重画则重画所有 图层到内存画布;拷贝内容画布内容到系统画布;直接画局部更新的图元到系统画布并进行高亮或反色处理;在系统画布上绘制用户的操作线。在这个方面,其中GIS引擎图层绘制包括使用背景色填充内存画布以达到清理画布的目的;检索当前视图的可视范围内所有的有效的四叉树节点,四叉树节点序列对所有图 层都是相同有效的,但是每个节点的内容不同;获取当前图层的头部信息;判断当前比例尺是否在图层的最大和最小显示比例范围内和图层是否设置为可 视,如果是则进行图层绘制;判断是否已遍历所有图层,流程结束。在这个方面,其中四叉树查询包括清空有效节点缓存,以便于新的查询操作存放新的有效节点序列;判断需要查询的视屏范围是否在当前树的范围内,如果不在树的边界范围内,则 直接返回;判断根节点是否还有字节点,即树的范围是否被分块;用视屏范围比较树的边界,判断在当前树的位置;访问完成所有字节点的查询,按次序记录下所有的有效节点。通过本发明,本发明解决了地理信息系统不能模块化应用和跨平台实现,同时也 大大提高了地图响应速度。
结合随后的附图,从下面的详细说明中可显而易见的得出本发明的上述及其他目 的、特征及优点。在附图中图1给出了根据本发明的系统的方框图;图2给出了本发明的生成空间数据文件流程图;图3给出了本发明中pmw文件中头部文件的基本单元;图4给出了本发明的四叉树创建流程图;图5给出了本发明将单个图层信息写入pmw文件中的流程图;图6给出了 pmw文件中对图元存储的自定义格式;图7给出了本发明中GIS引擎初始化流程图;图8给出了本发明中GIS引擎显示流程9给出了本发明中GIS引擎图层绘制流程10给出了本发明中四叉树查询流程图。
具体实施例方式在下文中将详细地论述的,本公开可以采用完全硬件的实施例、完全软件的实施 例或包括硬件和软件元件两者的实施例的形式。在优选实施例中,本公开可以用软件来实 施,其可以包括但不局限于固件、驻留软件、微码等等。现在参考附图,对本发明的原理进行详细的说明。如图1所示一种基于嵌入式环境的GIS引擎实现系统,该系统包括地理信息处理 模块,应用管理模块和客户界面。其中的地理信息处理模块进一步包括将ARCGIS系统中的 空间数据文件转化成本系统特有的pmw文件,并将其初始化后向应用管理模块提供地理信 息;用户管理模块进一步包括根据从客户界面收到的指令调度业务流程对地理信息处理模 块提供的地理信息进行处理;其中客户界面进一步包括解析客户发出的指令并将指令发送 至应用管理模块。如图2所示,生成空间数据文件包括以下步骤读取ARCGIS系统中的空间数据文件,获取地层信息及相应的地图名称;根据获取的每一个地图名称创建同名的以pmw为后缀的空文件以及地图全局的 四叉树;在pmw文件中创建地图头部信息;将每个图层信息写入pmw文件中;记录每个图层的文件长度,并将该值赋给该图层的头部信息基本单元中的图层数 据长度及下一个图层在头部信息的基本单元中的文件起始位置中;检查有无由于任何意外导致图层写入任务失败致使整个地图转换过程失败的情 况,若有则删除已生成且无效的pmw文件,并将相应的错误码传送至应用管理模块,应用管 理模块将根据错误码在错误列表中查找相应的错误信息并向客户界面输出错误信息。如图3所示为pmw文件中头部文件的基本单元,创建过程为依次根据地图中每个 图层信息,根据图层的姓名创建相应图层命名的头部信息的基本单元,将第一个图层基本 单元中的文件起始位置设置为0,所有图层的头部信息的基本单元构成一个pmw文件的头部信息。如图4所示地图全局的四叉树创建包括获取地图制作时预定义的四叉树的深度参数和地图范围参数;判断该四叉树是否已经初始化,若已被初始化则负责删除该四叉树上已有的所有 的节点以免内存泄漏;生成根节点,并生成下一个子节点,判断生成的字节点是否是叶子节点,若是则判 断该字节点的所有兄弟节点是否已生成;所有节点生成则四叉树创建完成。如图5所示将每个图层信息写入pmw文件中,包括打开图层文件中的shp文件和dbf文件,得到图层关于图元个数、类型、边界的基 本信息,以便于遍历所有图元;用该图层的图层头、四叉树的节点块、四叉树的索引块以及按图元次序排列的索 引块,填充图层起始位置到图层图元数据之间的空隙,这些数据存放在图层数据之前;重新格式化属性域的宽度,使每个属性域的宽度不大于该域最大属性值的宽度, 以降低存储消耗,同时改变数据的读写属性为只读;顺序读取每个图元数据并转换写入到pmw文件中,即将原来的以shp和dbf为存 储格式的文件转化为Pmw文件对图元存储的自定义格式;把当前图元的索引添加到四叉树的相应节点;遍历所有四叉树节点,累加每个节点中的图元个数,作为节点中记录索引集合位 置的量;填写完整的图层头信息、四叉树节点及每个节点的索引块到文件;进行错误检查,如有错误则设置错误标志。如图6所示pmw文件对图元存储的自定义格式包括索引,空间数据,属性数据三 部分。如图7所示GIS引擎初始化包括更改ARCGIS通用地图中的axl配置文件中的相关文件路径并更改文件后缀形成 xml格式的空间数据定义文件;解析空间数据定义文件,获取基本地层信息,包括图层名称、字体名称、图层 最小显示比例、图层最大显示比标签域、图层可见布尔值和地图空间数据相关联的信息;循环读取pmw空间数据文件中的每个图层的头部,获取的图层名对比D2中获取的 图层名,匹配后初始化该图层的空间数据文件头以及指示图层在文件中位置的偏移量,成 生可操作的电子地图;初始化完成后,用户可以通过用户界面随时进行显示或查询等操作。如图8所示GIS引擎显示包括判断是否第一次调用画图函数,如为第一次则构造适配系统画布的内存画布;设置坐标原点为画布中心点,以便于地图坐标和屏幕坐标的转换;转化系统画布的中心点以匹配内存画布;判断地图是否更新到原有内存画布的内容不在合适的程度,如需重画则重画所有 图层到内存画布;
拷贝内容画布内容到系统画布;直接画局部更新的图元到系统画布并进行高亮或反色处理;在系统画布上绘制用户的操作线。如图9所示GIS引擎图层绘制包括使用背景色填充内存画布以达到清理画布的目的;检索当前视图的可视范围内所有的有效的四叉树节点,四叉树节点序列对所有图 层都是相同有效的,但是每个节点的内容不同;获取当前图层的头部信息;判断当前比例尺是否在图层的最大和最小显示比例范围内和图层是否设置为可 视,如果是则进行图层绘制;判断是否已遍历所有图层,流程结束。如图10所示四叉树查询包括清空有效节点缓存,以便于新的查询操作存放新的有效节点序列;判断需要查询的视屏范围是否在当前树的范围内,如果不在树的边界范围内,则 直接返回;判断根节点是否还有字节点,即树的范围是否被分块;用视屏范围比较树的边界,判断在当前树的位置;访问完成所有字节点的查询,按次序记录下所有的有效节点。对于本领域的普通技术人员来说可显而易见的得出其他优点和修改。因此,具有 更广方面的本发明并不局限于这里所示出的并且所描述的具体说明及示例性实施例。因 此,在不脱离由随后权利要求及其等价体所定义的一般发明构思的精神和范围的情况下, 可对其做出各种修改。
权利要求
1.一种基于嵌入式环境的GIS引擎实现系统,该系统包括地理信息处理模块,应用管 理模块和客户界面。
2.根据权利要求1的系统,其中的地理信息处理模块进一步包括将ARCGIS系统中的 空间数据文件转化成本系统特有的pmw文件,并将其初始化后向应用管理模块提供地理信息ο
3.根据权利要求1的系统,其中用户管理模块进一步包括根据从客户界面收到的指令 调度业务流程对地理信息处理模块提供的地理信息进行处理。
4.根据权利要求1的系统,其中客户界面进一步包括解析客户发出的指令并将指令发 送至应用管理模块。
5.一种基于嵌入式环境的GIS引擎实现方法,该方法包括生成空间数据文件,GIS引 擎初始化及引擎显示。
6.根据权利要求5的方法,生成空间数据文件进一步包括以下步骤Al 读取ARCGIS系统中的空间数据文件,获取地层信息及相应的地图名称; A2 根据获取的每一个地图名称创建同名的以pmw为后缀的空文件以及地图全局的四 叉树;A3 在pmw文件中创建地图头部信息; A4 将每个图层信息写入pmw文件中;A5:记录每个图层的文件长度,并将该值赋给该图层的头部信息基本单元中的图层数 据长度及下一个图层在头部信息的基本单元中的文件起始位置中;A6 检查有无由于任何意外导致图层写入任务失败致使整个地图转换过程失败的情 况,若有则删除已生成且无效的pmw文件,并将相应的错误码返回至应用管理模块,应用管 理模块将根据错误码在错误列表中查找相应的错误信息并向客户界面输出错误信息。
7.根据权利要求6中步骤A2所述的地图全局的四叉树创建进一步包括 Bl 获取在地图制作时预定义的四叉树的深度参数和地图范围参数;B2:判断该四叉树是否已经初始化,若已被初始化则负责删除该四叉树上已有的所有 的节点以免内存泄漏;B3:生成根节点,并生成下一个子节点,判断生成的字节点是否是叶子节点,若是则判 断该字节点的所有兄弟节点是否已生成; B4 所有节点生成则四叉树创建完成。
8.根据权利要求6中步骤A3所述的在pmw文件中填充地图头部信息进一步包括依 次根据地图中每个图层信息,根据图层的姓名创建相应图层命名的头部信息的基本单元, 将第一个图层基本单元中的文件起始位置设置为0,所有图层的头部信息的基本单元构成 一个pmw文件的头部信息。
9.根据权利要求6中A4中所述的将每个图层信息写入pmw文件中,进一步包括Cl 打开图层文件中的shp文件和dbf文件,得到图层关于图元个数、类型、边界的基本 信息,以便于遍历所有图元;C2:用该图层的图层头、四叉树的节点块、四叉树的索引块以及按图元次序排列的索引 块,填充图层起始位置到图层图元数据之间的空隙,这些数据存放在图层数据之前;C3 重新格式化属性域的宽度,使每个属性域的宽度不大于该域最大属性值的宽度,以降低存储消耗,同时改变数据的读写属性为只读;C4 顺序读取每个图元数据并转换写入到pmw文件中,即将原来的以shp和dbf为存储 格式的文件转化为pmw文件对图元存储的自定义格式; C5 把当前图元的索引添加到四叉树的相应节点;C6 遍历所有四叉树节点,累加每个节点中的图元个数,作为节点中记录索引集合位置 的量;C7 填写完整的图层头信息、四叉树节点及每个节点的索引块到文件; C8 进行错误检查,如有错误则设置错误标志。
10.根据权利要求10中C4所述的pmw文件对图元存储的自定义格式进一步包括索 引,空间数据,属性数据三部分。
11.如权利要求5所述的方法中GIS引擎初始化进一步包括D1 更改ARCGIS通用地图中的axl配置文件中的相关文件路径并更改文件后缀形成 xml格式的空间数据定义文件;D2 解析空间数据定义文件,获取基本地层信息,包括图层名称、字体名称、图层最 小显示比例、图层最大显示比标签域、图层可见布尔值和地图空间数据相关联的信息。D3 循环读取pmw空间数据文件中的每个图层的头部,获取的图层名对比D2中获取的 图层名,匹配后初始化该图层的空间数据文件头以及指示图层在文件中位置的偏移量,成 生可操作的电子地图。D4:初始化完成后,用户可以通过用户界面随时进行显示或查询等操作。
12.如权利要求5所述的方法中GIS引擎显示进一步包括E1 判断是否第一次调用画图函数,如为第一次则构造适配系统画布的内存画布; E2 设置坐标原点为画布中心点,以便于地图坐标和屏幕坐标的转换; E3 转化系统画布的中心点以匹配内存画布;E4:判断地图是否更新到原有内存画布的内容不在合适的程度,如需重画则重画所有 图层到内存画布;E5 拷贝内容画布内容到系统画布;E6 直接画局部更新的图元到系统画布并进行高亮或反色处理; E7 在系统画布上绘制用户的操作线。
13.如权利要求5所述的方法中GIS引擎图层绘制进一步包括 F1 使用背景色填充内存画布以达到清理画布的目的;F2 检索当前视图的可视范围内所有的有效的四叉树节点,四叉树节点序列对所有图 层都是相同有效的,但是每个节点的内容不同; F3 获取当前图层的头部信息;F4:判断当前比例尺是否在图层的最大和最小显示比例范围内和图层是否设置为可 视,如果是则进行图层绘制;F5 判断是否已遍历所有图层,流程结束。
14.所述的四叉树查询进一步包括G1 清空有效节点缓存,以便于新的查询操作存放新的有效节点序列;G2 判断需要查询的视屏范围是否在当前树的范围内,如果不在树的边界范围内,则直接返回;G3 判断根节点是否还有字节点,即树的范围是否被分块;G4 用视屏范围比较树的边界,判断在当前树的位置;G5 访问完成所有字节点的查询,按次序记录下所有的有效节点。
全文摘要
一种基于嵌入式环境的GIS引擎实现系统,该系统包括地理信息处理模块,应用管理模块和客户界面,其中的地理信息处理模块进一步包括将ARCGIS系统中的空间数据文件转化成本系统特有的pmw文件,并将其初始化后向应用管理模块提供地理信息服务;用户管理模块进一步包括根据从客户界面收到的指令调度业务流程对地理信息处理模块提供的地理信息进行处理;其中客户界面进一步包括解析客户发出的指令并将指令发送至应用管理模块,剥离平台相关性后的地图引擎可移植性得到提高,在代码级可以实现平台无关性,通过该系统解决了地理信息系统不能模块化应用和跨平台实现,同时也大大提高了地图响应速度。
文档编号G06F17/30GK101996199SQ20091010163
公开日2011年3月30日 申请日期2009年8月20日 优先权日2009年8月20日
发明者单培红, 张永良, 曹华寅, 葛官法, 韦海强 申请人:浙江省公众信息产业有限公司