学习GIS有几年了,平时接触学习的大多是一些基本的概念、算法以及实验室项目(程序设计及其软件应用)很少接触前沿的东西。因为自己总认为类似于ogc等一些规范的理论只不过是我们的一个研究方向,有不同的人去研究制定就好了,所以也很少知道。08年春节,无意在网络中浏览帖子,看到了kml,Gml一些自己没有听过的概念,抱着好奇的心理去google了一下,发现还挺有意思,觉得应该学习了解一下。于是让我意识到作为空间地理信息的学习人员,是不应该把某个方向划分的太细,区分的太开,因为我们应该从学习者的角度尽可能多的去学习、了解我们地理信息GIS的理论方法、前沿技术,开拓我们的视野、扩充我们的知识量。于是,小弟将自己在网络上浏览的关于gml、kml的一些概念帖出来和大家共享(包括之前的几个帖子),希望大家能够一些多了解我们空间地理信息的知识。(大多是自己看到的 原版贴 转出来,因为自认为还没有独自发贴叙述这个问题的能力,请大家见谅!
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 浏览器已经可以利用。