Geography Markup Language (GML)


Geography Markup Language (GML) is an XML application that provides a specialized vocabulary for working with geographic data. The main purpose of GML is to provide a standard means for representing information about geospatial Features—their properties, interrelationships, and so on. Features describe real world entities and are the fundamental objects used in GML. Features can be concrete and tangible, such as roads and buildings, or abstract and conceptual, such as political boundaries and distributions of quantities over geographical areas (coverages).

Additional Information


OpenGIS® Geography Markup Language (GML) Encoding Standard

OpenGIS® City Geography Markup Language (CityGML) Encoding Standard

OpenGIS® GML in JPEG 2000 for Geographic Imagery Encoding Standard

Related Information

Web Feature Service (WFS)


Web Processing Service (WPS)



The Geography Markup Language standards were developed and are maintained by the Open Geospatial Consortium (OGC). The key GML concepts are drawn from the ISO 19100 series of International Standards and the OpenGIS® Abstract Specification. ISO 19136: 2007, Geographic Information – Geographic Markup Language (GML)*, was prepared by ISO/TC 211 jointly with the OGC.

Additional Information: Geography Markup Language (GML)

GML Grammar



JPEG 2000

GML Grammar

Geography Markup Language (GML) is an XML grammar for expressing geographical Features. GML serves as a modelling language for geographic systems, as well as an open interchange format for geographic transactions on the Internet.

As with most XML-based grammars, there are two parts to the grammar – the ‘schema’ that describes the document and the ‘instance document’ that contains the actual data. A GML document is described by a GML application schema that allows developers to define Features that have properties with values of types such as point, line and polygon. The developers of GML envisioned information communities who would define community-specific GML application schemas. If everyone in a community agrees to use the same schemas they can exchange data easily, with no loss or misinterpretation of meaning. Using these GML application schemas, users can also share the definitions established by the community and exchange instances of the defined geographic Features. Clients and servers with interfaces that implement the OGC® Web Feature Service interface standard can read and write GML data. GML is also an ISO standard (ISO 19136:2007), and has been used in the development of the North American Profile of ISO 19115:2003 — Geographic Information — Metadata (NAP — Metadata) (available from CGSB).

GML Features are described in terms of their properties, which can include spatial (geometric or topological), temporal or other characteristics of the Feature. Note that the concept of Feature in GML is a very general one and includes not only conventional “vector” or discrete objects, but also coverages and sensor data.

GML can describe the location, shape and extent of geographic objects as well as properties such as colour, speed and density, some of which may depend on time. One could describe a natural disaster, such as a flood as a dynamic Feature in GML, whose properties such as extent, water temperature, and expansion rate are all recorded at various times in some time interval. As it is impossible to describe all Features and predict their usage a priori, the GML Core Schemas do not contain definitions of concrete Features. Rather, concrete Features are defined in GML application schemas, which are created by users.

While GML is human-readable, GML will usually be automatically generated (except in the simplest cases) by specialized software tools or web-based services such as the Web Feature Service (WFS). For example, a user might request all of the Features that lie within Garibaldi Provincial Park. A WFS would then return the results as a GML dataset. If the user desired a map-based representation, the GML could be transformed into Scalable Vector Graphics (SVG), a language for describing two-dimensional graphics in XML.

GML enables a developer or user to leverage the whole world of XML technologies. In particular, GML builds on XML, XML Schema, XLink, and XPointer. GML data can also be easily mixed with non-spatial data. By providing an open, standard, meta-language for geospatial constructs, information can be semantically shared across various domains like forestry, transportation and navigation, tourism, geology and telecommunications. 


KML, made popular by Google, complements GML. Whereas GML is a language to encode geographic content for any application, by describing a spectrum of application objects and their properties (e.g. bridges, roads, buoys, vehicles, etc.), KML is a language for the visualization of geographic information tailored for Google Earth. KML can be used to carry GML content, and GML can be transformed to KML for the purposes of presentation. KML instances may be fully transformed to GML; however, roughly 90% of GML's structures (such as, to name a few, metadata, coordinate reference systems, horizontal and vertical datums, etc.) cannot be represented in KML.


CityGML is a common information model (a GML application schema) for the representation, storage and exchange of virtual 3D city and landscape models. It defines the classes and relations for the most relevant topographic objects in cities and regional models with respect to their geometrical, topological, semantical and appearance properties. Included are generalization hierarchies between thematic classes, aggregations, relations between objects, and spatial properties. This thematic information goes beyond graphic exchange formats and makes it possible to employ virtual 3D city models for sophisticated analysis tasks in different application domains like simulations, urban data mining, facility management, and thematic inquiries.

CityGML models both complex and geo-referenced 3D vector data, along with the semantics associated with the data. In contrast to other 3D vector formats, CityGML is based on a rich, general-purpose information model in addition to geometry and appearance information. For specific domain areas, CityGML also provides an extension mechanism to enrich the data with identifiable Featuresunder preservation of semantic interoperability.

The OGC® City Geography Markup Language (CityGML) Encoding Standard is realized as an open data model and XML-based format for the storage and exchange of virtual 3D city models. It is implemented as an application schema for GML3, the extendible international standard for spatial data exchange.

JPEG 2000

The primary role of GML in relation to JPEG 2000 is to provide an XML encoding of the metadata necessary to make the JPEG document a geo-referenced or geographic image. This is accomplished by providing, in GML, the description of the image geometry and radiometry. It specifies a minimally required GML definition for geo-referencing images, and can be used for the additional encoding of coverage metadata, geographic Features, annotations, annotation and Feature styling, and supporting components for coordinate reference systems and units of measure definitions. The GMLJP2 standard treats the case of packaging for both a single geographic image and multiple geographic images.

*             © ISO – All rights reserved