文档详情

地理图形标记语言gml的架构及范例

第***
实名认证
店铺
DOC
99KB
约20页
文档ID:31781511
地理图形标记语言gml的架构及范例_第1页
1/20

地理图形标记语言 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 规格书(位于 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 规格书之附录 CFeature 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=" 是空间参考系统而与的作用一样,但更具有弹性,使用者可以定义坐标值之间的间隔符号(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.00.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 中的 pointProper。

下载提示
相似文档
正为您匹配相似的精品文档