《地理图形标记语言GML的架构及范例.doc》由会员分享,可在线阅读,更多相关《地理图形标记语言GML的架构及范例.doc(20页珍藏版)》请在金锄头文库上搜索。
1、GML架构及范例地理图形标记语言GML的架构及范例一、前言在信息高速公路的时代,如何能在不同的GIS 系统间实时分享资料,是刻不容缓的问题,现在该问题已经有了一个很好解决方案,那就是以 XML 为基础的 GIS 编码标准,称为地理图形标记语言GML(Geography Markup Language)。GML是由开放式地理信息系统联盟(OpenGIS Consortium,简称OGC)所发展,专为地理信息而发展的,以XML 为基础的编码标准,其与生俱来的转换及存取能力,将地理空间信息的管理开启一个全新的领域(请参考 黄旭初2002,新世代的GIS编码标准地理图形标记语言 GML,国土信息系统通
2、讯第42期)。由于GML在GIS领域,将对资料交换课题的扮演关键的角色,GIS 的参与者实有必要对GML的内容有深入的了解,本文将介绍GML的架构,并以范例说明。二、GML基本架构(一)以XML技术为基础GML 目前的正式版本是2.1.1版,它以XML技术为基础,并使用最新的 XML Schema文件定义技术,XML Schema具有 DTD所没有的型态继承(type inheritance)、名称空间(namespaces)等,且其使用XLink来表现地理空间实体间的关系,使得实体间关系的建立不仅限于同一数据库,甚至可横跨网际网络,因此GML 2.1.1版已足以建构分布式的GIS数据库。(二
3、)以simple feature为处理的单元GML使用地理图形实体(称为feature)来描述这个世界,基本上一个feature是由一系列的属性(properties)及几何图形(geometries)所组成,属性的内容包括名称(name)、型态(type)、值的叙述(value description)等,几何图形(geometries)则由基本几何区块(例如点、线、及多边形)所组成,为了简化,GML的初始规格限定在平面的简单几何图形(称为 simple feature,包括点、线、及多边形),在不久的将来,将会扩展至3D的几何图形及位相资料。GML的编码可以容许相当复杂的feature,一
4、个feature的几何图形可以由许多几何图形元素所组成(称为 Geometric Collection),也可以包含不同型态的几何图形。例如一个无线电转播塔可以同时有一个点的属性(它的位置点)及一个以多边形所构成的面的属性(它所涵盖的区域)。(三)GML的内容GML 2.1.1版以XML技术为基础,并使用 XML Schema文件定义技术,目前GML以Feature Schema、Geometry Schema、Xlinks Schema等三个基本的schema来定义它的内容,分述如下:1. Feature Schema(feature.xsd)Feature Schema定义feature的
5、内容及结构。图1是以UML来描述Feature schema的内容及结构,从图中可以看到几何图形的属性(geometric property)被当作一个关联类别(association class),来将一个feature与一个几何图形(geometry)连结,例如PointProperty用来连结一个点(point)的几何图形。详细的Feature schema内容请参考GML2.1.1规格书(位于http:/ Feature schema之UML图标2. Geometry Schema(geometry.xsd)Geometry schema有关几何图形元素的类型的定义,包括点(point
6、)、线(line)、多边形(polygon)等简单几何图形,及复合类型(complex type)的几何图形。图2是以UML来描述Geometry schema的内容及结构。Feature schema使用元素来将几何图形结构Geometry schema带进来,使得在定义feature type时可以引用:详细的Geometry schema内容请参考GML 2.1.1规格书之附录B。图2. Geometry schema之UML图标GML 定义了几个基本的几何图形属性(Geometric property),用来将feature与几何图形连结,有关基本的几何图形属性表列如下。3. XLin
7、ks Schema(xlink.xsd)提供XLink属性来作为数据链结使用。Geometry schema使用元素来引用XLink。详细的XLinks schema内容请参考GML 2.1.1规格书之附录C。Feature schema、Geometry schema及XLink schema三个基本schema之间的关系可用图3来表示。图3. Feature schema、Geometry schema及XLink schema等三个基本schema之间的关系。三、以GML编码的范例(一)无几何图形的数据的编码本节以最简单的范例介绍起,假设有个非空间资料的feature type称为 员工
8、 (Employee),他有姓名、年龄、及别名等属性,其中别名可能有0个或1个以上,若以XML来对员工这个feature type编码,则可能的XML instance如下:黄旭初41小黄阿初在尚不考虑GML的状况下,本实例的XML schema应定义如下:若要引用GML的Feature schema,必须先确认哪些元素扮演feature type及其属性(property)的角色,在本例中 员工 是一个feature type,年龄是一个属性(property),则上例改写成GML的语法如下:而且GML的Feature schema中有一些已经定义好的属性(例如如GML feature ID
9、(fid)及其description属性等),可以在制作XML instance的时候使用,举例如下:内政部信息中心的员工黄旭初41小黄阿初(二)坐标及坐标范围的编码几何图形的坐标可以用一系列的元素组、或元素的单一字符串来编码,两种方法都可以对1、2、3度空间的坐标编码,其中元素可以使用XML 解析器(parser)来验证其正确性。元素在 GML的Geometry schema 中定义如下:元素中资料组的组数由数据类型决定,例如点(point)资料只含有一组坐标组,如下:5.040.0(例中srsName=http:/ GML的Geometry schema 中定义如下:的坐标值是储存在一个字符串内,其中预设的小数点是 .、坐标值的间隔符号是 ,、坐标组的间隔符号是Unicode的空白(#x20),使用者可以依其需要改变上述之间隔符号。同样以点资料为例,以编码坐标如下:5.0,40.0/Po