如何在XML中表示地理坐标,GML规范是怎么做的?

GML是OGC制定的基于XML的地理空间标记语言,用gml:Point、gml:pos等元素规范表达点、线、面等几何对象及其坐标,支持EPSG参考系、多维坐标与拓扑关系,实现地理要素语义、位置与结构的统一描述。

XML本身不定义地理坐标格式,需要靠专门的地理空间标记语言来规范表达。GML(Geography Markup Language)就是OGC制定的标准,它用XML语法描述地理要素及其坐标,核心是把坐标当作几何对象的属性来处理。

坐标用gml:Point和gml:coordinates表示

GML中点坐标最常用元素,内部嵌套(旧版)或(新版)。例如:


  116.4 39.9

这里srsName声明坐标系(如WGS84),里空格分隔经度、纬度(注意顺序:x y,即 lon lat)。

支持多种坐标系和维度

GML明确区分参考系,可通过srsName引用EPSG编码,也可用srsDimension指定维数:

  • 2D:经度+纬度(srsDimension="2"
  • 3D:加上海拔(srsDimension="3",如116.4 39.9 50.2
  • 支持自定义投影,通过完整定义

不只是点,还支持线、面等复杂几何

GML把所有几何类型都建模为标准元素:

  • 含多个,按顺序连成折线
  • 定义外环,定义内环(如岛屿中的湖)
  • 所有坐标值统一用(空格/逗号分隔)表达,保持语法一致

GML是可扩展的地理数据交换框架

它不只是存坐标,而是把地理要素(如“一条道路”“一个行政区”)作为对象,绑定属性、几何、拓扑关系。例如:


  
    
      长安街
      
        
          116.4 39.9
          116.42 39.91
        

      

    

  

这种结构让GIS系统能可靠解析位置、语义和关系,是Web地图服务(WMS/WFS)背后常用的数据格式。

基本上就这些。GML的重点不是发明新语法,而是用XML的严谨性把地理信息的含义、坐标、参考系全部显式表达出来,方便机器理解和互操作。