首页> 中国专利> 一种虚拟地图中地形数据的获取和组织方法

一种虚拟地图中地形数据的获取和组织方法

摘要

本发明涉及三维地形的虚拟技术,具体涉及一种虚拟地图中地形数据的获取和组织方法。该方法从地理信息系统数据库中读取数据,并生成相应的图形;针对地图中显示的各种元素,选择或创建隶属于各元素的属性;对新生成的元素对应的数据进行构建;将选取或构建的元素属性和元素数据使用序列化的方式分别存储为属性文件和数据文件。本发明采用人工干预的方式来构造地形数据,针对不同地形地貌的文件,采用同一种组织结构对文件内部的数据进行组织,使得文件存取都是采用同样的方式进行,依据对地形元素属性的控制就可以掌握地球地形地貌的数据构建,从而构建出不同需求的地球地形地貌,使得虚拟地图系统能够更加方便合理的使用地形数据。

著录项

  • 公开/公告号CN101763356A

    专利类型发明专利

  • 公开/公告日2010-06-30

    原文格式PDF

  • 申请/专利权人 新奥特(北京)视频技术有限公司;

    申请/专利号CN200810223699.2

  • 发明设计人 龚浩;

    申请日2008-10-08

  • 分类号

  • 代理机构北京天悦专利代理事务所;

  • 代理人田明

  • 地址 100080 北京市海淀区西草场1号北京硅谷电脑城15层1501-1506室

  • 入库时间 2023-12-18 00:14:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-11-24

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20130501 终止日期:20161008 申请日:20081008

    专利权的终止

  • 2013-05-01

    授权

    授权

  • 2011-11-23

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20081008

    实质审查的生效

  • 2010-06-30

    公开

    公开

说明书

技术领域

本发明涉及三维地形的虚拟技术,具体涉及一种虚拟地图中地形数据的获取和组织方法。

背景技术

随着计算机科学的发展,用计算机实现地球的三维模拟已经成为现实。比较著名的虚拟地图系统有Google的Google Earth、微软的Virtual Earth等。专门用于视频制作的虚拟地图系统还很少,而这方面的应用却很广泛。比如新闻制作中,常常会有世界上不同区域的显示;天气预报中,也会经常用到地球上的某个区域甚至整个地球等等。如果这些区域显示全部是三维的,将会给予观众非常强烈的视觉效果。

在虚拟地图系统中虚拟场景实现的关键是场景数据的获取,目前还没有专门虚拟地图数据。因此在虚拟地图系统中考虑希望使用高程数据来建立三维模型,地形数据建立纹理数据,从而来还原真实的地球地图。目前地形数据多来源于地理信息系统数据库(GIS)中的数据,由于这种数据文件并不是专门用于虚拟地图的,源数据中包含的信息并不一定合适虚拟地图所需信息,同时源数据结构和形式也不太便于系统读取。

虚拟地图系统要使用场景数据来构建虚拟地球场景,而虚拟地球场景的快速、方便、准确的构建又依赖于场景数据的组织,但实际应用中往往没有直接用于构建的数据文件,通常需要将多种文件进行组织来构建虚拟地球场景,其中重要的一种地形数据文件可以提取自GIS。应用于GIS的地形数据文件也有很多种不同的文件格式,它们对数据的组织和描述都有不同的方式,但总的来说描述的数据过于庞杂,很多数据内容对于虚拟地图系统的使用是没有意义的。

发明内容

本发明的目的是针对现有技术的缺陷,提供一种虚拟地图中地形数据的获取和组织方法,使得虚拟地图系统能够更加方便合理的使用地形数据。

本发明的技术方案如下:一种虚拟地图中地形数据的获取和组织方法,包括如下步骤:

(1)从地理信息系统数据库中读取数据,并生成相应的图形,从而绘制出一幅地图;

(2)针对地图中显示的各种元素,选择或创建隶属于各元素的属性;

(3)对新生成的元素对应的数据进行构建;

(4)将选取或构建的元素属性和元素数据使用序列化的方式分别存储为属性文件和数据文件。

进一步,如上所述的虚拟地图中地形数据的获取和组织方法,步骤(1)中生成图形时采用OpenGL或GDI进行图形绘制。

进一步,如上所述的虚拟地图中地形数据的获取和组织方法,步骤(2)中针对原始数据中已包含的元素进行属性的选择,针对新生成的元素进行属性的创建。

进一步,如上所述的虚拟地图中地形数据的获取和组织方法,步骤(3)中对新生成的元素进行数据构建的方法如下:

(a)选取构成新元素的线段;

(b)确定每条线段与其它线段的交点情况;

(c)判断所有线段是否都只存在两个不同交点,如果不是,返回步骤(a),重新进行线段的选取;

(d)将所有线段按照逆时针构造面的顺序串联起来;

(e)获取所有串联线段的交点以及交点间的数据,由这些数据构成面数据。

更进一步,如上所述的对新生成的元素进行数据构建的方法,在步骤(b)中,确定每条线段与其它线段的交点情况的方法是将所需判断的两条线段分解为若干个直线段,然后判断是否存在任意两条相交的直线段,以此来求解线段之间的交点。

再进一步,如上所述的对新生成的元素进行数据构建的方法,判断是否存在任意两条相交的直线段的方法如下:

①判断所选的两条直线段的包围盒是否相交,如果不相交,则对其它直线段进行判断;

②判断所选的两条直线段是否平行,如果平行,则返回步骤①对其它直线段进行判断;

③求解两条直线段所符合的直线方程,得到交点;

④判断交点是否在两条线段上,如果不在,则返回步骤①对其它直线段进行判断。

进一步,如上所述的虚拟地图中地形数据的获取和组织方法,步骤(4)中生成的属性文件采用文件头、属性项目描述、属性主体的组织方式,文件头用于描述属性文件的总体情况,属性项目描述用于描述属性主体中包含的项目和描述的类型,属性主体用于记录属性项目的内容和对应的数据编号。所述的文件头描述的总体情况包括版本号、创建日期、属性条数。

进一步,如上所述的虚拟地图中地形数据的获取和组织方法,步骤(4)中生成的数据文件采用文件头、数据主体的组织方式,数据主体分为数据头和数据内容,文件头用于描述这个数据文件装载的数据的总体情况,数据头用于描述数据内容的信息和对描述的数据进行编号,数据内容用于记录地形的坐标信息。所述的文件头描述的总体情况包括版本号、标识号、这个文件包含的数据元素条数、这个文件数据显示的坐标范围;所述的数据头描述的信息包括该元素的类型、元素的坐标范围、元素包含的坐标点个数。

本发明的有益效果如下:本发明通过将地形图形化,采用人工干预的方式来构造地形数据,针对不同地形地貌的文件,采用同一种组织结构对文件内部的数据进行组织,使得文件存取都是采用同样的方式进行,依据对地形元素属性的控制就可以掌握地球地形地貌的数据构建,从而构建出不同需求的地球地形地貌,使得虚拟地图系统能够更加方便合理的使用地形数据。

附图说明

图1为本发明的总体流程图。

图2为对新生成的元素进行数据构建的方法流程图。

图3为判断是否存在任意两条相交的直线段的方法流程图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细的描述。

如图1所示,虚拟地图中地形数据的获取和组织方法,包括如下步骤:

(1)从地理信息系统数据库中读取数据,并生成相应的图形,从而绘制出一幅地图;

(2)针对地图中显示的各种元素,选择或创建隶属于各元素的属性;

(3)对新生成的元素对应的数据进行构建;

(4)将选取或构建的元素属性和元素数据使用序列化的方式分别存储为属性文件和数据文件。

通过数据的读入,根据数据隶属的形式将数据分为点、线、面三种形式组织,由于OpenGL进行面绘制的基本元素是凸多边形,而真实地形的边界是复杂的非凸多边形,如果采用OpenGL绘制的话需要将非凸多边形分解为凸多边形来进行,这样很难达到实时显示渲染的目的。但是OpenGL能够非常快速方便的进行点、线等元素的捕捉。因此本发明在图形绘制的时候会根据数据组织形式而自动采用OpenGL或者GDI来进行图形绘制。最终绘制出一幅地图来,根据载入的数据文件的不同,可能地图上显示出河流、湖泊、道路等不同元素。对整幅地图可以进行放大、缩小、漫游等多种方式浏览。对于各种显示元素可以修改其显示颜色而区分显示状态。

对于显示的各种元素可以选择或创建出隶属于这类型元素的属性。比如说对于河流可以构造出名称、长度、编码等属性。通过捕捉的功能捕捉一定的显示数据然后对其进行属性赋值,比如捕捉一段河流,可以对其进行属性赋值为长江、长12345千米、编码01234的属性,这段河流就跟赋予的属性关联起来了。以后这段河流就拥有了自身的名称、长度、编码了。

在原始数据中会包含一些属性,比如说一个河流文件,它可能就包含名称、编码、河流级别、长度、线段编码等,对于这种由原来的河流原始文件转换成新的河流文件的时候,就可以利用其中的属性,例如只需要名称和河流级别就够了,那么就可以选择属性。而对于那种新构造出来的元素,比如说由多条线段构成的面,它没有可以选择的属性,这样为了辨识或使用这个元素,就得对这个新构成的元素创建属于它的属性,例如构造出名称、代码等属性。

本发明还能利用多个旧的元素来构造新的元素,比如说利用多个边界线段来构成由这些线段构成的封闭区域。然后对新构成的元素添加属性,这样就构成了一个完整的新元素。

如图2所示,对新生成的元素进行数据构建的方法如下:

(a)选取构成新元素的线段;

(b)确定每条线段与其它线段的交点情况;

(c)判断所有线段是否都只存在两个不同交点,如果不是,返回步骤(a),重新进行线段的选取;

(d)将所有线段按照逆时针构造面的顺序串联起来;

(e)获取所有串联线段的交点以及交点间的数据,由这些数据构成面数据。

在步骤(b)中,确定每条线段与其它线段的交点情况的方法是将所需判断的两条线段分解为若干个直线段,然后判断是否存在任意两条相交的直线段,以此来求解线段之间的交点。具体方式如图3所示,包括如下步骤:

①判断所选的两条直线段的包围盒是否相交,如果不相交,则对其它直线段进行判断;

②判断所选的两条直线段是否平行,如果平行,则返回步骤①对其它直线段进行判断;

③求解两条直线段所符合的直线方程,得到交点;

④判断交点是否在两条线段上,如果不在,则返回步骤①对其它直线段进行判断。

通过人工参与的方式选取或构造元素属性和元素数据后,将这些数据使用序列化的方式分别存储为属性文件和数据文件。同时为了方便对同一源地形文件进行多次操作,还建立了工程文件,工程文件记录了源数据文件地址,用户进行的操作记录和生成的部分新地形数据。这样在下次打开工程文件的时候能够将工程状态恢复到上次操作情况,从而继续地形数据构造操作。

本发明所形成的地形文件分为两种,一个装载地形数据(数据文件),另一个装载属性数据(属性文件),它们是一一对应的,有一个必存在另外一个,其中的属性数据是为了解释对应的地形数据包含的信息的。

由于地形数据是为了描述地球的地形地貌,为此又通过地形地貌的形式不同将文件分为隶属于不同地形地貌的数据文件,比如说存在属于河流的文件,属于国家边界的文件等等。

虽然存在这么多描述不同地形地貌的文件,但是文件内部的数据组织却是采用同样一种组织结构,这样文件存取都是采用同样的方式来进行文件读取。而分为这么多不同的地形地貌文件只是为了地图构建的时候读取的方便,好在加载所需要的地形的时候能快速加载到数据文件。

数据文件的描述采用文件头+数据主体的描述方式组织,文件头是用来描述这个数据文件装载的数据的总体情况,通过文件头能够大致了解加载数据的总体概括和判断加载文件是否正确。数据主体又可分解为数据头+数据内容,数据头是为描述数据内容的一些信息和对描述的数据进行编号,而数据内容就真正记录地形的坐标信息。文件头描述的总体情况包括版本号、标识号、这个文件包含的数据元素条数、这个文件数据显示的坐标范围等;数据头描述的信息包括该元素的类型、元素的坐标范围、元素包含的坐标点个数等。

属性文件的描述采用了文件头+属性项目描述+属性主体的描述方式组织,文件头用来描述属性文件的总体情况,而属性羡慕的描述是告知属性主体中要描述的项目有什么和描述的类型是什么。属性主体就用来记录真正属性项目的内容和对应的数据编号。文件头描述的总体情况包括版本号、创建日期、属性条数等。这样属性就和数据产生了关联。

通过这种数据组织方法,依据对属性的控制就可以掌握地球地形地貌的数据构建,从而构建出不同需求的地球地形地貌。

本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号