Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

GIS III – Vorlesung 15 Geography Markup Language – Teil 1

Ähnliche Präsentationen


Präsentation zum Thema: "GIS III – Vorlesung 15 Geography Markup Language – Teil 1"—  Präsentation transkript:

1 GIS III – Vorlesung 15 Geography Markup Language – Teil 1

2 Geography Markup Language GML
GML ist eine XML-Anwendung zum Transport und zur Speicherung von Geodaten. Spezifikation durch das Open Geospatial Consortium Version 3.0 am 29. Januar 2003 verabschiedet Spezifikationen abrufbar unter: Rückwärtskompatibilität: GML2-Instanzdokumente sind gültige GML3-Instanzdokumente; Schemata müssen (leicht) angepasst werden Gemeinsame Weiterentwicklung durch OGC & ISO: GML 3.1 wird ISO-Standard 19136 Normbasierte Austauschschnittstelle (NAS) von ALKIS verwendet GML3 T. H. Kolbe: Geography Markup Language – Teil 1

3 Open Geospatial Consortium
Internationales Standardisierungsgremium Zusammenschluss von Systemherstellern, Datenlieferanten, Nutzern und Wissenschaftlern Non-profit, aber Mitgliedschaft ist beitragspflichtig 1994 gegründet (bis 09/2004: OpenGIS Consortium) Ziel: Entwicklung von Industriestandards für GIS Offene Standards, d.h. frei für Jedermann nutzbar Spezifikationen kostenlos von Homepage herunterladbar Bekannteste Standards: GML, Web Map Service, Web Feature Service seit 1998 offizielle Zusammenarbeit mit ISO TC 211 T. H. Kolbe: Geography Markup Language – Teil 1

4 Entwurfsziele von GML3 Offenes, herstellerneutrales Rahmenkonzept zur Definition raumbezogener Anwendungsmodelle Transport und Speicherung von Schemata und Datensätzen Unterstützung bei der Bildung von Fachschemata Ermöglichung von verteilten raumbezogenen Anwendungsschemata und Datensätzen Möglichkeit der Profilbildung (Teilmengen von GML3) Interoperabilität für komplexe Geodaten T. H. Kolbe: Geography Markup Language – Teil 1

5 Überblick über GML3 Objektorientierte Modellierungsmöglichkeiten
Generalisierungen/Spezialisierungen & Aggregationen Einfache und komplexe Geometrien 1D: Geraden, Splines, Kreisbögen 2D: planare Flächen, komplexe Interpolationsmethoden 3D: Volumina als Boundary Representation Zusammengesetzte Geometrien Topologie (mit und ohne Geometriebindung) Koordinaten- und Zeitbezugssysteme Coverages (Raster, TINs, Punktraster, Landkarten) T. H. Kolbe: Geography Markup Language – Teil 1

6 Unterschiede zu anderen Datenformaten
Objektorientiert; erlaubt semantische Modellierung im Gegensatz zu rein geometrischen Modellen (wie CAD-Formaten oder VRML) oder Geometrietyp-orientierten GIS-Modellen (z.B. Shapefiles): Objektbildung (mit ID) räumliche und nichträumliche Eigenschaften Spezialisierungshierarchien (Taxonomien) abbildbar Bestandteilshierarchien Assoziationen / Relationen zu anderen Objekten Gemischte Verwendung unterschiedlicher räumlicher Bezugssysteme XML-basiert T. H. Kolbe: Geography Markup Language – Teil 1

7 Bezüge zu anderen Standards / Normen
OGC Abstract Specifications ISO Spatial Schema W3C XML, SMIL, SVG GML3 ISO Temporal Schema ISO Metadata ISO Application Schemas ISO Coverages ISO Encoding (Auszug) T. H. Kolbe: Geography Markup Language – Teil 1

8 Anwendungsmodellierung in GML3
GML3 ist ein Meta-Format zur Spezifikation von Austauschformaten für Geoinformationen GML3-Spezifikation gibt durch abstrakte Elemente und Typen nur den Modellierungsrahmen vor große Auswahl direkt verwendbarer Geometrie- und Topologieelemente enthalten Das konkrete Austauschformat ergibt sich erst durch Definition anwendungsspezifischer Typen und Elemente Ableitung von den abstrakten GML3-Typen bzw. –Elementen durch Erweiterung oder Restriktion Verschiedene Anwendungen haben jeweils eigene, und damit unterschiedliche Anwendungsschemata T. H. Kolbe: Geography Markup Language – Teil 1

9 Anwendungsmodell definiert...
jeden konkreten, anwendungsspezifischen GML-Typ bzw. -Element Dies sind in der Regel Geoobjektarten mit ihren Eigenschaften (Features) z. B. Straße, Fluss, Flurstück, Stadt, Point-of-Interest etc. Mengen von Geoobjekten (FeatureCollections) z. B. Katasterauszug, Stadtmodell, alle Flüsse etc. Feldbasierte Raummodelle (Coverages) z.B. rasterbasierte Digitale Geländemodelle (DGM) Beobachtungen und Messwerte (Observations) Begriffsbibliotheken (Dictionaries) T. H. Kolbe: Geography Markup Language – Teil 1

10 Wesentliche Komponenten von GML
Feature (Merkmal), steht für ein Realweltobjekt Eigenschaften werden als Properties bezeichnet Differenzierung in raumbezogene und nicht-raumbezogene Eigenschaften raumbezogene Eigenschaften werden durch Geometrie- oder Topologie-Objekte modelliert Feature Collection (Menge von Features) Geometry (Geometrie-Objekte) z.B. Punkte, Linien, Polygone, TINs, Volumina Topology (Topologie-Objekte) z.B. Nodes, Edges, Faces T. H. Kolbe: Geography Markup Language – Teil 1

11 Zusammenspiel der GML-Komponenten
* * FeatureCollection Feature Geometry feature Member geometry Property nicht- geometrische E. Feature ist die zentrale (abstrakte) Klasse Modellierung nichtgeometrischer Eigenschaften von Features: durch Attribute mit Standarddatentypen wie z.B. String, Integer,... durch Assoziationen von Feature zu anderen Klassen Geometry ist die (abstr.) Oberklasse aller Geometrie-Objekte Geometrische Eigenschaften von Features werden durch die Assoziation geometryProperty mit Geometrie-Objekten modelliert Die Bestandteile einer Feature Collection sind über die Assoziation featureMember erreichbar T. H. Kolbe: Geography Markup Language – Teil 1

12 Beispiel für eine GML-Modellierung
Geometrie Feature abstrakt geometry Property * LineString curve Property name:string Strasse Stadt konkret Realweltobjekte werden als Unterklasse der Klasse Feature modelliert Es sind für alle Geometrie-Klassen eigene geometrische Eigenschaften definiert Spezifische geome-trische Eigenschaft: linienhafte Geometrie nichtgeometrische Eigenschaft T. H. Kolbe: Geography Markup Language – Teil 1

13 Aufbau von GML: GML-Objekte
_Object „Ein GML-Objekt ist ein Objekt mit Identität“ _GML (from gmlBase) + description [0..1] : StringOrRef + name [0..*] : Code + id [0..1] : ID +metadataProperty MetadataPropertyChoice 0..n +dictionaryEntry _Feature Definition Dictionary _Metadata 0..n + fid [0..1] : CharacterString + id : ID + id [0..1] : ID T. H. Kolbe: Geography Markup Language – Teil 1

14 XML Schema für GML-Objekte
<element name="_GML" type="gml:AbstractGMLType" abstract="true" substitutionGroup="gml:_Object"/> <complexType name="AbstractGMLType" abstract="true"> <sequence> <element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:description" minOccurs="0"/> <element ref="gml:name" minOccurs="0" </sequence> <attribute ref="gml:id" use="optional"/> </complexType> Entwurfsmuster in GML3: globales Element (dient oftmals als Kopf einer substitution-Group) + ent-sprechendem globalen Typ Entwurfsmuster in GML3: globales Element (dient oftmals als Kopf einer substitution-Group) + ent-sprechender globaler Datentyp Abstraktes Element gml:_GML ist Wurzelelement jedes GML3-Instanzdokuments (Datendatei) Standardeigenschaften: Name, Beschreibung und Metadaten modelliert als Kindelemente von gml:_GML T. H. Kolbe: Geography Markup Language – Teil 1

15 Repräsentation von Eigenschaften
Eigenschaften (Properties) in GML3 ausschließlich durch Kindelemente eines GML-Objekts repräsentiert Kindelement definiert den Datentyp der Eigenschaft keine Verwendung von XML-Attributen zur Repräsentation von Objekteigenschaften Eigenschaftstyp darf nicht von gml:AbstractGMLType abgeleitet sein kein GML-Objekt ist direktes Kindelement eines anderen GML-Objekts Kein XML-Element kann gleichzeitig GML-Objekt und GML-Eigenschaft sein T. H. Kolbe: Geography Markup Language – Teil 1

16 Eigenschaftswerte: by value / by reference
Eigenschaftswerte können auf 2 Arten angegeben werden: By value Eigenschaftswerte sind als Kindelement eingebettet („inline“) By reference Das Eigenschaftselement ist leer und verweist stattdessen auf ein anderes Objekt (XML-Element mit ID) <gml:location> <gml:Point gml:id="punkt0815" srsName="epsg:4326"> <gml:coordinates>5.5623, </gml:coordinates> </gml:Point> </gml:location> <gml:location xlink:href="http://meine.webseite.de/locations/punkt0815" /> T. H. Kolbe: Geography Markup Language – Teil 1

17 XML-Kodierung von GML-Features (I)
XML-Kodierung von Features ist in der Schema-Datei feature.xsd zusammengefasst Features werden durch Elemente repräsentiert Es gibt ein vordefiniertes abstraktes Element _Feature vom Typ AbstractFeatureType darf selber nicht in Instanzdokumenten vorkommen für Features müssen eigene Elementnamen vergeben werden Elementtyp muss vom (abstrakten) Typ AbstractFeatureType direkt oder indirekt abgeleitet werden Für das Element muss explizit spezifiziert werden, dass es stellvertretend für das Element _Feature verwendet wird mittels Substitution Group (siehe folgendes Beispiel) T. H. Kolbe: Geography Markup Language – Teil 1

18 XML-Kodierung von GML-Features (II)
GML-Objekt _Feature erbt von _GML Eigenschaften description name id und definiert die Eig. boundedBy location XML-Kodierung von GML-Features (II) Definition von _Feature in der Schema-Datei feature.xsd: <element name="_Feature" type="gml:AbstractFeatureType" abstract="true" substitutionGroup= "gml:_GML" /> <complexType name="AbstractFeatureType" abstract="true"> <complexContent> <extension base="gml:AbstractGMLType"> <sequence> <element ref="gml:boundedBy" minOccurs="0"/> <element ref="gml:location" minOccurs="0"/> <!-- additional properties must be specified in an application schema --> </sequence> <attribute name="fid" type="string"/> </attribute> </extension> </complexContent> </complexType> Rückwärtskompatibilität zu GML2: ID-Attribut fid T. H. Kolbe: Geography Markup Language – Teil 1

19 Feature-Eigenschaft boundedBy
mit der gml:boundedBy-Property kann für jedes Feature ein umgebendes Rechteck (Bounding Box) bzw. Volumen angegeben werden <element name="boundedBy" type="gml:BoundingShapeType"/> <complexType name="BoundingShapeType"> <sequence> <group ref="gml:boundingShape"/> </sequence> </complexType> <group name="boundingShape"> <choice> <element ref="gml:Envelope"/> <element ref="gml:Null"/> </choice> </group> Envelope ist ein GML-Geometrieobjekt T. H. Kolbe: Geography Markup Language – Teil 1

20 Feature-Eigenschaft location
mit der gml:location-Property kann für jedes Feature die Lagegeometrie oder ein Ortsname angegeben werden <element name="location" type="gml:LocationPropertyType" substitutionGroup="gml:_property"/> <complexType name="LocationPropertyType"> <sequence > <group ref="gml:locator" minOccurs="0"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </complexType> <group name="locator"> <choice> <element ref="gml:_Geometry"/> <element ref="gml:LocationString"/> <element ref="gml:LocationKeyWord"/> </choice> </group> T. H. Kolbe: Geography Markup Language – Teil 1

21 XML-Kodierung von GML-Features (III)
Features dürfen beliebig viele nichtgeometrische Eigenschaften besitzen Jede Eigenschaft wird in einem eigenen Element eingeschlossen Features dürfen beliebig viele geometrische Eigenschaften besitzen Jede geometrische Eigenschaft wird in einem eigenen Element eingeschlossen Das Element bezeichnet den Datentyp bzw. die Rolle des Geometrie-Objekts (z.B. surfaceProperty) Kindelement des „Geometrie-Eigenschaftselements“ ist ein Geometrie-Objekt (z.B. Point, Line, Polygon usw.) T. H. Kolbe: Geography Markup Language – Teil 1

22 Beispiel zur XML-Kodierung
<Haus> <Nummer>134</Nummer> <Besitzer>Jupp Zupp</Besitzer> <Strasse>Meckenheimer Allee</Strasse> <gml:extentOf> <gml:Polygon> ... </gml:Polygon> </gml:extentOf> </Haus> <element name=“Haus" type=“Bsp:HausTyp“ substitutionGroup="gml:_Feature"/> <complexType name=“HausTyp"> <complexContent> <extension base="gml:AbstractFeatureType"> <sequence> <element name=“Nummer" type=“positiveInteger"/> <element name=“Besitzer" type=“string“/> <element name=“Strasse" type=“string "/> <element ref=“gml:extentOf"/> </sequence> </extension> </complexContent> </complexType> surfaceProperty, die als Kindelement ein Polygon besitzt T. H. Kolbe: Geography Markup Language – Teil 1

23 Feature Eigenschaften
Features können auch Eigenschaften besitzen, die selber Features sind Abbildung von Assoziationen / Aggregationen 1:1-Beziehung über referenziertes Feature 1:n-Beziehung über FeatureCollection mit referenzierten Features <element name="featureMember" type="gml:FeaturePropertyType"/> <element name="featureProperty" type="gml:FeaturePropertyType"/> <complexType name="FeaturePropertyType"> <sequence> <element ref="gml:_Feature" minOccurs="0"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </complexType> T. H. Kolbe: Geography Markup Language – Teil 1

24 FeatureCollection Eine FeatureCollection
ist eine Sammlung von Features kann null oder mehr FeatureMembers besitzen featureMember ist ein Property von FeatureCollection featureMembers ist ein ArrayProperty von FeatureCollection ist selber ein Feature (FeatureCollection von FeatureCollection ist möglich; auch rekursiv) eine FeatureCollection kann eigene räumliche und nichträumliche Eigenschaften besitzen T. H. Kolbe: Geography Markup Language – Teil 1

25 XML Schema von FeatureCollection
<complexType name="AbstractFeatureCollectionType" abstract="true"> <complexContent> <extension base="gml:BoundedFeatureType"> <sequence> <element ref="gml:featureMember" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:featureMembers" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <element name="FeatureCollection" type="gml:FeatureCollectionType" substitutionGroup="gml:_Feature"/> <complexType name="FeatureCollectionType"> <complexContent> <extension base="gml:AbstractFeatureCollectionType"/> </complexContent> </complexType> T. H. Kolbe: Geography Markup Language – Teil 1

26 Eine konkrete FeatureCollection
Ableitung vom Typ gml:AbstractFeatureCollectionType Ersatz für das abstrakte Element <gml:_Feature> einzelne Features werden durch <featureMember> in die FeatureCollection eingebunden: <Stadtmodell gml:id=“sm1456"> <gml:featureMember> <Haus gml:id=“H567">....</Haus> </gml:featureMember> <Strasse gml:id=“Str812">....</Strasse> </Stadtmodell> Mitglieder müssen nicht die selbe Klasse haben T. H. Kolbe: Geography Markup Language – Teil 1

27 Beispiel für konkrete FeatureCollection
<element name=“Stadtmodell" type=“Bsp:StadtmodellTyp" substitutionGroup="gml:_Feature"/> <element name=“Haus" type="Bsp:HausTyp" substitutionGroup="gml:_Feature"/> <element name=“Strasse" type="Bsp:StrassenTyp" substitutionGroup="gml:_Feature"/> <complexType name="StadtmodellTyp"> <complexContent> <extension base="gml:AbstractFeatureCollectionType"> <sequence>...</sequence> </extension> </complexContent> </complexType> <complexType name="HausTyp"> <extension base="gml:AbstractFeatureType"> <sequence>....</sequence> <complexType name="StrassenTyp"> <sequence>.....</sequence> T. H. Kolbe: Geography Markup Language – Teil 1

28 Modellierung der Geometrie
T. H. Kolbe: Geography Markup Language – Teil 1

29 Modellierung der Geometrie
_GML (from gmlBase) + description [0. .1 ] : CharacterString + name [0. .*] : CharacterString + i d [0 ..1] : ID _CoordinateReferenceSystem (from CoordinateReferenceSystems) +srsName _Geometry 0..1 + gid [0..1] : CharacterString _GeometricPrimitive GeometricComplex _GeometricAggregate T. H. Kolbe: Geography Markup Language – Teil 1

30 Basiskonzepte des Geometriemodells
Primitive einfache, kontinuierliche geometrische Objekte Komplexe (GeometricComplex) Menge geometrisch disjunkter Primitive Zusammengesetzte Geometrien (Composites) spezielle Art von Komplexen: homogene Komposition von Primitiven und Composites derselben Dimension isomorph zu Primitiven der entsprechenden Dimension zusammenhängend einzelne Primitive besitzen gemeinsame Teilgeometrien (Primitive niedriger Dimension, z.B. bei zwei benachbarten Flächen die Grenzlinie) Aggregate Sammlungen einzelner Geometrieelemente, die nicht miteinander verbunden sein müssen; Überlappungen sind erlaubt ! T. H. Kolbe: Geography Markup Language – Teil 1

31 Hierarchie der Geometrietypen
_Geometry +gid [0..1]: String _CoordinateReferenceSystem srsName 0..1 _GeometricPrimitive GeometricComplex _GeometricAggregate Point _Surface _Curve _Solid 0D 1D 2D 3D T. H. Kolbe: Geography Markup Language – Teil 1

32 Coordinate Reference System (CRS)
zu den Geometriedaten muss das räuml. Bezugssystem (Coordinate Reference System) benannt werden, in dem die Koordinaten vorliegen bei zusammengesetzten Geometrien reicht es, wenn das Bezugssystem bei der Angabe des umschließenden Rechtecks (Bounding Box bzw. Envelope) benannt ist Benennung erfolgt u.a. auf Basis der Klassifikation geodätischer Bezugssysteme der European Petrol Survey Group EPSG (www.epsg.org), Beispiel: EPSG:4326 entspricht WGS84 Verwendung in GML durch Angabe einer URI, diese kann in beliebigen Geometrie-Elementen als Attribut angegeben werden: <Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> T. H. Kolbe: Geography Markup Language – Teil 1

33 Repräsentation von Koordinaten (I)
1. Coordinates Element: Liste von Koordinaten Die syntaktische Vorschrift zur Trennung der Dezimalstellen, der x und y Werte und der Koordinatenpaare wird durch die Attribute festgelegt. Trennung Vor-/ Nachkommastelle (.) coordinate separator (,) tuple separator ( ) <Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <coordinates> 49.11,24.12 </coordinates> </Point> <element name="coordinates" type="gml:CoordinatesType"/> <complexType name="CoordinatesType"> <simpleContent> <extension base="string"> <attribute name="decimal" type="string" use="default" value="."/> <attribute name="cs" type="string" use="default" value=","/> <attribute name="ts" type="string" use="default" value=" "/> </extension> </simpleContent> </complexType> T. H. Kolbe: Geography Markup Language – Teil 1

34 Repräsentation von Koordinaten (II)
2. Pos Element: Liste von Koordinaten (n-dimensional) <Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <pos dimension="2"> </pos> </Point> <element name="pos" type="gml:DirectPositionType" /> <complexType name="DirectPositionType"> <simpleContent> <extension base="gml:doubleList"> <attribute name="srsName" type="anyURI" use="optional"/> <attribute name="dimension" type="positiveInteger" use="optional"/> </extension> </simplecontent> </complexType> T. H. Kolbe: Geography Markup Language – Teil 1

35 Envelope Element (I) Das Envelope Element dient zur Modellierung räumlicher Ausdehnung. Es besteht aus zwei Koordinatentupeln, die die diagonal gegenüber liegenden Eckpunkte beschreiben. <element name="Envelope" type="gml:EnvelopeType"/> <complexType name="EnvelopeType"> <complexContent> <extension base="gml:AbstractGeometryType"> <sequence> <choice> <element ref="gml:coord" minOccurs="2" maxOccurs="2"/> <element ref="gml:pos" minOccurs="2" maxOccurs="2"/> <element ref="gml:coordinates"/> </choice> </sequence> </extension> </complexContent> </complexType> T. H. Kolbe: Geography Markup Language – Teil 1

36 Envelope Element (II) Das Envelope Element dient zur Modellierung räumlicher Ausdehnung. Es besteht aus zwei Koordinatentupeln, die die diagonal gegenüber liegenden Eckpunkte beschreiben. Typische Verwendung: Angabe einer Bounding Box Beispiel: 0.0,0.0 30.0,100.0 <Envelope srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <coordinates> 0.0, ,100.0 </coordinates> </Envelope> T. H. Kolbe: Geography Markup Language – Teil 1

37 Point Geometry Element
Ein Point Element besteht aus einem Koordinatentupel. <element name="Point" type="gml:PointType" substitutionGroup="gml:_Geometry"/> <complexType name="PointType"> <complexContent> <extension base="gml:AbstractGeometryType"> <sequence> <choice> <element ref="gml:pos"/> <element ref="gml:coordinates"/> <element ref="gml:coord"/> </choice> </sequence> </extension> </complexContent> </complexType> <Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <pos> </pos> </Point> Beispiel: T. H. Kolbe: Geography Markup Language – Teil 1

38 LineString Geometry Element
LineString: Folge von Punkten, durch gerade Liniensegmente verbunden <element name="LineString" type="gml:LineStringType" substitutionGroup="gml:_Curve"/> <complexType name="LineStringType"> <complexContent> <extension base="gml:AbstractCurveType"> <sequence> <choice> <choice minOccurs="2" maxOccurs="unbounded"> <element ref="gml:pos" /> <element ref="gml:coord" /> <element ref="gml:pointRep" /> </choice> <element ref="gml:coordinates"/> </sequence> </extension> </complexContent> </complexType> <LineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <coordinates>100.0, , ,130.0 </coordinates> </LineString> Beispiel T. H. Kolbe: Geography Markup Language – Teil 1

39 Polygon Geometry Element
_Surface Polygon _Ring LinearRing +position [4..n]: Position +interior 0..n +exterior 0..1 exterior exterior interior T. H. Kolbe: Geography Markup Language – Teil 1

40 Polygon Geometry Element - Beispiel
<Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <exterior> <LinearRing gml:id="Außen1"> <coordinates> 0.0, , , , ,0.0 </coordinates> </LinearRing> </exterior> <interior> <LinearRing gml:id="Innen1"> 60.0, , ,90.0 90.0, ,60.0 </interior> </Polygon> T. H. Kolbe: Geography Markup Language – Teil 1

41 Zusammenfassung GML3 ist der derzeit umfassendste Standard zur Repräsentation von Geodaten 0D-, 1D-, 2D- und 3D-Geometrien; Topologie; Zeit Coverages; Observations; Relationen zwischen Geoobjekten GML3 spezifiziert ein Meta-Format GML3-Format A  GML3-Format B Kompatibel nur dann, wenn Anwendungsschema gleich NAS ist das gemeinsame Anwendungsschema für ALKIS Wermutstropfen: Hohe Komplexität, auch bzgl. Einarbeitung Dateien werden durch XML-Overhead sehr groß T. H. Kolbe: Geography Markup Language – Teil 1

42 Beispiel: Ein einfaches 2D-Stadtmodell
Meckenheimer Allee Gemarkung Euskirchen Flur 14 Flurstück 5 Eigentümer Leo Land Flurstück 7 Eigentümer Stadt Euskirchen T. H. Kolbe: Geography Markup Language – Teil 1

43 UML-Diagramm für das 2D-Stadtmodell
Flurstück strname: string Strasse * feature Member Polygon LineString curveProperty surfaceProperty 1 GeometryProperty AbstractFeatureCollection AbstractFeature AbstractGeometry feature Member * geometry Property Stadtmodell T. H. Kolbe: Geography Markup Language – Teil 1

44 2D-Stadtmodell Anwendungsschema (1)
Kopf der Schema-Datei 1. Schema-Element mit Angabe des Namensraums, für den das Schema definiert wird 2. Deklaration aller referenzierten Namensräume (hier: XML-Schema, XLink, GML und der des Anwendungsschemas) 3. Import der benötigten Schemadefinitionen (hier: Basisschema feature.xsd von GML3; lädt weitere nach) <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="http://www.beispiel.net/beispiel" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:bsp="http://www.beispiel.net/beispiel"> <import namespace="http://www.opengis.net/gml" schemaLocation="feature.xsd"/> ... </schema> T. H. Kolbe: Geography Markup Language – Teil 1

45 2D-Stadtmodell Anwendungsschema (2)
Deklaration des Wurzelements Erstes <element> in der XML-Schema-Datei definiert das Wurzelelement für die GML-Instanzdokumente (Datendateien) Deklaration des Elements Stadtmodell; dieses kann überall verwendet werden, wo GML ein Feature erwartet Definition des Typs StadtmodellType als Unterklasse der abstrakten GML-Klasse AbstractFeatureCollectionType ... <element name="Stadtmodell" type="bsp:StadtmodellType" substitutionGroup="gml:_Feature"/> <complexType name="StadtmodellType"> <complexContent> <extension base="gml:AbstractFeatureCollectionType"/> </complexContent> </complexType> T. H. Kolbe: Geography Markup Language – Teil 1

46 2D-Stadtmodell Anwendungsschema (3)
Repräsentation der Features (1) Deklaration des Elements Flurstueck; dieses kann überall verwendet werden, wo GML ein Feature erwartet Definition des Typs FlurstueckType als Unterklasse der abstrakten GML-Klasse AbstractFeatureType Attribute werden durch Kindelemente mit einfachen Daten-typen realisiert <element name="Flurstueck" type="bsp:FlurstueckType" substitutionGroup="gml:_Feature"/> <complexType name="FlurstueckType"> <complexContent> <extension base="gml:AbstractFeatureType"> <sequence> <element name="Gemarkung" type="string"/> <element name="Flur" type="integer"/> <element name="Eigentuemer" type="string"/> <element ref="gml:surfaceProperty"/> </sequence> </extension> </complexContent> </complexType> Repräsentation der Ausdehnung hier über vordefinierte GML-Geometrie-Eigenschaft T. H. Kolbe: Geography Markup Language – Teil 1

47 2D-Stadtmodell Anwendungsschema (4)
Repräsentation der Features (2) Deklaration des Elements Strasse; dieses kann überall verwendet werden, wo GML ein Feature erwartet Definition des Typs StrasseType als Unterklasse der abstrakten GML-Klasse AbstractFeatureType <element name="Strasse" type="bsp:StrasseType" substitutionGroup="gml:_Feature"/> <complexType name="StrasseType"> <complexContent> <extension base="gml:AbstractFeatureType"> <sequence> <element name="strname" type="string"/> <element ref="gml:curveProperty"/> </sequence> </extension> </complexContent> </complexType> Repräsentation des Straßenverlaufs hier über vordefinierte GML-Geometrie-Eigenschaft T. H. Kolbe: Geography Markup Language – Teil 1

48 2D-Stadtmodell Anwendungsschema
<?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="http://www.beispiel.net/beispiel" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:bsp="http://www.beispiel.net/beispiel"> <import namespace="http://www.opengis.net/gml" schemaLocation="feature.xsd"/> <element name="Stadtmodell" type="bsp:StadtmodellType" substitutionGroup="gml:_FeatureCollection"/> <complexType name="StadtmodellType"> <complexContent> <extension base="gml:AbstractFeatureCollectionType"/> </complexContent> </complexType> <element name="Flurstueck" type="bsp:FlurstueckType" substitutionGroup="gml:_Feature"/> <complexType name="FlurstueckType"> <extension base="gml:AbstractFeatureType"> <sequence> <element name="Gemarkung" type="string"/> <element name="Flur" type="integer"/> <element name="Eigentuemer" type="string"/> <element ref="gml:surfaceProperty"/> </sequence> </extension> <element name="Strasse" type="bsp:StrasseType" substitutionGroup="gml:_Feature"/> <complexType name="StrasseType"> <element name="strname" type="string"/> <element ref="gml:curveProperty"/> </schema> 2D-Stadtmodell Anwendungsschema Stadtmodell Flurstück Polygon Strasse LineString T. H. Kolbe: Geography Markup Language – Teil 1

49 GML-Instanzdokument – Beispiel
Meckenheimer Allee Gemarkung Euskirchen Flur 14 Flurstück 5 Eigentümer Leo Land T. H. Kolbe: Geography Markup Language – Teil 1

50 2D-Stadtmodell Instanzdokument (1)
<?xml version="1.0" encoding="ISO "?> <Stadtmodell xmlns="http://www.beispiel.net/beispiel" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink"> <gml:name>Kataster der Stadt XY</gml:name> <gml:boundedBy> . </gml:boundedBy> <gml:featureMember> </gml:featureMember> </Stadtmodell> nächste Folie T. H. Kolbe: Geography Markup Language – Teil 1

51 2D-Stadtmodell Instanzdokument (2)
BoundedBy: Die in boundedBy definierte Envelope umschließt alle Geodaten dieser Datei. <gml:boundedBy> <gml:Envelope srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coordinates> , ,4353.6</gml:coordinates> </gml:Envelope> </gml:boundedBy> T. H. Kolbe: Geography Markup Language – Teil 1

52 2D-Stadtmodell Instanzdokument (3)
<?xml version="1.0" encoding="ISO "?> <Stadtmodell xmlns="http://www.beispiel.net/beispiel" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink"> <gml:name>Kataster der Stadt XY</gml:name> <gml:boundedBy> <gml:Envelope srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coordinates> , ,4353.6</gml:coordinates> </gml:Envelope> </gml:boundedBy> <gml:featureMember> <Flurstueck> </Flurstueck> </gml:featureMember> <Strasse> </Strasse> </Stadtmodell> nächste Folie T. H. Kolbe: Geography Markup Language – Teil 1

53 2D-Stadtmodell Instanzdokument (4)
<gml:featureMember> <Flurstueck> <gml:name>Flst. 5</gml:name> <Gemarkung>Euskirchen</Gemarkung> <Flur>14</Flur> <Eigentuemer>Leo Land</Eigentuemer> <gml:surfaceProperty> <gml:Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> . </gml:Polygon> </gml:surfaceProperty > </Flurstueck> </gml:featureMember> nächste Folie T. H. Kolbe: Geography Markup Language – Teil 1

54 2D-Stadtmodell Instanzdokument (5)
<gml:surfaceProperty> <gml:Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:exterior> <gml:Ring> <gml:curveMember> <gml:LineString> <gml:coordinates> 9500.0, , ,4325.5 9568.8, , ,4300.0 </gml:coordinates> </gml:LineString> </gml:curveMember> </gml:Ring> </gml:exterior> </gml:Polygon> </gml:surfaceProperty> T. H. Kolbe: Geography Markup Language – Teil 1

55 2D-Stadtmodell Instanzdokument (6)
<?xml version="1.0" encoding =“ISO “?> <Stadtmodell xmlns="http://www.vorlesung.net/beispiel" xmlns:gml="http://www.opengis.net/gml“> <gml:name>Kataster</gml:name> <gml:boundedBy> <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coordinates> , ,4353.6</gml:coordinates> </gml:Box> <gml:featureMember> <Flurstueck> </Flurstueck> </gml:featureMember> <Strasse> </Strasse> </Stadtmodell> nächste Folie T. H. Kolbe: Geography Markup Language – Teil 1

56 2D-Stadtmodell Instanzdokument (7)
<Strasse> <strname>Meckenheimer Allee</strname> <gml:curveProperty> <gml:LineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coordinates> 9510.0, , ,4310.7 </gml:coordinates> </gml:LineString> </gml:curveProperty > </Strasse> T. H. Kolbe: Geography Markup Language – Teil 1

57 Nicht den Kopf verlieren
<?xml version="1.0" encoding="ISO "?> <Stadtmodell xmlns="http://www.beispiel.net/beispiel" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <gml:name>Kataster der Stadt XY</gml:name> <gml:boundedBy> <gml:Envelope srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coordinates> , ,4353.6</gml:coordinates> </gml:Envelope> </gml:boundedBy> <gml:featureMember> <Flurstueck> <gml:name>Flst. 5</gml:name> <Gemarkung>Euskirchen</Gemarkung> <Flur>14</Flur> <Eigentuemer>Leo Land</Eigentuemer> <gml:surfaceProperty> <gml:Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:exterior> <gml:Ring> <gml:curveMember> <gml:LineString> <gml:coordinates>9500.0, , , , , ,4300.0 </gml:coordinates> </gml:LineString> </gml:curveMember> </gml:Ring> </gml:exterior> </gml:Polygon> </gml:surfaceProperty > </Flurstueck> </gml:featureMember> <Strasse> <strname>Meckenheimer Allee</strname> <gml:curveProperty> <gml:LineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coordinates> 9510.0, , ,4310.7 </gml:curveProperty > </Strasse> </Stadtmodell> Nicht den Kopf verlieren Gemarkung Euskirchen Flur 14 Flurstück 5 Eigentümer Leo Land T. H. Kolbe: Geography Markup Language – Teil 1


Herunterladen ppt "GIS III – Vorlesung 15 Geography Markup Language – Teil 1"

Ähnliche Präsentationen


Google-Anzeigen