48
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Dr. Thomas H. Kolbe Geoinformation III Geography Markup Language GML Vorlesung 15

Geoinformation III

  • Upload
    makoto

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

Geoinformation III. Vorlesung 15. Geography Markup Language GML. Übersicht über den dritten Vorlesungsblock. 1. Offene Systeme, Rechnernetze und das Internet Die e X tensible M arkup L anguage XML Grundlagen, Document Type Definitions (DTDs) 3.Fortsetzung DTDs, UML  DTD, Namensräume - PowerPoint PPT Presentation

Citation preview

Page 1: Geoinformation III

Institut für Kartographie und GeoinformationProf. Dr. Lutz Plümer Dr. Thomas H. Kolbe

Geoinformation III

Geography Markup Language GML

Vorlesung 15

Page 2: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 2

Übersicht über den dritten Vorlesungsblock

1. Offene Systeme, Rechnernetze und das Internet

Die eXtensible Markup Language XML

2. Grundlagen, Document Type Definitions (DTDs)

3. Fortsetzung DTDs, UML DTD, Namensräume

4. XML Schema

5. Geographic Markup Language GML:– der vom OpenGIS-Consortium als XML-Anwendung

definierte Standard für Geo-Objekte

Page 3: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 3

Geography Markup Language GML• GML ist eine XML-Anwendung zum Transport und

zur Speicherung einfacher Geodaten.• Version 2.1.1 wurde vom OpenGIS Consortium im

April 2002 verabschiedet– Spezifikationen abrufbar unter: http://www.opengis.org– brandneu: Verabschiedung von GML 3 am 29. Januar 2003– seit Version 2.0 erfolgt die Spezifikation nicht mehr durch

Dokumenttyp-Definitionen (DTD), sondern mittels XML Schema

• Geodaten besitzen einfache Geometrien und (optional) weitere beschreibende Eigenschaften.– Geometrie wird durch SimpleFeatures repräsentiert

(ebenfalls von OGC spezifiziert, siehe Vorlesung 10)

Page 4: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 4

Philosophie von GML • GML dient zur Repräsentation räumlicher Objekte,

sog. Merkmale (engl.: Features)– Modellierung der Geometrie und weiterer Eigenschaften von

„Realweltobjekten“ wie z.B. Straße, Fluss, Flurstück, Stadt, Point-of-Interest etc.

– aber: keine Aussage über die Darstellung z.B. auf dem Bildschirm oder in einer Karte

• Kernelemente von GML:– Geometry (Geometrie-Objekte wie z.B. Linien, Polygone etc.)– Feature (Merkmal), steht für ein Realweltobjekt

• Eigenschaften (Attribute) werden als Properties bezeichnet– Differenzierung in geometrische und nicht-geometrische E.– Geometrische E. werden durch Geometrie-Objekte modelliert

– Feature Collection (Menge von Features)

Page 5: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 5

Zusammenspiel der GML-Komponenten

• 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

FeatureCollection Feature GeometryfeatureMember

*geometryProperty

*nicht-geometrische E.

Page 6: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 6

Beispiel für eine GML-Modellierung

name:string

Strasse Stadt konkret

Geometrie Feature abstraktgeometryProperty

*

LineStringlineStringProperty

nichtgeometrische Eigenschaft

Spezifische geome-trische Eigenschaft: linienhafte Geometrie

Realweltobjekte werden als Unterklasse der Klasse Feature modelliert

Es sind für alle Geometrie-Klassen eigene geometrische Eigenschaften definiert(nächste Folie)

Page 7: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 7

vordefinierte geometrische Eigenschaften

Geometrietyp formaler Bezeichner beschreibender Bezeichner

Box boundedBy -

Point pointProperty location, position, centerOf

LineString lineStringProperty centerLineOf, edgeOf

Polygon polygonProperty extentOf, coverage

any geometryProperty -

MultiPoint multiPointProperty multiLocation, multiPosition,

multiCenterOf

MultiLineString multiLineStringProperty multiCenterLineOf, multiEdgeOf

MultiPolygon multiPolygonProperty multiExtentOf, multiCoverage

MultiGeometry multiGeometryProperty -

Page 8: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 8

XML-Kodierung von GML-Features (I)

• XML-Kodierung von Features sind 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)

Page 9: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 9

XML-Kodierung von GML-Features (II)

Definition von _Feature in der Schema-Datei feature.xsd:

<element name="_Feature" type="gml:AbstractFeatureType" abstract="true"/>

<complexType name="AbstractFeatureType" abstract="true"> <sequence> <element ref="gml:description" minOccurs="0"/> <element ref="gml:name" minOccurs="0"/> <element ref="gml:boundedBy" minOccurs="0"/> <!-- additional properties must be specified in an application schema --> </sequence> <attribute name="fid" type="ID" use="optional"/></complexType>

Jedes Feature besitzt ein ID-Attribut fid

Page 10: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 10

XML-Kodierung von GML-Features (III)

• Features dürfen beliebig viele geometrische Eigenschaften besitzen

• Jede geometrische Eigenschaft wird in einem eigenen Element eingeschlossen– Das Element bezeichnet den Datentyp des Geometrie-

Objekts (z.B. polygonProperty)– vordefinierte Elemente: siehe Folie 7

• Kindelement des „Geometrie-Eigenschaftselements“ ist ein Geometrie-Objekt (z.B. Point, Line, Polygon usw.)

Page 11: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 11

Beispiel zur XML-Kodierung

<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>

<Haus> <Nummer>134</Nummer> <Besitzer>Jupp Zupp</Besitzer> <Strasse>Meckenheimer Allee</Strasse> <gml:extentOf> <gml:Polygon> ... </gml:Polygon> </Haus>

polygonProperty, die als Kindelement ein

Polygon besitzt

Page 12: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 12

AnwendungsmodellierungAnwendungsspezifische Modellierung

Schema1 Schema2 Schema3

“Bsp1“ Namensraum “Bsp2“ Namensraum

“gml“ Namensraum

Temporal

Topologie

Geodäsie

Geometrie

Feature

Metadaten

GML-Rahmenkonzept

Page 13: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 13

<schema targetNamespace="http://www.bar.net/Bsp" xmlns="http://www.w3.org/2000/10/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:Bsp="http://www.bar.net/Bsp"> <import namespace="http://www.opengis.net/gml" schemaLocation="feature.xsd"/>...</schema>

Einbindung der GML-Schemata

SchemaB

SchemaA

<include>“Bsp“ Namensraum

Feature

Geometrie

<include>

“gml“ Namensraum

<import>

Page 14: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 14

Bedingungen für Anwendungsmodelle

• ein Anwendungsschema – muss sich auf die abstrakten Konzepte Feature,

FeatureCollection und Geometry stützen– darf den Namen, die Definition oder Datentypen von

vorschreibenden GML-Elementen nicht ändern– abstrakte Typdefinitionen können frei erweitert oder

eingeschränkt werden– das Anwendungsschema muss jedem zugänglich

gemacht werden, der Zugriff auf Daten hat, die nach diesem Schema strukturiert sind

– das relevante Schema muss einen target Namespace spezifizieren, der nicht “http://www.opengis.net/gml“ sein darf

Page 15: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 15

FeatureCollection

• Eine FeatureCollection – Sammlung von Features– kann mehrere FeatureMembers besitzen

<element name="_FeatureCollection" type="gml:AbstractFeatureCollectionType" abstract="true" substitutionGroup="gml:_Feature"/><element name="featureMember" type="gml:FeatureAssociationType"/>

<complexType name="AbstractFeatureCollectionType" abstract="true"> <complexContent> <extension base="gml:AbstractFeatureCollectionBaseType"> <sequence> <element ref="gml:featureMember" minOccurs="0" maxOccurs="unbounded"/> </sequence> </extension> </complexContent></complexType>

Page 16: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 16

FeatureCollection

• Ableitung vom Typ gml:AbstractFeatureCollectionType• Ersatz für das abstrakte Element <gml:_FeatureCollection>• einzelne Mitglieder werden durch <featureMember> in die

FeatureCollection eingebunden:<Stadtmodell fid=“sm1456"> <gml:featureMember> <Haus fid=“H567">....</Haus> </gml:featureMember> <gml:featureMember> <Strasse fid=“Str812">....</Strasse> </gml:featureMember>

</Stadtmodell>

• Mitglieder müssen nicht die selbe Klasse haben

Page 17: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 17

Beispiel für eine FeatureCollection<element name=“Stadtmodell" type=“Bsp:StadtmodellTyp" substitutionGroup="gml:_FeatureCollection"/><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"> <complexContent> <extension base="gml:AbstractFeatureType"> <sequence>....</sequence> </extension> </complexContent></complexType>

<complexType name="StrassenTyp"> <complexContent> <extension base="gml:AbstractFeatureType"> <sequence>.....</sequence> </extension> </complexContent></complexType>

Page 18: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 19

Modellierung der Geometriediese Definitionen sind in einer eigenen Schema-Datei

zusammengestellt: geometry.xsd

Page 19: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 20

Wdh.: Simple Features

• Standard des Open GIS Consortium (OGC)– OGC: privater, nichtkommerzieller Verein – Mitglieder: GIS-Hersteller, Behörden, Universitäten

• Modellierung der Geometrie raumbezogener Objekte• "Simple":

– nur 0 - 2-dimensional (weder 2,5-D noch 3-D)– nur gerade Linien– keine Topologie– keine Aggregation

• " ... reicht in 80% aller Fälle aus ... (?)"• Implementierung standardisiert für

– SQL (Relationale Datenbanken), CORBA, OLE/COM– GML/XML

Page 20: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 21

Wdh.: UML-Diagramm Simple Features

Geometry SpatialReferenceSystem

Point Curve Surface GeometryCollection

LineString Polygon MultiSurface MultiCurve MultiPoint

Line LinearRingMultiPolygon

1+ 2+

1+

1+

1+MultiLineString

Page 21: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 22

Wdh.: Simple Features und Topologie

• drei LineStrings mit einem gemeinsamen Punkt p

• Punkt p existiert dreimal (je einmal für LineString1, LineString2 und LineString3)

• drei Punkte mit identischen Koordinaten

• es gibt keine Knoten im Sinn von Landkarten/Graphen- keine expliziten topologischen Beziehungen

LineString1

LineString3

Punkt p

LineString2

Page 22: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 23

Geometrieklassen in GML

• Point• LineString• LinearRing• Polygon• MultiPoint• MultiLineString• MultiPolygon• MultiGeometry

Auf diese Klassen wird im Folgenden näher einge-gangen

Page 23: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 24

Spatial Reference System (SRS)• zu den Geometriedaten muss das räuml. Bezugssystem

(Spatial 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) benannt ist

• Benennung erfolgt 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"

Page 24: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 25

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.

<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="&#x20;"/> </extension> </simpleContent></complexType>

Trennung Vor-/ Nachkommastelle (.)

coordinate separator (,)

tuple separator ( )

Page 25: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 26

Repräsentation von Koordinaten (II)2. Coord Element: Koordinatenwerte in eigenen Unterelementen

<Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <coord><X>5.0</X><Y>40.0</Y></coord></Point>

<element name="coord" type="gml:CoordType" />

<complexType name="CoordType"> <sequence> <element name="X" type="decimal"/> <element name="Y" type="decimal" minOccurs="0"/> <element name="Z" type="decimal" minOccurs="0"/> </sequence></complexType>

Page 26: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 27

Point ElementPoint Element: Ein Point Element besteht aus einem Koordinatentupel.

<Point gid="P1" srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <coord><X>56.1</X><Y>0.45</Y></coord></Point>

Beispiel:

<element name="Point" type="gml:PointType" substitutionGroup="gml:_Geometry"/>

<complexType name="PointType"> <complexContent> <extension base="gml:AbstractGeometryType"> <sequence> <choice> <element ref="gml:coord"/> <element ref="gml:coordinates"/> </choice> </sequence> </extension> </complexContent></complexType>

Page 27: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 28

Box Element (I)Box Element: Ein Box Element dient zur Modellierung räuml. Ausdehnung.Ein Box Element besteht aus zwei Koordinatentupeln.Das kleinere der Koordinatentupel kommt zuerst.

<element name="Box" type="gml:BoxType"/>

<complexType name="BoxType"> <complexContent> <extension base="gml:AbstractGeometryType"> <sequence> <choice> <element ref="gml:coord" minOccurs="2" maxOccurs="2"/> <element ref="gml:coordinates"/> </choice> </sequence> </extension> </complexContent></complexType>

Page 28: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 29

Box Element (II)Box Element: Ein Box Element dient zur Modellierung räuml. Ausdehnung.Ein Box Element besteht aus zwei Koordinatentupeln.Das kleinere der Koordinatentupel kommt zuerst.

Beispiel:

0.0,0.0

30.0,100.0

<Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <coordinates> 0.0,0.0 30.0,100.0 </coordinates></Box>

Page 29: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 30

LineString ElementLineString: Folge von Punkten, durch gerade Liniensegmente verbunden

<element name="LineString" type="gml:LineStringType" substitutionGroup="gml:_Geometry"/><complexType name="LineStringType"> <complexContent> <extension base="gml:AbstractGeometryType"> <sequence> <choice> <element ref="gml:coord" minOccurs="2" maxOccurs="unbounded"/> <element ref="gml:coordinates"/> </choice> </sequence> </extension> </complexContent></complexType>

<LineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <coordinates>100.0,100.0 230.0,80.0 350.0,130.0 </coordinates></LineString>

Beispiel

Page 30: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 31

MultiLineString Element

MultiLineString: Menge (Aggregation) von LineStrings<element name="MultiLineString" type="gml:MultiLineStringType" substitutionGroup="gml:_Geometry"/>

<complexType name="MultiLineStringType"> <complexContent> <restriction base="gml:GeometryCollectionType"> <sequence> <element name="lineStringMember" maxOccurs="unbounded"> <complexType> <sequence> <element ref="gml:LineString"/> </sequence> </complexType> </element> </sequence> </restriction> </complexContent></complexType>

LineString1

LineString1 LineString2

LineString2

Page 31: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 32

MultiLineString Element (II)

MultiLineString: Menge (Aggregation) von LineStrings<MultiLineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <lineStringMember> <LineString> <coord><X>56.1</X><Y>0.45</Y></coord> <coord><X>67.23</X><Y>0.98</Y></coord> </LineString> </lineStringMember> <lineStringMember> <LineString> <coord><X>46.71</X><Y>9.25</Y></coord> <coord><X>56.88</X><Y>10.44</Y></coord> </LineString> </lineStringMember> <lineStringMember> <LineString> <coord><X>324.1</X><Y>219.7</Y></coord> <coord><X>0.45</X><Y>4.56</Y></coord> </LineString> </lineStringMember></MultiLineString>

Page 32: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 33

LinearRing Element (I)

LinearRing: einfacher, geschlossener LineString

<element name="LinearRing" type="gml:LinearRingType" substitutionGroup="gml:_Geometry"/>

<complexType name="LinearRingType"> <complexContent> <extension base="gml:AbstractGeometryType"> <sequence> <choice> <element ref="gml:coord" minOccurs="4" maxOccurs="unbounded"/> <element ref="gml:coordinates"/> </choice> </sequence> </extension> </complexContent></complexType>

Page 33: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 34

LinearRing Element (II)

LinearRing: einfacher, geschlossener LineString

<LinearRing srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <coordinates> 100.0,100.0 230.0,80.0 350.0,130.0 100.0,100.0 </coordinates></LinearRing>

Beispiel:

die letzte Koordinate muss gleich der ersten

sein

Page 34: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 35

Polygon Element (I)

outerBoundaryIs

innerBoundaryIs

Page 35: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 36

Polygon Element (II)<element name="Polygon" type="gml:PolygonType" substitutionGroup="gml:_Geometry"/>

<complexType name="PolygonType"> <complexContent> <extension base="gml:AbstractGeometryType"> <sequence> <element name="outerBoundaryIs"> <complexType> <sequence> <element ref="gml:LinearRing"/> </sequence> </complexType> </element> <element name="innerBoundaryIs" minOccurs="0" maxOccurs="unbounded"> <complexType> <sequence> <element ref="gml:LinearRing"/> </sequence> </complexType> </element> </sequence> </extension> </complexContent></complexType>

Page 36: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 37

<Polygon gid="_98217" srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <outerBoundaryIs> <LinearRing> <coordinates> 0.0,0.0 100.0,0.0 100.0,100.0 0.0,100.0 0.0,0.0 </coordinates> </LinearRing> </outerBoundaryIs> <innerBoundaryIs> <LinearRing> <coordinates> 10.0,10.0 10.0,40.0 40.0,40.0 40.0,10.0 10.0,10.0 </coordinates> </LinearRing> </innerBoundaryIs> <innerBoundaryIs> <LinearRing> <coordinates> 60.0,60.0 60.0,90.0 90.0,90.0 90.0,60.0 60.0,60.0 </coordinates> </LinearRing> </innerBoundaryIs></Polygon>

Page 37: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 38

MultiGeometry ElementMultiGeometry: Durch ein MultiGeometry Element kann eine Sammlung unterschiedlicher Geometrien modelliert werden.Es kann alle primitiven Geometrie-Elemente beinhalten (Points, LineStrings, Polxgons, MultiPoints usw.)Ein MultiGeometry Element kann wiederum ein MultiGeometry Element enthalten (Rekursion).

<element name="MultiGeometry" type="gml:GeometryCollectionType"/>

<complexType name="GeometryCollectionType"> <complexContent> <extension base="gml:AbstractGeometryCollectionBaseType"> <sequence> <element ref="gml:geometryMember" maxOccurs="unbounded"/> </sequence> </extension> </complexContent></complexType>

Page 38: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 39

MultiGeometry Element<MultiGeometry gid="c731" srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <geometryMember> <Point gid="P6776"> <coord><X>50.0</X><Y>50.0</Y></coord> </Point> </geometryMember>

<geometryMember> <LineString gid="L21216"> <coord><X>0.0</X><Y>0.0</Y></coord> <coord><X>0.0</X><Y>50.0</Y></coord> <coord><X>100.0</X><Y>50.0</Y></coord> </LineString> </geometryMember>

<geometryMember> <Polygon gid="_877789"> <outerBoundaryIs> <LinearRing> <coordinates>0.0,0.0 100.0,0.0 50.0,100.0 0.0,0.0</coordinates> </LinearRing> </outerBoundaryIs> </Polygon> </geometryMember></MultiGeometry>

Page 39: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 40

Ein einfaches aber langes Beispiel (1)

Gemarkung EuskirchenFlur 14Flurstück 5Eigentümer Leo Land

Gemarkung EuskirchenFlur 14Flurstück 7Eigentümer Stadt Euskirchen

Meckenheimer Allee

Page 40: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 41

UML-Diagramm für ein Stadtmodell

Stadtmodell

Flurstück

strname:string

Strasse

*

*

featureMember

GeometryProperty

AbstractFeatureCollection AbstractFeature AbstractGeometryfeatureMember

*geometryProperty

*

Polygon

LineStringlineStringProperty

polygonProperty 1

1

Page 41: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 42

<?xml version="1.0" encoding =“ISO-8859-1“?><Stadtmodell xmlns="http://www.vorlesung.net/beispiel" xmlns:gml="http://www.opengis.net/gml“>

<gml:name>Kataster</gml:name> <gml:boundedBy> . . . </gml:boundedBy>

<gml:featureMember> . . . </gml:featureMember>

</Stadtmodell>

Ein einfaches aber langes Beispiel (2)

nächste Folie

Page 42: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 43

Ein einfaches aber langes Beispiel (3)BoundedBy: Die in boundedBy definierte Box umschließt alle Geodaten dieser Datei.

<gml:boundedBy> <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coordinates> 9500.0,4300.0 9650.7,4353.6</gml:coordinates> </gml:Box> </gml:boundedBy>

Page 43: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 44

<?xml version="1.0" encoding =“ISO-8859-1“?><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> 9500.0,4300.0 9650.7,4353.6</gml:coordinates> </gml:Box> </gml:boundedBy>

<gml:featureMember> <Flurstueck> ... </Flurstueck> </gml:featureMember>

<gml:featureMember> <Strasse> ... </Strasse> </gml:featureMember>

</Stadtmodell>

Ein einfaches aber langes Beispiel (4)

nächste Folie

Page 44: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 45

<gml:featureMember> <Flurstueck> <gml:name>Flst. 5</gml:name> <Gemarkung>Euskirchen</Gemarkung> <Flur>14</Flur> <Eigentuemer>Leo Land</Eigentuemer> <gml:polygonProperty> <gml:Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> . . . </gml:Polygon> </gml:polygonProperty >

</Flurstueck></gml:featureMember>

Ein einfaches aber langes Beispiel (5)

nächste Folie

Page 45: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 46

Ein einfaches aber langes Beispiel (6)

<gml:polygonProperty> <gml:Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates> 9500.0,4300.0 9566.8,4306.2 9572.2,4325.5 9568.8,4341.0 9513.7,4343.6 9500.0,4300.0 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> </gml:Polygon></gml:polygonProperty>

Page 46: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 47

<?xml version="1.0" encoding =“ISO-8859-1“?><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> 9500.0,4300.0 9650.7,4353.6</gml:coordinates> </gml:Box> <gml:boundedBy>

<gml:featureMember> <Flurstueck> ... </Flurstueck> </gml:featureMember>

<gml:featureMember> <Strasse> ... </Strasse> </gml:featureMember>

</Stadtmodell>

Ein einfaches aber langes Beispiel (7)

nächste Folie

Page 47: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 48

Ein einfaches aber langes Beispiel (8)

<Strasse> <strname>Meckenheimer Allee</strname> <gml:lineStringProperty> <gml:lineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coordinates> 9510.0,4333.0 9536.4,4320.1 9555.5,4310.7 </gml:coordinates> </gml:lineString> </gml:lineStringProperty ></Strasse>

Page 48: Geoinformation III

Thomas Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 15 49

<?xml version="1.0" encoding =“ISO-8859-1“?><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> 9500.0,4300.0 9650.7,4353.6</gml:coordinates> </gml:Box> </gml:boundedBy>

<gml:featureMember> <Flurstueck> <gml:name>Flst. 5</gml:name> <Gemarkung>Euskirchen</Gemarkung> <Flur>14</Flur> <Eigentuemer>Leo Land</Eigentuemer> <gml:polygonProperty> <gml:Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates> 9500.0,4300.0 9566.8,4306.2 9572.2,4325.5 9568.8,4341.0 9513.7,4343.6 9500.0,4300.0 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> </gml:Polygon> </gml:polygonProperty > </Flurstueck> </gml:featureMember> <gml:featureMember> <Strasse> <strname>Meckenheimer Allee</strname> <gml:lineStringProperty> <gml:lineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coordinates> 9510.0,4333.0 9536.4,4320.1 9555.5,4310.7 </gml:coordinates> </gml:lineString> </gml:lineStringProperty > </Strasse> </gml:featureMember></Stadtmodell>

Nicht den Kopf verlieren

Gemarkung EuskirchenFlur 14Flurstück 5Eigentümer Leo Land