Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Geography Markup Language
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==GML model== GML contains a rich set of [[Geometric primitive|primitives]] which are used to build application specific schemas or application languages. These primitives include: * [[#Features|Feature]] * Geometry * [[#Coordinate reference system|Coordinate reference system]] * [[Geospatial topology|Topology]] * Time * Dynamic feature * Coverage (including geographic images) * Unit of measure * Directions * Observations * Map presentation styling rules The original GML model was based on the [[World Wide Web Consortium]]'s [[Resource Description Framework]] (RDF). Subsequently, the OGC introduced [[XML Schema (W3C)|XML schema]]s into GML's structure to help connect the various existing geographic databases, whose relational structure XML schemas more easily defined. The resulting XML-schema-based GML retains many features of RDF, including the idea of child elements as properties of the parent object (RDFS) and the use of remote property references. ===Profile=== '''GML profiles''' are logical restrictions to GML, and may be expressed by a document, an [[XML Schema (W3C)|XML schema]] or both. These profiles are intended to simplify adoption of GML, to facilitate rapid adoption of the standard. The following ''profiles'', as defined by the GML specification, have been published or proposed for public use: * A ''[[#Point Profile|Point Profile]]'' for applications with point geometric data but without the need for the full GML grammar; * A ''[[#GML Simple Features Profile|GML Simple Features profile]]'' supporting vector feature requests and transactions, e.g. with a [[Web Feature Service|WFS]]; * A GML profile for [[Jpeg2000#GML JP2 georeferencing|GMLJP2]] (GML in JPEG 2000); * A GML profile for [[RSS]]. ''Profiles'' are distinct from [[#Application schema|application schemas]]. ''Profiles'' are part of GML [[namespace]]s (Open GIS GML) and define restricted subsets of GML. Application schemas are XML vocabularies defined using GML and which live in an application-defined target namespace. Application schemas can be built on specific GML profiles or use the full GML schema set. Profiles are often created in support for GML derived languages (see [[#Application schema|application schemas]]) created in support of particular application domains such as commercial aviation, nautical charting or resource exploitation. The GML Specification (Since GML v3.) contains a pair of [[XSLT]] scripts (usually referred to as the "subset tool") that can be used to construct GML profiles. ====GML Simple Features Profile==== The ''GML Simple Features Profile'' is a more complete profile of GML than the above ''Point Profile'' and supports a wide range of vector feature objects, including the following: # A reduced geometry model allowing 0d, 1d and 2d linear geometric objects (all based on linear interpolation) and the corresponding aggregate geometries (gml:MultiPoint, gml:MultiCurve, etc.). # A simplified feature model which can only be one level deep (in the general GML model, arbitrary nesting of features and feature properties is not permitted). # All non-geometric properties must be XML Schema simple types β i.e. cannot contain nested elements. # Remote property value references (xlink:href) just like in the main GML specification. Since the profile aims to provide a simple entry point, it does not provide support for the following: * coverages * topology * observations * value objects (for real time sensor data) * dynamic features Nonetheless it supports a good variety of real world problems. ====Subset tool==== In addition, the GML specification provides a ''subset tool'' to generate GML profiles containing a user-specified list of components. The tool consists of three XSLT scripts. The scripts generate a profile that a developer may extend manually or otherwise enhance through schema restriction. As restrictions of the full GML specification, application schemas that a profile can generate must themselves be valid GML application schemas. The subset tool can generate profiles for many other reasons as well. Listing the elements and attributes to include in the resultant profile schema and running the tool results in a single profile schema file containing only the user-specified items and all of the element, attribute and type declarations on which the specified items depend. Some Profile schemas created in this manner support other specifications including [[IHO]] [[IHO#Publications|S-57]] and GML in JPEG 2000. ===Application schema=== In order to expose an application's geographic data with GML, a community or organization creates an XML schema specific to the application domain of interest (the ''application schema''). This schema describes the object types whose data the community is interested in and which community applications must expose. For example, an application for tourism may define object types including monuments, places of interest, museums, road exits, and viewpoints in its ''application schema''. Those object types in turn reference the primitive object types defined in the GML standard. Some other markup languages for geography use schema constructs, but GML builds on the existing XML schema model instead of creating a new schema language. Application [[XML schema|schemas]] are normally designed using [[ISO 19103]] (Geographic information β Conceptual schema language)<ref>{{Cite web|url=http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=56734|title = Iso 19103:2015}}</ref> conformant [[Unified Modeling Language|UML]], and then the GML Application created by following the rules given in Annex E of [[ISO 19136]]. ====List of public GML Application Schemas==== Following is a list of known, publicly accessible GML Application Schemas: * [[AIXM]] Aeronautical Information eXchange Model ( see [https://web.archive.org/web/20070316222918/http://www.aixm.aero/public/subsite_homepage/homepage.html http://aixm.aero] β Commercial Aviation Related Schema) * [http://code.google.com/p/caaml/ CAAML] β Canadian Avalanche Association Markup Language * [[CityGML]] β a common information model and GML application schema for virtual 3D city / regional models.<ref>{{Cite web |url=http://www.citygml.org/ |title=CityGML homepage |access-date=2018-06-18 |archive-date=2013-02-01 |archive-url=https://web.archive.org/web/20130201051154/http://www.citygml.org/ |url-status=dead }}</ref> * [[Coverage data|Coverages]] β an interoperable, encoding-neutral information model for the digital representation of spatio-temporally varying phenomena (such as sensor, image, model, and statistics data), based on the abstract model of [[ISO 19123]] * Climate Science Modelling Language (CSML)<ref>{{Cite web |url=http://ndg.badc.rl.ac.uk/csml/ |title=Climate Science Modelling Language - CSML |access-date=2018-06-18 |archive-date=2015-06-13 |archive-url=https://web.archive.org/web/20150613004953/http://ndg.badc.rl.ac.uk/csml/ |url-status=dead }}</ref> * Darwin Core GML application schema. An implementation of the [[Darwin Core]] schema in GML for sharing [[biodiversity]] occurrence data. * [[GeoSciML]] β from [http://www.cgi-iugs.org/ IUGS Commission for Geoscience Information] * GPML β the [[GPlates]] Markup Language, an information model and application schema for plate-tectonics<ref>{{Cite web|url=http://www.earthbyte.org/Resources/GPGIM/|title = GPlates Geological Information Model : Resource Page}}</ref> * [https://www.ogc.org/standards/infragml InfraGML] - a GML implementation initiated 2012,<ref>{{Cite web|url=https://www.ogc.org/news/|title=News}}</ref> reflecting the then missing update of [http://www.landxml.org/ LandXML] * [[INSPIRE]] application schemas<ref>{{Cite web|url=https://inspire.ec.europa.eu/schemas/|title=Index of /schemas|website=inspire.ec.europa.eu}}</ref> * [[IWXXM]] β Aviation weather GML application schema * NcML/GML β NetCDF-GML<ref>{{cite web |url=http://www.unidata.ucar.edu/projects/THREDDS/GALEON/TestDatasets/NcMLAndGML.htm |title=NetCDF in XML |access-date=2007-04-10 |url-status=dead |archive-url=https://web.archive.org/web/20100323080506/http://www.unidata.ucar.edu/projects/THREDDS/GALEON/TestDatasets/NcMLAndGML.htm |archive-date=2010-03-23 }}</ref> * [[Observations and Measurements]] schema for observation metadata and results * OS MasterMap GML<ref>{{cite web |url=http://www.ordnancesurvey.co.uk/oswebsite/products/os-mastermap/gml-explained.html |title=OS MasterMap β GML (Geography Mark-up Language) explained |access-date=2011-10-12 |url-status=dead |archive-url=https://archive.today/20130505034142/http://www.ordnancesurvey.co.uk/oswebsite/products/os-mastermap/gml-explained.html |archive-date=2013-05-05 }}</ref> * [[SensorML]] schema for describing instruments and processing chains * [[Soterml|SoTerML]] schema for describing Soil and Terrain data * TigerGML β US Census<ref>{{Cite web|url=http://www.ogcnetwork.net/node/220|title = The Home of Location Technology Innovation and Collaboration | OGC}}</ref> * [https://www.seegrid.csiro.au/twiki/bin/view/NRInfo/WaterQualityDataPublishing Water Quality Data Project] {{Webarchive|url=https://web.archive.org/web/20080721161945/https://www.seegrid.csiro.au/twiki/bin/view/NRInfo/WaterQualityDataPublishing |date=2008-07-21 }} from Dept. of Natural Resources, New South Wales * [[WXXM (data model)|WXXM]] β Weather Information Exchange Model * [http://www.indoorgml.net/ IndoorGML] β an OGC standard for an open data model and XML schema for indoor spatial information. ===GML and KML=== [[Keyhole Markup Language|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 render GML content, and GML content can be βstyledβ using KML for the purposes of presentation. KML is first and foremost a 3D portrayal transport, not a data exchange transport. As a result of this significant difference in purpose, encoding GML content for portrayal using KML results in significant and unrecoverable loss of structure and identity in the resulting KML. Over 90% of GML's structures (such as, to name a few, metadata, [[coordinate reference system]]s, horizontal and vertical datums, geometric integrity of circles, ellipses, arcs, etc.) cannot be transformed to KML without loss or non-standard encoding. Similarly, due to KML's design as a portrayal transport, encoding KML content in GML will result in significant loss of KML portrayal structures such as regions, level of detail rules, viewing and animation information, as well as styling information and multiscale representation. The ability to portray placemarks at multiple levels of details distinguishes KML from GML, since portrayal is outside the scope of GML.<ref>{{Cite web|url=https://developers.google.com/kml/documentation/kmlreference|title=KML Reference | Keyhole Markup Language|website=Google Developers}}</ref> ===GML geometries=== GML encodes the ''GML geometries'', or ''geometric characteristics'', of geographic objects as elements within GML documents according to the "vector" model. The geometries of those objects may describe, for example, roads, rivers, and bridges. The key GML geometry object types in GML 1.0 and GML 2.0, are the following: * Point * LineString * Polygon GML 3.0 and higher also includes structures to describe "coverage" information, the "raster" model, such as gathered via remote sensors and images, including most satellite data. ===Features=== GML defines ''features'' distinct from ''geometry objects''. A ''feature'' is an application object that represents a physical entity, e.g. a building, a river, or a person. A ''feature'' may or may not have geometric aspects. A ''geometry object'' defines a location or region instead of a physical entity, and hence is different from a ''feature''. In GML, a ''feature'' can have various geometry properties that describe geometric aspects or characteristics of the feature (e.g. the feature's ''Point'' or ''Extent'' properties). GML also provides the ability for ''features'' to share a geometry property with one another by using a ''remote property reference'' on the shared geometry property. Remote properties are a general feature of GML borrowed from RDF. An ''xlink:href'' attribute on a GML geometry property means that the value of the property is the resource referenced in the link. For example, a ''Building'' feature in a particular GML application schema might have a position given by the primitive GML geometry object type ''Point''. However, the ''Building'' is a separate entity from the ''Point'' that defines its position. In addition, a ''feature'' may have several geometry properties (or none at all), for example an ''extent'' and a ''position''. ===Coordinates=== ''Coordinates'' in GML represent the coordinates of ''geometry objects''. Coordinates can be specified by any of the following GML elements: <syntaxhighlight lang="xml"> <gml:coordinates> <gml:pos> <gml:posList> </syntaxhighlight> GML has multiple ways to represent coordinates. For example, the <code><gml:coordinates></code> element can be used, as follows: <syntaxhighlight lang="xml"> <gml:Point gml:id="p21" srsName="http://www.opengis.net/def/crs/EPSG/0/4326"> <gml:coordinates>45.67, 88.56</gml:coordinates> </gml:Point> </syntaxhighlight> When expressed as above, the individual coordinates (e.g. ''88.56'') are not separately accessible through the [[XML]] [[Document Object Model]] since the content of the <code><gml:coordinates></code> element is just a single string. To make GML coordinates accessible through the XML DOM, GML 3.0 introduced the <code><gml:pos></code> and <code><gml:posList></code> elements. (Although GML versions 1 and 2 had the <code><gml:coord></code> element, it is treated as a defect and is not used.) Using the <code><gml:pos></code> element instead of the <code><gml:coordinates></code> element, the same point can be represented as follows: <syntaxhighlight lang="xml"> <gml:Point gml:id="p21" srsName="http://www.opengis.net/def/crs/EPSG/0/4326"> <gml:pos srsDimension="2">45.67 88.56</gml:pos> </gml:Point> </syntaxhighlight> The coordinates of a <code><gml:LineString></code> geometry object can be represented with the <code><gml:coordinates></code> element: <syntaxhighlight lang="xml"> <gml:LineString gml:id="p21" srsName="http://www.opengis.net/def/crs/EPSG/0/4326"> <gml:coordinates>45.67, 88.56 55.56,89.44</gml:coordinates> </gml:LineString > </syntaxhighlight> The <code><gml:posList></code> element is used to represent a list of coordinate tuples, as required for linear geometries: <syntaxhighlight lang="xml"> <gml:LineString gml:id="p21" srsName="http://www.opengis.net/def/crs/EPSG/0/4326"> <gml:posList srsDimension="2">45.67 88.56 55.56 89.44</gml:posList> </gml:LineString > </syntaxhighlight> For GML data servers ([[Web Feature Service|WFS]]) and conversion tools that only support GML 1 or GML 2 (i.e. only the <code><gml:coordinates></code> element), there is no alternative to <code><gml:coordinates></code>. For GML 3 documents and later, however, <code><gml:pos></code> and <code><gml:posList></code> are preferable to <code><gml:coordinates></code>. ===Coordinate reference system=== {{main|coordinate reference system}} A '''coordinate reference system''' (CRS) determines the geometry of each geometry element in a GML document. Unlike [[Keyhole Markup Language|KML]] or [[GeoRSS]], GML does not default to a coordinate system when none is provided. Instead, the desired coordinate system must be specified explicitly with a CRS. The elements whose coordinates are interpreted with respect to such a CRS include the following: * {{code|<gml:coordinates>}} * {{code|<gml:pos>}} * {{code|<gml:posList>}} An ''srsName'' attribute attached to a geometry object specifies the object's CRS, as shown in the following example: <syntaxhighlight lang="xml"> <gml:Point gml:id="p1" srsName="#srs36"> <gml:coordinates>100,200</gml:coordinates> </gml:Point> </syntaxhighlight> The value of the ''srsName'' attribute is a [[Uniform Resource Identifier]] (URI). It refers to a definition of the CRS that is used to interpret the coordinates in the geometry. The CRS definition may be in a document (i.e. a ''flat file'') or in an online web service. Values of EPSG codes can be resolved by using the [[EPSG Geodetic Parameter Dataset]] registry operated by the Oil and Gas Producers Association at [http://www.epsg-registry.org ] {{Webarchive|url=https://web.archive.org/web/20200809231738/http://www.epsg-registry.org/ |date=2020-08-09 }}. The ''srsName'' URI may also be a [[Uniform Resource Name]] (URN) for referencing a common CRS definition. The OGC has developed a URN structure and a set specific URNs to encode some common CRS. A URN resolver resolves those URNs to GML CRS definitions.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)