什么是GML

. GML介绍
GML是基于XML的空间信息编码标准,由OpenGIS Consortium (OGC)提出,得到了许多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。

运用GML,封装的地理数据和图形解释是清楚分离的。如前所述,图形解释格式包括SVG、VML和X3D等。

GML基于文本表示地理信息
文本比较简单、直观,容易理解和编辑。已经在空间信息和三维显示上得到广泛应用的数据格式是虚拟现实建模语言VRML (Virtual Reality Markup Language),现在这些VRML模型元素一样可以在GML上应用。

GML封装了地理信息及其属性
GML基于地理信息抽象模型,即空间实体特征及西宁封装。地理特征(Feature)包括一系列的属性和相应的几何信息,一般来说属性由名字、类型和值组成,几何信息由基本元素如点、线、面、曲线、多边形等组成。目前GML主要局限在二维应用,正扩展到二维半和三维空间以及特征间的拓扑关系。GML允许相当复杂的特征,如特征间的嵌套。例如飞机场由出租汽车道、飞机跑道等组成。

以下是一个封装建筑物的GML例子:
<Feature   fid="142" featureType="school"  Description="A middle school">
        <Polygon name="extent" srsName="epsg:27354">
            <LineString name="extent" srsName="epsg:27354">
                <CData>
                  491888.999999459,5458045.99963358 491904.999999458,5458044.99963358
                  491908.999999462,5458064.99963358 491924.999999461,5458064.99963358
                  491925.999999462,5458079.99963359 491977.999999466,5458120.9996336
                  491953.999999466,5458017.99963357 </CData>
            </LineString>
        </Polygon>
</Feature>

上面只有集合信息,没有实际属性,增加了属性的例子如下:
<Feature   fid="142" featureType="school" >
   <Description>Balmoral Middle School</Description>>
   <Property Name="NumFloors" type="Integer" value="3"/>
   <Property Name="NumStudents" type="Integer" value="987"/>
       <Polygon  name="extent" srsName="epsg:27354">
            <LineString  name="extent" srsName="epsg:27354">
                <CData>
                  491888.999999459,5458045.99963358 491904.999999458,5458044.99963358
                  491908.999999462,5458064.99963358 491924.999999461,5458064.99963358
                  491925.999999462,5458079.99963359 491977.999999466,5458120.9996336
                  491953.999999466,5458017.99963357 </CData>
        </LineString>
    </Polygon>
</Feature>




GML封装了空间地理参考系统
空间地理参考系统是地理信息系统数据处理的基础。GML封装了空间地理参考系统、主要的投影关系等,保证分布式处理的扩展性和灵活性。

GML可以实现地理数据的分布式存储
GML对地理数据的分发是非常方便的技术手段,但其作用不止局限与此,同样可以成为地理数据分布式存储的重要手段。主要的技术工具是XLink和Xpointer。

GML的技术内容
GML是基于XML的,XML是数据描述的最好手段,更准确地说,XML是表达数据描述的语言。XML不是编程语言,XML的行为和操作要由Java和C++实现。

XML Version 1.0
XML用自定义的标记描述数据,看起来如下:
<Feature>
.... 许多 XML描述 ...
....
</Feature>


有效的标记名字由Document Type Definition即DTD确定。XML数据的有效性由XML 解析器检查。利用XML可以非常容易地产生和更新具有复杂继承关系的数据结构,而这样的结构在地理信息应用程序中是非常普遍的。

图形格式
SVG、VML和X3D等图形格式都有描述图形的不同方式,如属性和颜色、线宽等。浏览SVG, VML和X3D数据文件,需要合适的浏览器,如Internet Explorer 5.0内嵌对VML的支持,Adobe对Internet Explorer和Netscape Communicator由支持SVG的插件,Adobe Illustrator也支持SVG, IBM等公司也开发了SVG的浏览器和支持库,几个Java版本的SVG 浏览器已经可以利用。

下图显示了几种技术在显示图形中的运用方式:


Xlink和XPointer
利用HTML技术,人们通过影像之间的链接,可以建立地理数据的连接的集合。然而,由于HTML链接机制过于简单而不可扩展,对实际复杂的分布式应用是不合适的。

在Xlink中,链接源点只链接到数据库,数据库提供目标文档的指定XML元素。因此链接不象HTML一样,是硬编码方式,这对GML构建复杂的分布式系统是非常重要的。借助于Xlink和XPointer, 不需要改变链接源点就可以方便地进行各种应用地变换。

GML与其它地理信息编码标准
目前也有许多地理信息的编码标准,如COGIF, MDIFF, SAIF, DLG和SDTS等,与GML 地不同之处在哪里?严格意义上说,没有本质的不同,只是GML更简单和直观。最重要的区别在于GML是基于XML的!

XML在当前软件技术中的作用和影响力是勿庸置疑的,微软的.NET计划就是搭建在XML之上的,在此不再赘述。由于XML的发展一场迅速,如果地理信息编码不基于XML技术,对将来的扩展和广泛应用都是巨大的阻碍。用XSLT或者任何编程语言如VB、VBScript、Java、C++、Javascript,我们可以方便地将XML数据传输到任意地方,唯一的技术就可以处理一系列的地理数据、非地理数据的任意转换和传输。我们才真正可以说,现在GIS才是Open GIS!

GML可以由许多公开工具浏览
GML可以由文本编辑器打开和编辑,由于GML是XML文档,可以由许多XML解析器打开,下图是用XMLSpy打开一个GML文档:


GML可以与非空间数据集成
二进制数据与其它数据的继承是非常困难的,必须理解数据结构和数据库设计。对许多老系统来说,改变数据结构必须改变应用程序,这是非常繁重甚至是不可能完成的任务。借助XLink and Xpointer,改变是非常方便的,集成也就相当容易。
总之,GML是强有力的地理信息编码标准,GML的广泛应用必然带动一个地理信息开放系统时代的到来。



<script type="text/javascript"> google_ad_client = "pub-8112432724706407"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel = ""; </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenGL GML是指使用GML(Game Maker Language)编写的OpenGL源码。 OpenGL是一个跨平台的图形库,它提供了一系列用于渲染2D和3D图形的函数和工具。GML是由YoYo Games开发的一种专门用于游戏开发的脚本语言,它是GameMaker Studio的核心程序设计语言。 使用GML编写OpenGL源码可以实现高性能的图形渲染和游戏开发。开发者可以利用OpenGL提供的函数和工具绘制各种图形,包括点、线、多边形等,还可以使用贴图方式进行纹理渲染,实现更加逼真和丰富的游戏画面。 在使用GML编写OpenGL源码时,需要了解OpenGL的基本概念和编程模型,熟悉GML的语法和函数库。可以使用GML编写的OpenGL源码包括但不限于模型导入、贴图、阴影、光照、粒子效果等。通过使用GML编写OpenGL源码,开发者可以轻松地创建自己的游戏画面和特效,实现更具创意和个性化的游戏体验。 总而言之,使用GML编写OpenGL源码可以将这两个强大的工具结合起来,实现高性能的图形渲染和丰富多样的游戏画面。这种编程方式能够提供更加灵活和自由的创作空间,帮助开发者实现他们的创意和想法。 ### 回答2: OpenGL GML源码是用于创建3D图形渲染的一种编程语言。OpenGL是一种跨平台的图形库,可以在多个操作系统上运行,例如Windows,Mac和Linux。GML(GameMaker Language)是一种基于事件驱动的脚本语言,常用于游戏开发。OpenGL GML源码结合了这两个技术,可以用于创建复杂的3D图形和游戏。 通过编写OpenGL GML源码,可以实现各种渲染效果,如光照、材质、纹理映射等。它提供了一系列函数和变量,开发者可以使用这些函数和变量来定义和控制3D对象的行为和外观。借助OpenGL GML源码,开发者可以创建3D场景、模型和特效,以及添加用户交互和动画等。 OpenGL GML源码的优点之一是其可移植性。由于OpenGL是一种跨平台的图形库,可以在多个操作系统上运行,因此开发者可以将其应用于不同的项目和平台,而无需修改源码。另外,GML也是一种易于学习和使用的脚本语言,使得初学者也能够使用OpenGL来创建3D图形和游戏。 总之,OpenGL GML源码提供了一种强大而灵活的工具,用于创建3D图形和游戏。它结合了OpenGL的跨平台优势和GML的易用性,使开发者能够在多个平台上实现高质量的3D渲染效果。无论是新手还是经验丰富的开发者,都可以通过编写OpenGL GML源码来实现他们的创意和想法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值