17370845950

GML(地理标记语言)是什么 GML格式入门
GML是OGC制定的地理空间数据XML编码标准,作为ISO 19136,它用结构化文本描述地理要素的位置、类型、属性及关系,核心是提供跨GIS系统的语义一致互操作,而非渲染地图。

GML(Geography Markup Language)是一种专为地理空间数据设计的XML编码标准,由开放地理空间联盟(OGC)制定,也是ISO 19136国际标准。它不是一种绘图工具或地图样式语言,而是一套用文本描述“哪里有什么、是什么、怎么连”的规则——比如把“北京市中心的一个公交站”表达为带名称、类型、坐标和所属行政区的结构化数据,让不同GIS软件能一致理解、读取和交换。

核心定位:地理数据的“通用说明书”

GML本质是XML在地理信息领域的规范化应用。它不渲染地图,也不直接显示图形,而是用可验证、可扩展的标签明确声明:

  • 一个地理对象是“要素(Feature)”,如一条道路、一座医院、一个行政边界;
  • 该要素的空间位置由“几何体(Geometry)”描述,如点(gml:Point)、线(gml:LineString)、面(gml:Polygon);
  • 所有坐标必须绑定参考系(如通过srsName="EPSG:4326"声明WGS84经纬度);
  • 非空间属性(如名称、长度、分类代码)作为要素的子元素或属性存在,语义清晰可查。

基本结构长什么样?

一个合法GML文档以XML声明开头,引入GML命名空间,并组织为FeatureCollection(要素集合)。每个地理对象封装在featureMember中,内部包含自定义要素类型(如fme:point)和标准几何表达。关键特征包括:

  • gml:posgml:posList写坐标,空格分隔(如116.4 39.9),顺序是经度+纬度(x y);
  • gml:boundedBy + gml:Envelope声明整个数据集的空间范围;
  • 支持2D/3D坐标(srsDimension="2""3"),也支持高程、时间等扩展维度;
  • 所有几何都可嵌套在属性容器中(如gml:pointProperty),体现“几何是要素的一种属性”的建模思想。

为什么选GML而不是GeoJSON或Shapefile?

它解决的是系统级互操作问题,尤其适合需要强语义、多源集成与长期归档的场景:

  • 比GeoJSON更严谨:强制声明坐标系、支持复杂拓扑(如带内环的面)、允许自定义应用模式(Application Schema);
  • 比Shapefile更开放:纯文本、无二进制依赖、天然支持Web传输与XSLT转换,不绑定特定厂商;
  • 是WFS服务的事实载体:Web要素服务(WFS)默认用GML收发查询结果,是GIS Web服务链路中的“标准信封”。

入门第一步:怎么看懂一个GML文件?

不必从头写Schema,先学会识别主干结构:

  • ——这是整个数据包的根;
  • 里的lowerCorner/upperCorner——快速获知数据落在哪片区域;
  • 逐个查看,定位其中的gml:Pointgml:LineStri

    ng
    等几何标签及其srsName
  • 注意自定义命名空间前缀(如fme:app:),它们指向业务属性定义,通常在xsi:schemaLocation里声明对应XSD。