Geographic Markup Language (GML) este o gramatică XML definită de Open Geospatial Consortium (OGC) pentru a exprima trăsăturile geografice. GML servește ca limbaj de modelare pentru sistemele geografice, precum și ca un format de schimb deschis pentru tranzacțiile geografice de pe internet. Cheia utilității GML este capacitatea sa de a integra toate formele de informații geografice, inclusiv nu numai obiecte „vectoriale” sau obiecte discrete convenționale, ci și acoperiri (vezi și ) și date ale senzorilor.

Modelul GML GML conține un set bogat de primitive care sunt utilizate pentru a construi scheme specifice sau limbaje ale aplicației. Aceste primitive includ:

Caracteristică Geometrie Sistem de coordonate de referință Topologie Timp Caracteristică dinamică Acoperire (inclusiv imagini geografice) Unitate de măsură Directii Observații Regulile de stil pentru prezentarea hărții

Modelul original GML s-a bazat pe World Wide Web Consortium-ul Resource Description Framework (RDF). Ulterior, OGC a introdus scheme XML în structura GML pentru a ajuta la conectarea diferitelor baze de date geografice existente, a căror structură relațională schemele XML mai ușor de definit. GML rezultat bazat pe schemă XML păstrează multe caracteristici ale RDF, inclusiv ideea elementelor copil ca proprietăți ale obiectului părinte (RDFS) și utilizarea referințelor la proprietăți la distanță.

Profil Profilurile GML sunt restricții logice pentru GML și pot fi exprimate printr-un document, o schemă XML sau ambele. Aceste profiluri sunt menite să simplifice adoptarea GML, pentru a facilita adoptarea rapidă a standardului. Următoarele profiluri, definite de specificația GML, au fost publicate sau propuse pentru uz public:

Un profil punctat pentru aplicații cu date geometrice punctiforme, dar fără a fi nevoie de o gramatică GML completă; Un profil GML cu caracteristici simple care acceptă tranzacții și cereri de caracteristici vectoriale, de exemplu cu un WFS; Un profil GML pentru (GML în JPEG 2000); Un profil GML pentru RSS.

Rețineți că profilurile sunt distincte de schemele pentru aplicații. Profilurile fac parte din spațiile de nume GML (Open GIS GML) și definesc subseturi restrânse de GML. Schemele de aplicații sunt vocabulare XML definite utilizând GML și care trăiesc într-un spațiu de nume țintă definit de aplicație. Schemele de aplicații pot fi construite pe anumite profiluri GML sau pot utiliza setul complet de scheme GML.

Profilurile sunt adesea create în sprijinul limbajelor derivate GML create în sprijinul anumitor domenii ale aplicației, cum ar fi aviația comercială, cartografierea nautică sau exploatarea resurselor.

Specificația GML (Deoarece GML v3.) Conține o pereche de scripturi (denumite de obicei „instrumentul de subset”) care pot fi utilizate pentru a construi profiluri GML.

Profil de caracteristici simple GML Profilul de caracteristici simple GML este un profil mai complet al GML decât profilul de punct de mai sus și acceptă o gamă largă de obiecte de caracteristici vectoriale, inclusiv următoarele:

Un model cu geometrie redusă care permite 0d, 1d și 2d obiecte geometrice liniare (toate bazate pe interpolare liniară) și geometriile agregate corespunzătoare (gml: MultiPoint, gml: MultiCurve etc). Un model de caracteristică simplificat care poate avea o adâncime de un singur nivel (în modelul general GML, nu este permisă cuibarea arbitrară a caracteristicilor și a proprietăților caracteristicii). Toate proprietățile non-geometrice trebuie să fie tipuri simple de schemă XML - adică nu pot conține elemente imbrăcate. Referințe la valoarea proprietății la distanță (xlink: href) la fel ca în specificația principală GML.

Deoarece profilul își propune să ofere un punct de intrare simplu, nu oferă suport pentru următoarele:

acoperiri topologie observații obiecte de valoare (pentru datele senzorului în timp real) caracteristici dinamice

Cu toate acestea, susține o bună varietate de probleme din lumea reală.

Instrument subset În plus, specificația GML oferă un instrument de subset pentru a genera profiluri GML care conțin o listă de componente specificată de utilizator. Instrumentul este format din trei scripturi XSLT. Scripturile generează un profil pe care un dezvoltator îl poate extinde manual sau îmbunătăți altfel prin restricționarea schemei. Rețineți că, ca restricții ale specificației GML complete, schemele de aplicații pe care le poate genera un profil trebuie să fie ele însele scheme de aplicații GML valabile.

Instrumentul de subset poate genera profile și din multe alte motive. Listarea elementelor și atributelor de inclus în schema de profil rezultată și rularea instrumentului rezultă într-un singur fișier de schemă de profil care conține doar elementele specificate de utilizator și toate declarațiile de element, atribut și tip de care depind articolele specificate. Unele scheme de profil create în acest mod acceptă alte specificații, inclusiv IHO S-57 și GML în JPEG 2000.

Schema aplicației Pentru a expune datele geografice ale unei aplicații cu GML, o comunitate sau o organizație creează o schemă XML specifică domeniului de interes al aplicației (schema aplicației). Această schemă descrie tipurile de obiecte ale căror date sunt interesate de comunitate și ce aplicații comunitare trebuie să expună. De exemplu, o aplicație pentru turism poate defini tipuri de obiecte, inclusiv monumente, locuri de interes, muzee, ieșiri rutiere și puncte de vedere în schema sa de aplicații . Aceste tipuri de obiecte la rândul lor fac referire la tipurile de obiecte primitive definite în standardul GML.

Unele alte limbaje de markup pentru geografie folosesc structuri de schemă, dar GML se bazează pe modelul de schemă XML existent în loc să creeze un nou limbaj de schemă. Schemele de aplicații sunt proiectate în mod normal utilizând (Informații geografice - Limbaj de schemă conceptuală) conform UML, apoi aplicația GML creată urmând regulile date în anexa E la ISO 19136.

Lista schemelor publice de aplicații GML Urmează o listă a schemelor de aplicații GML cunoscute, accesibile publicului:

Aeronautical Information eXchange Model (a se vedea http://aixm.aero - Schema conexă aviației comerciale) CAAML - Canadian Avalanche Association Markup Language CityGML - un model comun de informații și o schemă de aplicații GML pentru modele virtuale 3D de oraș/regional. Acoperiri - un model de informație interoperabil, neutru de codare, pentru reprezentarea digitală a fenomenelor spațio-variabile (cum ar fi senzorii, imaginea, modelul și datele statistice), bazat pe modelul abstract al Limbajul de modelare a științelor climatice (CSML) Schema aplicației Darwin Core GML. O implementare a schemei în GML pentru schimbul de date privind apariția biodiversității . - de la IUGS Commission for Geoscience Information GPML - limbajul de marcare , un model de informații și o schemă de aplicații pentru placa-tectonică InfraGML - o implementare GML inițiată în 2012, reflectând actualizarea lipsă de atunci a LandXML Scheme de aplicații INSPIRE - Schema aplicației GML pentru vremea aviației NcM /GML - NetCDF-GML Schema de observații și măsurători pentru metadatele și rezultatele observației OS MasterMap GML Schema pentru descrierea instrumentelor și lanțurilor de procesare Schema pentru descrierea datelor despre sol și teren TigerGML - Recensământul SUA Proiect de date privind calitatea apei de la Departamentul de resurse naturale, New South Wales WXXM - Model de schimb de informații meteo

GML și KML KML, popularizat de Google, completează GML. În timp ce GML este un limbaj pentru codificarea conținutului geografic pentru orice aplicație, prin descrierea unui spectru de obiecte de aplicație și proprietățile acestora (de exemplu, poduri, drumuri, geamanduri, vehicule etc). KML este un limbaj pentru vizualizarea informațiilor geografice adaptate pentru Google Earth. KML poate fi utilizat pentru a reda conținut GML, iar conținutul GML poate fi „stilat” folosind KML în scopul prezentării. KML este în primul rând un transport de portretizare 3D, nu un transport de schimb de date. Ca urmare a acestei diferențe semnificative de scop, codificarea conținutului GML pentru portretizare utilizând KML are ca rezultat pierderea semnificativă și nerecuperabilă a structurii și identității în KML rezultat. Peste 90% din structurile GML (cum ar fi, pentru a numi câteva, metadate, sisteme de referință de coordonate, date orizontale și verticale, integritatea geometrică a cercurilor, elipse, arcuri etc.) nu pot fi transformate în KML fără pierderi sau codificare non-standard. În mod similar, datorită designului KML ca transport de portretizare, codificarea conținutului KML în GML va duce la pierderea semnificativă a structurilor de portretizare KML, cum ar fi regiunile, nivelul regulilor de detaliu, informațiile de vizualizare și animație, precum și informațiile de stil și reprezentarea pe mai multe scale. Abilitatea de a înfățișa marcatori de locație la mai multe niveluri de detalii distinge KML de GML, deoarece portretizarea este în afara scopului GML.

Geometrii GML GML codifică geometriile GML sau caracteristicile geometrice ale obiectelor geografice ca elemente din documentele GML în conformitate cu modelul „vector”. Geometriile acestor obiecte pot descrie, de exemplu, drumuri, râuri și poduri.

Tipurile cheie de obiecte geometrice GML în GML 1.0 și GML 2.0 sunt următoarele:

Punct LineString Poligon

GML 3.0 și versiunile ulterioare includ, de asemenea, structuri pentru a descrie informațiile de „acoperire”, modelul „raster”, cum ar fi colectate prin intermediul senzorilor și imaginilor de la distanță, inclusiv a majorității datelor din satelit.

Caracteristici GML definește caracteristici distincte de obiectele geometrice. O caracteristică este un obiect de aplicație care reprezintă o entitate fizică, de exemplu, o clădire, un râu sau o persoană. O caracteristică poate avea sau nu aspecte geometrice. Un obiect de geometrie definește o locație sau o regiune în loc de o entitate fizică și, prin urmare, este diferită de o caracteristică .

În GML, o caracteristică poate avea diverse proprietăți geometrice care descriu aspecte geometrice sau caracteristici ale caracteristicii (de exemplu, proprietățile punctului sau extensiei caracteristicii). GML oferă, de asemenea, posibilitatea caracteristicilor de a partaja o proprietate de geometrie între ele utilizând o referință de proprietate la distanță pe proprietatea de geometrie partajată. Proprietățile la distanță sunt o caracteristică generală a GML împrumutat de la RDF. Un atribut xlink: href pe o proprietate de geometrie GML înseamnă că valoarea proprietății este resursa la care se face referire în link.

De exemplu, o caracteristică de construcție într-o anumită schemă de aplicație GML poate avea o poziție dată de tipul de obiect primitiv cu geometrie GML Point. Cu toate acestea, clădirea este o entitate separată de punctul care definește poziția sa. În plus, o caracteristică poate avea mai multe proprietăți geometrice (sau deloc), de exemplu o întindere și o poziție .

Coordonatele Coordonatele din GML reprezintă coordonatele obiectelor geometrice . Coordonatele pot fi specificate prin oricare dintre următoarele elemente GML: <gml:coordinates> <gml:pos> <gml:posList>GML are mai multe moduri de a reprezenta coordonatele. De exemplu, elementul <gml:coordinates> poate fi utilizat, după cum urmează: <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>Rețineți că, atunci când sunt exprimate ca mai sus, coordonatele individuale (de exemplu, 88.56) nu sunt accesibile separat prin intermediul modelului de document XML, deoarece conținutul elementului <gml:coordinates> este doar un singur șir.