Limbaj de marcare geografică

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Geography Markup Language ( GML ) este gramatica XML definită de Open Geospatial Consortium (OGC) pentru exprimarea obiectelor geografice. GML servește ca limbaj de modelare pentru sistemele geografice, dar și ca un format de schimb deschis pentru tranzacțiile geografice pe internet.

Standard

OGC este o organizație internațională de standardizare ai cărei membri, voluntari, mențin, printre altele, standardul GML. OGC coordonează cu organizațiile care prezintă standardele ISO / TC211 pentru a menține coerența dintre standardele sale și cele ale ISO.

GML a devenit standardul ISO 19136 în august 2007.

GML este formatul standard al infrastructurilor de date spațiale (vezi GeoWeb Arhivat la 28 februarie 2007 în Internet Archive .) Care permit dispozitivelor conectate prin internet să acceseze informații geografice , inclusiv de exemplu poziția vehiculelor și condițiile de trafic sau situațiile meteorologice etc. .

GML a fost inclus, în versiunea 1.0, în Modelul Național de Schimb de Informații din SUA.

Modelul GML

Modelul original GML s-a bazat pe Resource Description Framework (RDF), definit de World Wide Web Consortium . Ulterior, OGC a introdus Schema XML în structura GML, pentru a facilita conexiunea cu diversele baze de date geografice existente ale căror structuri relaționale sunt bine definite de XML. GML rezultat păstrează multe caracteristici ale RDF , inclusiv multe dintre tipurile de obiecte primitive din GML 3.0:

  • obiecte și geometrii;
  • sistem de coordonate de referință;
  • data si ora;
  • obiect dinamic;
  • acoperire (inclusiv imagini raster);
  • unitate de măsură;
  • stil și grafică.

Profil

Profilurile sunt restricții logice pentru GML care pot fi exprimate printr-un document, o schemă XML sau ambele. Aceste profiluri au fost definite pentru a simplifica adoptarea GML și pentru a facilita adoptarea standardului.

Aceste profiluri sunt definite de specificațiile GML, propuse pentru uz public:

  • Profilul punctului pentru aplicații cu un set de date punct, fără a fi nevoie de gramatica GML completă;
  • profilul GML Simple Features care acceptă cereri și tranzacții de obiecte vectoriale simple, de exemplu printr-un WFS ;
  • un profil pentru GMJP2 (GML în Jpeg 2000);
  • un profil GML pentru RSS.

Profilurile sunt diferite de schemele de aplicații și spațiile de nume GML ( Open GIS GML ), ele definesc un subset de date GML. Schemele de aplicații sunt vocabulare XML definite utilizând GML și care există într-un spațiu de nume definit de aplicație. Schemele de aplicații pot fi construite pe anumite profiluri sau utilizate pe întregul domeniu GML.

Profilurile sunt deseori create ca suport pentru limbile derivate din GML (vezi schemele de aplicații ) create pentru aplicații particulare precum aviația comercială, cartografia nautică, exploatarea resurselor.

Specificația GML (începând cu versiunea 3.0) conține două scripturi XSLT („instrumentele de subset”) care sunt utilizate pentru a construi profiluri GML.

Profil GML Simple Features

Profilul de caracteristici simple GML cuprinde o gamă largă de obiecte vectoriale, inclusiv:

  1. un model geometric redus care permite zero, 1 și 2 obiecte geometrice dimensionale și agregatele corespunzătoare (gml: MultiPoint, gml: MultiCurve etc.);
  2. un model de obiect care poate avea o adâncime de doar un nivel (în general modelul GML nu permite cuibărirea arbitrară a obiectelor și a proprietăților acestora);
  3. toate proprietățile non-geometrice trebuie să fie simple scheme XML - adică nu trebuie să conțină elemente imbricate;
  4. referințe la proprietăți la distanță (xlink: href), precum și în specificația GML.

Deoarece obiectivul este de a oferi o intrare simplă, profilul nu oferă suport pentru:

  • se umple
  • topologie
  • puncte de vedere
  • valori din date în timp real
  • obiecte dinamice

cu toate acestea se potrivește cu o bună varietate de probleme cartografice.

Instrument subset

Specificația GML oferă, de asemenea, un instrument de subset pentru generarea unui profil GML care conține o listă de componente specificată de utilizator. Acest instrument constă dintr-o pereche de scripturi XSLT. Scripturile generează un profil pe care dezvoltatorul îl poate dezvolta manual sau prin restricții de schemă. Rețineți că, ca limitări ale specificației GML complete, schemele pe care le poate genera un profil sunt ele însele scheme de aplicații GML valabile.

Schema aplicației

Pentru a publica date geografice pentru o aplicație cu GML, o organizație creează o schemă XML specifică aplicației (schema aplicației ). Această schemă descrie tipurile de obiecte și date pe care aplicația trebuie să le publice. De exemplu, o aplicație turistică trebuie să definească tipuri de obiecte, cum ar fi monumente, puncte de interes, muzee, ieșiri pe autostradă și puncte de vedere în schema sa de aplicare . La rândul lor, aceste tipuri de obiecte se referă la primitivele definite în GML standard.

O listă a schemelor publice de aplicații GML este în curs de compilare.

Unele alte limbi pentru geografie utilizează construcții, cum ar fi schemele de aplicații, dar GML le construiește pe schema XML existentă mai degrabă decât să creeze altele noi, o adresă întreprinsă de limbaje asemănătoare XML, cum ar fi KML- ul Google .

Geometrii GML

GML codifică geometriile GML sau caracteristicile geometrice ale obiectelor geografice ca elemente interne într-un document GML. Geometriile acestor obiecte pot descrie, de exemplu, drumuri, râuri, poduri ...

Tastele GML pentru tipurile geometrice de obiecte, în GML 1.0 și 2.0 sunt:

  • Puncte
  • LineString
  • Poligon

Observați cum aceste modele de geometrie sunt identice cu modelele de geometrie KML.

Caracteristică

GML definește caracteristica ca un obiect distinct de un obiect geometric . O caracteristică este un obiect de aplicație care reprezintă o entitate fizică, de exemplu, o clădire, un râu, o persoană. Este posibil ca o caracteristică să nu aibă nici măcar un aspect geometric. Un obiect geometric definește mai degrabă o locație sau o regiune decât o entitate fizică. Această distincție contrastează cu modelele utilizate în anumite GIS , care nu o aplică considerând caracteristica și obiectul geometric în același mod.

În GML o caracteristică poate avea diverse proprietăți geometrice care descriu aspectul și caracteristicile sale (de exemplu, punctul sau întinderea ). GML oferă, de asemenea, posibilitatea caracteristicilor de a partaja geometria utilizând referința proprietății la distanță de pe proprietatea geometrie. Proprietățile la distanță sunt o caracteristică generală a GML împrumutat de la RDF. Un atribut xlink: href pe proprietate înseamnă că valoarea proprietății se află în ținta unui link.

De exemplu, o caracteristică Clădire într-o anumită aplicație schemă GML poate avea o poziție dată de obiectul primitiv Punct , totuși clădirea este o entitate separată de punctul care definește poziția sa. Din nou, o caracteristică poate avea mai multe (sau nici una) proprietăți geometrice, de exemplu o poziție, un dreptunghi care conține (întindere), o formă.

Coordonatele

Coordonatele din GML reprezintă coordonatele obiectului geometric. Coordonatele pot fi specificate prin etichete:

  • <gml: coordonate>
  • <gml: pos>
  • <gml: posList>

GML are mai multe moduri de a reprezenta coordonatele. De exemplu, eticheta <gml: coordonate> poate fi utilizată după cum urmează:

 <gml: Point gml: id = "p21" srsName = " urn: ogc: def: crs: EPSG: 6.6: 4326 ">
   <gml: coordonate> 45,67, 88,56 </ gml: coordonate>
</ gml: Punct>

Observați cum coordonatele individuale nu sunt accesibile prin DOM XML deoarece conținutul etichetei <gml: coordonate> este un singur șir.

Pentru ca coordonatele GML să fie accesibile prin XML DOM, GML 3.0 a introdus etichetele <gml: pos> și <gml: posList> (rețineți că eticheta GML 1.0 și 2.0 <gml: coord> este acum depășită). Folosind <gml: pos> în loc de <gml: coordinates> același punct va fi exprimat ca:

 <gml: Point gml: id = "p21" srsName = " urn: ogc: def: crs: EPSG: 6.6: 4326 ">
   <gml: pos dimension = "2"> 45,67 88,56 </ gml: pos>
</ gml: Punct>

(pentru informații despre srsName vezi paragraful Sistem de coordonate de referință ) Coordonatele unei geometrii <gml: LineString> pot fi reprezentate de elementul <gml: coordinates> :

 <gml: LineString gml: id = "p21" srsName = " urn: ogc: def: crs: EPSG: 6.6: 4326 ">
   <gml: coordonate> 45,67, 88,56 55,56,89,44 </ gml: coordonate>
</ gml: LineString>

Eticheta <gml: posList> este utilizată pentru a reprezenta o listă de tupluri de coordonate, așa cum este cerut de geometriile liniare:

 <gml: LineString gml: id = "p21" srsName = " urn: ogc: def: crs: EPSG: 6.6: 4326 ">
   <gml: posList dimension = "2"> 45,67 88,56 55,56 89,44 </ gml: posList>
</ gml: LineString>

Pentru serverele GML (WFS) și instrumentele de conversie care acceptă doar GML 1 sau 2 nu există nicio alternativă la <gml: coordinates> . Pentru GML 3 sau mai mare, <gml: pos> și <gml: posList> sunt de preferat față de <gml: coordinates> .

Sistem de coordonate de referință

Un sistem de coordonate de referință (Coordinate Reference System, CRS) determină care dintre sistemele de cadre proiective a fost ales pentru a reprezenta coordonatele geometriilor fiecărui element într-un set de date GML.

Spre deosebire de KML sau GeoRSS (versiunea simplă), GML nu presupune un sistem de referință fix, unic: fiecare sistem de coordonate trebuie specificat cu un sistem de referință de coordonate . Elementele ale căror coordonate sunt interpretate cu un CRS sunt

  • <gml: coordonate>
  • <gml: pos>
  • <gml: posList>

Un atribut srsName atașat geometriei specifică CRS; de exemplu:

 <gml: Point gml: id = "p1" srsName = "# srs36">
    <gml: coordonate> 100.200 </ gml: coordonate>
</ gml: Punct>

Valoarea atributului srsName este un identificator de resurse uniform (URI); se referă la definiția sistemului de coordonate de referință utilizat pentru a interpreta coordonatele geometriei. Definiția CRS trebuie să fie conținută într-un document (un fișier plat ) sau într-un serviciu web online.

URI-ul srsName poate fi, de asemenea, un nume de resursă uniformă (URN) pentru a se referi la o definiție CRS comună. OGC a dezvoltat o structură URN și a definit URN-uri specifice pentru a codifica unele sisteme comune de referință. Un rezolvator URN returnează de la aceste URN o definiție GML pentru fiecare CRS.

Exemple

Poligoanele , punctele și obiectele LineString sunt codificate în GML 1.0 și 2.0 după cum urmează:

 <gml: Poligon>
        <gml: outerBoundaryIs>
                <gml: LinearRing>
                        <gml: coordonate> 0,0 100,0 100,100 0,100 0,0 </ gml: coordonate>
                </ gml: LinearRing>
       </ gml: externalBoundaryIs>
    </ gml: Poligon>
    <gml: Punct>
       <gml: coordonate> 100.200 </ gml: coordonate>
    </ gml: Punct>
    <gml: LineString>
       <gml: coordinates> 100.200 150.300 </ gml: coordinates>
    </ gml: LineString>

Observați cum Șir de linii de obiecte, precum și LinearRings, sunt interpolări liniare între punctele specificate.

Caracteristici folosind geometrii

Următorul exemplu ilustrează distincția dintre caracteristică și obiect geometric . Caracteristica Clădire are mai multe obiecte geometrice și împarte unul dintre ele, Punctul cu identificatorul p21 cu caracteristica Monument

 <abc: Edificio gml: id = "TorreMilizie">
    <gml: name> Turnul Miliției </ gml: name>
    <abc: height> 52 </ abc: height>
    <abc: position>
        <gml: Punct>
            <gml: coordonate> 100.200 </ gml: coordonate>
        </ gml: Punct>
    </ abc: position>
    <app: extend>
        <gml: Poligon>
            <gml: exterior>
                <gml: LinearRing>
                    <gml: coordonate> 100.200 </ gml: coordonate>
                </ gml: LinearRing>
            </ gml: exterior>
        </ gml: Poligon>
    </ app: întindere>
</ abc: Clădire>
<abc: Edificio gml: id = "TorreMilizie">
    <abc: position xlink: type = "Simple" xlink: href = "# p21" />
</ abc: Clădire>
<abc: Monument gml: id = "g234">
    <abc: position>
        <gml: Point gml: id = "p21">
            <gml: coordonate> 100.200 </ gml: coordonate>
        </ gml: Punct>
    </ abc: position>
</ abc: Monument>

Rețineți că referința este către Punctul Partajat și nu spre Monument , deoarece fiecare caracteristică poate avea mai multe proprietăți de obiect geometric .

Profil punct

Profilul punct GML conține o singură geometrie GML, nominal un tip de obiect <gml: Punct> . Orice schemă XML poate utiliza profilul importându-l și făcând referire la instanța <gml: Point> :

 <PhotoCollection xmlns = " http://www.myphotos.org Arhivat 25 noiembrie 2009 la Internet Archive ." xmlns: gml = " http://www.opengis.net/gml "    
     xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " 
     xsi: schemaLocation = " https://web.archive.org/web/20091125092959/http://www.myphotos.org/
     MyGoodPhotos.xsd ">
    <elemente>
        <Item>
            <name> Lynn Valley </name>
            <description> O fotografie a căderilor de pe podul suspendat </description>
            <unde> North Vancouver </where>
            <poziție>
                <gml: Point srsDimension = "2" srsName = " urn: ogc: def: crs: EPSG: 6.6: 4326 ">
                       <gml: pos> 49,40 -123,26 </ gml: pos>
                 </ gml: Punct>
             </position>
        </Item>
    </items>
</PhotoCollection>

Rețineți că atunci când utilizați profilul punct , singura geometrie utilizată este <gml: punct> . Restul geografiei este definit de schema de colectare a fotografiilor.

Elemente conexe

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT