📜 ⬆️ ⬇️

Geospatial data

Due to the fact that the W3C has published dictionaries and ontologies of geospatial data, I want to dwell on this in more detail.


GML for starters


Geography Markup Language (GML) is an XML dictionary defined by the Open Geospatial Consortium (OGC) for describing geographic data. One of the main features is integration with other XML dictionaries.

Standards


')
The OGC World Volunteer Organization has organized the GML specification. During the development of GML, ISO TC 211 was created to link ISO and OGC standardization work. GML is now expected to be released as a worldwide standard (within ISO 19136).

GML is an XML data dictionary for GeoWeb infrastructure, giving devices connected to the Internet access to geographic information, such as traffic conditions or bank addresses.

GML model



Initially, GML was based on RDF, but later XML Schema was provided to simplify the integration and transfer of various geographic data into GML. The implementation of the XML schema allowed us to create a more perfect and powerful structure of the language itself.

GML has a set of primitives that is used to create schemas, this set includes:



Profiles



Profiles in GML are clear rules for the expression of a document, mainly used to "adopt" GML in other languages, such as RSS.

These profiles are included in the specification and offered for public use.


The specification suggests the possibility of building user profiles to use the necessary GML parameters.


Application scheme



GML has an interesting feature. Sphere of Interest. For example, an application for tourism will receive data on tourist sites (mountains, roads, hotels, attractions, etc.) and will not receive, for example, business data.


KML



KML, made popular by Google, is an addition to GML. GML only describes geographic data, while KML is responsible for displaying it, so KML can carry GML data. However, GML display properties can be configured without KML.


Geometry



Geometry in GML has these types of data.



Geometrically, GML and RML are identical.


GeoRSS


The list of ontologies GeoOWL includes an interesting (although IMHO useless) format GeoRSS is a way to transfer geo-data to RSS (more precisely, the format is intended for Atom 1.0, RSS 2.0, RSS 1.0, but it can be used in other non-RSS XML formats). The language has two options GeoRSS-Simple and GeoRSS-GML.

They differ in recording forms. GeoRSS-GML simply adds GML to RSS, and Sipmle has its own simplified form of recording.

for example

Simple
 <georss: point> 45.256 -71.92 </ georss: point> 



GML
 <georss: where>
    <gml: Point>
       <gml: pos> 45.256 -71.92 </ gml: pos>

    </ gml: Point>
 </ georss: where> 



An example of the finished document GeoRSS


Simple (Atom)
 <feed xmlns = "http://www.w3.org/2005/Atom"
 xmlns: georss = "http://www.georss.org/georss">
 <title> scribble </ title>
 <id> http://example.com/atom </ id>
 <author> <name> Christopher Schmidt </ name> </ author>

 <entry>
 <id> http://example.com/19.atom </ id>
 <link href = "http://example.com/19.html" />
 <title> Feature # 19 </ title>
 <content type = "html"> Some content. </ content>
 <georss: line>
 23.1811523438 -159.609375 
 22.5 -161.564941406 
 20.654296875 -160.422363281 
 18.4350585938 -156.247558594 
 18.3471679688 -154.731445312 
 19.951171875 -153.588867188 
 21.8188476562 -155.983886719
 23.02734375 -158.994140625
 23.0932617188 -159.631347656
 </ georss: line>
 </ entry>
 </ feed> 



GML RSS (time reference)
  <item>
  <title> FLIGHT 1003 </ title>
  <link> http: // flightdata / ... </ link>
  <description> FLIGHT 1003 to BOS </ description>
  <guid isPermaLink = "false"> dl1003 </ guid>
  <pubDate> Wed, 06 Jun 2007 18:53:36 GMT </ pubDate>
  <gml: TimePeriod>
   <gml: relatedTime>
    <gml: TimePeriod gml: id = "time-0A05000263007CS.0.0.TKF">
     <gml: beginPosition> 2006-06-16T07: 45: 00.000Z </ gml: beginPosition>
     <gml: endPosition> 2006-06-16T07: 45: 00.000Z </ gml: endPosition>
    </ gml: TimePeriod>
   </ gml: relatedTime>
   <gml: relatedTime>
    <gml: TimePeriod gml: id = "time-0A05000263007CS.0.1.ORB">
     <gml: beginPosition> 2006-06-16T08: 00: 00.000Z </ gml: beginPosition>
     <gml: endPosition> 2006-06-16T09: 00: 00.000Z </ gml: endPosition>
    </ gml: TimePeriod>
   </ gml: relatedTime>
   <gml: relatedTime>
    <gml: TimePeriod gml: id = "time-0A05000263007CS.0.2.LND">
     <gml: beginPosition> 2006-06-16T09: 13: 00.000Z </ gml: beginPosition>
     <gml: endPosition> 2006-06-16T09: 13: 00.000Z </ gml: endPosition>
    </ gml: TimePeriod>
   </ gml: relatedTime>
   <gml: beginPosition> 2006-06-16T07: 45: 00.000Z </ gml: beginPosition>
   <gml: endPosition> 2006-06-16T09: 13: 00.000Z </ gml: endPosition>
  </ gml: TimePeriod>
  <georss: where>
   <gml: LineString>
    <gml: pointProperty>
     <gml: Point gml: id = "point-0A05000263007CS.0.0.TKF">
      <gml: pos srsName = "WGS84 (DD)"> 36.235 -115.03333333333333 </ gml: pos>
     </ gml: Point>
    </ gml: pointProperty>
    <gml: pointProperty>
     <gml: Point gml: id = "point-0A05000263007CS.0.1.ORB">
      <gml: pos srsName = "WGS84 (DD)"> 37.65356495497155-114.5048399056895 </ gml: pos>
     </ gml: Point>
    </ gml: pointProperty>
    <gml: pointProperty>
     <gml: Point gml: id = "point-0A05000263007CS.0.2.LND">
      <gml: pos srsName = "WGS84 (DD)"> 36.235 -115.03333333333333 </ gml: pos>
     </ gml: Point>
    </ gml: pointProperty>
   </ gml: LineString>
  </ georss: where>
 </ item> 

Source: https://habr.com/ru/post/16026/


All Articles