GML-地理标记语言
=============================
概述
------
GML(OpenGIS® Geography Markup Language Encoding Standard) 当前版本是 3.2.1。
它是一种基于 XML 的地理要素描述语言标准,用以在不同的软件或系统间交换空间数据,比如后面会介绍的
WFS 标准就使用 GML 作为输入和输出格式。GML 同时也是 ISO 标准 [#9]_ 。
GML Schema
------------
GML标准其实就是通过 XML Schema(XSD [#10]_ )来定义了GML文档的结构,
这些定义都可以访问在线的地址:http://schemas.opengis.net/gml/ 得到。
目前 3.2.1 版本的 GML 中 包括 7 个顶级 XSD (其中一个是废弃类型,为了向前兼容),
这些 XSD 下还有其它子 XSD,它们组合成为如图 10 的结构。
|image0|
图 10 GML XSD 依赖关系
GML 示例
----------
下面是一个 包括点、线、面数据的 GML 的简单的例子,通过这个例子可以
看到 GML 的组织情况:
::
-0.012611143330844 -0.050087654172727
0.051158411625351 0.019154661096934
0
0.027363801567048 -0.028672505120255
0
0.051158411625351 0.019154661096934 0.039736998797366 -0.050087654172727
0
0.016656227040926 -0.024151529209121 0.003569191508859 0.005829679464227 -0.012611143330844 -0.01177833197886 -0.004283029810438 -0.042473378954071 0.018321849744836 -0.049373815870979 0.016656227040926 -0.024151529209121
在这个例子中描述了一个 GML 的 FeatureCollection,由于这是由 FME 导出的数据,
因此其中还 包括“fme”的命名空间和 ``fme:point`` 、 ``fme:line`` 、 ``fme:polygon`` 类型,
这些类型在这个 XML 包括的 XSD 中进行了描述,实际对应的类型为基于 GML 标准的点、线、面:
::
而描述数据范围的 ``gml:boundedBy`` 属性则直接由 ``gml:Envelope`` 类型的对象来描述;
另外,数据的坐标节点、空间参考等属性则直接由 GML 的类型进行描述。
更简单一点,如果我们需要自己写一个 GML 来描述一个地理数据,写出来的文件内容可能是这样的:
::
100 200
230 250
100
200
100 200
200 200
.. |image0| image:: image060_xpm.jpg
.. rubric:: Footnotes
.. [#10] XML Schema Definition
.. [#9] http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=32554