地理图形标记语言GML的架构及范例.doc_第1页
地理图形标记语言GML的架构及范例.doc_第2页
地理图形标记语言GML的架构及范例.doc_第3页
地理图形标记语言GML的架构及范例.doc_第4页
地理图形标记语言GML的架构及范例.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

地理图形标记语言GML的架构及范例一、前言在信息高速公路的时代,如何能在不同的GIS 系统间实时分享资料,是刻不容缓的问题,现在该问题已经有了一个很好解决方案,那就是以 XML 为基础的 GIS 编码标准,称为地理图形标记语言GML(Geography Markup Language)。GML是由开放式地理信息系统联盟(OpenGIS Consortium,简称OGC)所发展,专为地理信息而发展的,以XML 为基础的编码标准,其与生俱来的转换及存取能力,将地理空间信息的管理开启一个全新的领域(请参考 黄旭初2002,新世代的GIS编码标准地理图形标记语言GML,国土信息系统通讯第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数据库。(二)以simple feature为处理的单元GML使用地理图形实体(称为feature)来描述这个世界,基本上一个feature是由一系列的属性(properties)及几何图形(geometries)所组成,属性的内容包括名称(name)、型态(type)、值的叙述(value description)等,几何图形(geometries)则由基本几何区块(例如点、线、及多边形)所组成,为了简化,GML的初始规格限定在平面的简单几何图形(称为simple feature,包括点、线、及多边形),在不久的将来,将会扩展至3D的几何图形及位相资料。GML的编码可以容许相当复杂的feature,一个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的内容及结构。图1是以UML来描述Feature schema的内容及结构,从图中可以看到几何图形的属性(geometric property)被当作一个关联类别(association class),来将一个feature与一个几何图形(geometry)连结,例如PointProperty用来连结一个点(point)的几何图形。详细的Feature schema内容请参考GML2.1.1规格书(位于/gml/02-009/GML2-11.html)之附录A。图1. Feature schema之UML图标2. Geometry Schema(geometry.xsd)Geometry schema有关几何图形元素的类型的定义,包括点(point)、线(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. XLinks 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称为 员工 (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(fid)及其description属性等),可以在制作XML instance的时候使用,举例如下:内政部信息中心的员工黄旭初41小黄阿初(二)坐标及坐标范围的编码几何图形的坐标可以用一系列的元素组、或元素的单一字符串来编码,两种方法都可以对1、2、3度空间的坐标编码,其中元素可以使用XML 解析器(parser)来验证其正确性。元素在 GML的Geometry schema 中定义如下:元素中资料组的组数由数据类型决定,例如点(point)资料只含有一组坐标组,如下:5.040.0(例中srsName=/gml/srs/epsg.xml#4326是空间参考系统。)而与的作用一样,但更具有弹性,使用者可以定义坐标值之间的间隔符号(delimiter),元素在 GML的Geometry schema 中定义如下:的坐标值是储存在一个字符串内,其中预设的小数点是 .、坐标值的间隔符号是 ,、坐标组的间隔符号是Unicode的空白(#x20),使用者可以依其需要改变上述之间隔符号。同样以点资料为例,以编码坐标如下:5.0,40.0(三)基本几何图形的编码几何图形的坐标都是定义在某种空间参考系统(Spatial Reference System,缩写为SRS)中,GML 2.1.1版中没有规定SRS的细部规格,目前OGC已经提出一份建议规格进行讨论,应该很快就会公布,几何图形类型(geometry type)的srsName属性是用来指向SRS的定义。几何图形类型(geometry type)的gid 属性是几何图形元素的唯一辨识码,属于选择使用的项目,依规定,gid的值是字符串且第一个字符不能是数字。GML中所定义的基本几何图形元素(primitive geometry element)包括坐标范围(Box)、点(Point)、线串(LineString)、线环(LinearRing)、及多边形(Polygon),分述如下:1. Box:用来对feature的坐标范围编码,第一组坐标是坐标范围的极小值,第二组坐标是坐标范围的极大值,举例如下:0.00.0100.0100.02. Point:点元素只有一组坐标,举例如下,56.10.453. LineString:由两组以上的点坐标所构成的直线串,举例如下:0.00.020.035.0100.0100.0若第一点坐标值与最后一点坐标值一样,则这是一个封闭的线串。4. LinearRing:线环是封闭的直线串,其第一点坐标值与最后一点坐标值一样,它是被用来建构多边形,其编码范例详见以下多边形的介绍。5. Polygon:多边形的边界是由线环(LinearRing)所构成,且区分成外边界(outer boundary)及内边界(inner boundary),内边界可以有多个但彼此不能交叉及包含,且边界点的顺序是顺时针或逆时针并不重要。以下是一个多边形的instance,它拥有两个内部边界:0.0,0.0 100.0,0.0 100.0,100.0 0.0,100.0 0.0,0.0 10.0,10.0 10.0,40.0 40.0,40.0 40.0,10.0 10.0,10.0 60.0,60.0 60.0,90.0 90.0,90.0 90.0,60.0 60.0,60.0(四)几何图形集合的编码GML Geometry schema所预先定义的几何图形集合(geometry collection),可分为同质几何图形集合(homogeneous geometry collection)及异质几何图形集合(heterogeneous geometry collection)两种。所谓的同质几何图形集合(homogeneous geometry collection)是指同类型几何元素的集合,包括MultiPoint、MultiLineString及MultiPolygon等三种。以下以MultiLineString为例,在本例中MultiLineString几何图形集合拥有三个LineString的成员:56.10.4567.230.9846.719.2556.8810.44324.1219.70.454.56所谓的异质几何图形集合(homogeneous geometry collection)是指不同类型几何元素的集合,GML Geometry schema中的MultiGeometry元素即是异质几何图形集合,它的成员可以包括Points、LineStrings、Polygons、MultiPoints、 MultiLineStrings、MultiPolygon等几何图形元素、及其它的几何图形集合(geometry collection)。以下是一个异质几何图形集合的instance,它包含Point、LineString及Polygon等三种不同类型几何元素的成员:50.050.0 0.00.00.050.0100.050.00.0,0.0 100.0,0.0 50.0,100.0 0.0,0.0(五)具有几何图形的feature的编码GML 2.1.1版提供了一组定义好的几何图形属性(geometry property),将某些类型的几何图形与feature产生关联。我们继续前面的员工范例,为其加上一个点的属性,称为 location (location是已定义于GML Feature schema中的pointProperty的别名),则可以得到下列的结果:内政部信息中心的员工黄旭初41小黄阿初1.01.0其相对应的application schema如下:我们亦可以将上面的location属性重新命名成一个新的属性名称employeeLocation,供application schema全体使用,则上面application schema改写如下:(六)feature集合的编码feature集合(feature collection)使用featureMember属性来包含多个feature或其它的feature collection。以一个城市模型的feature collection为例,它包含道路及河流等资料,则其可能的GML instance如下:Feb 2000. .以下是相对应的application schema,注意其中gml:_Feature Collection及gml:Abstract Feature Collection Type的宣告:.而feature collection中的成员亦可以是储存在远程的feature,其间以Xlink链接。我们同样以上面的城市模型为例,可以在不修改原来的application schema的情况下,加入储存在远程的河流资料,如下:Feb 2000.例中以xlink:href属性指向远程的河流对象。(七)feature的关联数据的编码XML文件结构的主要目的,是为了描述资料、及资料内部组成组件间的关系。GML以巢状结构的包含(containment)、及链接(linking)来描述资料间的关系。以三笔土地(LandParcel)之间的相邻关系为例,以GML编码的instance如下:2345.9812.8345.例中以adjacenTo属性来表示该笔土地与哪一笔土地相邻。上例所对应的application schema如下:上例亦可以用另一种方式来表现相邻土地之间的关系,我们可以定义一个称为相邻土地(AdjcentPair) 的feature type,它有一个common Boundary Length属性纪录共同边界的长度,并以adjacenTo属性来纪录相邻的土地,以GML编码的案例如下:2345.9812.231对应的application schema如下:四、建构应用领域的application schema的规则为以GML编码来建构某应用领域的数据结构(application schema),以下的规则必须遵循(限于篇幅相关范例请参GML 2.1.1规格书5.2章节内容):(一)定义新的feature类型application schema的设计者可以创造自己的feature或feature collection的类型,但必须是GML类型gml:AbstractFeatureType 或gml: Abstract Feature Collection Type的子类型。(二)定义新的几何图形类型(geometry type)我们可以依需要创造自己的几何图形类型,但必须是GML类型gml:AbstractGeometryType 或gml:GeometryCollectionType的子类型。(三)定义新的几何图形的属性(geometry property)我们可以在上节自己所定义的新几何图形类型中,创造自己的几何图形属性,但必须是gml:GeometryPropertyType的子类型。(四)宣告target namespace我们必须为我们的application schema宣告一个target namespace,在schema中所宣告的元素及其类型定义,均位于这个namespace中。Namespace主要用来避免元素名称的冲突,在分布式的网络环境中,不同的XML文件中可能使用了相同名称的元素,宣告适当的namespace可以解决元素名称冲突的问题。特别注意的是namespace中的URI并不需要真正指到schema的文件,它只是一种机制,用来区分不同文件的元素名称。(五)引进不同namespace的schema以GML编码的文件,可以从多个不同的namespace引用不同来源的schema,以下图为例:图4 .使用多个namespace来源的schema图中schema-A及schema-B位于同一个namespace,所以schema-B使用来引进schema-A的内容;schema-A与GML feature schema位于不同的namespace,所以schema-A使用来引进GML feature的内容。(六)使用substitution group在全域元素(global element)中所定义的substitution group,可以取代GML元素,并为整个GML application schema所使用。(七)宣告额外的属性GML提供了一些预先定义好的几何图形属性(geometric property),包括location、centerLineOf、extentOf等等,我们也可以使用subs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论