Präsentation herunterladen
1
Geographische Beschreibungssprache
GML 3.0 Geographische Beschreibungssprache
2
Gliederung Wiederholung: GML 2 Struktur von GML 3 Geometrie in GML 3
Topologie in GML 3 Beispiel: simpleNetwork.xml GML 3.0
3
Wiederholung GML: Geography Markup Language XML-Anwendung für die Modellierung und Speicherung geographischer Informationen einschließlich räumlicher und nicht-räumlicher Eigenschaften (Properties). Quelle: GML.ppt GML 3.0
4
Wdh.: Kernelemente in GML 2.0:
Geometry (Geometrie-Objekte) Feature (Merkmal) Realweltobjekt Eigenschaften Properties Unterscheidung von geometrischen und nichtgeometrischen Eigenschaften Modellierung geometrischer Eigenschaften durch Geometrie-Objekte ( Assoziation „geometryProperty“) Feature ist die zentrale Klasse GML 3.0
5
Wdh.: Geometrieklassen in GML 2.0:
Point LineString LinearRing Polygon MultiPoint MultiLineString MultiPolygon MultiGeometry Simple Features: zweidimensional, einfache Geometrie, keine Topologie GML 3.0
6
Struktur in GML 3.0 Object gml:_Object GML Objekt gml:_GML
GML Metadata gml:_MetaData GML Objekt gml:_GML Gml:_GML : abstrakte Oberklasse für alle GML-Objekte GML Feature gml:_Feature GML Geometry gml:_Geometry GML Topology gml:_Topology GML Value gml:_Value Quelle: GML 3.0
7
Struktur in GML 3.0: Forts. GML Observation gml:_Observation
GML Coverage gml:_Coverage GML Temporal gml:_TimeObject GML Coverage gml:_Coverage GML Coordinate Reference System gml:_CRS GML StyleDescriptor gml:_StyleDescriptor GML Unit Definition gml:UnitDefinition GML Definition gml:Definition GML Temporal Reference System gml:_TimeReferenceSystem Quelle: GML 3.0
8
Basiskomponente in GML 3.0: _GML
<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" maxOccurs="unbounded"/> <sequence/> <attribute ref="gml:id" use="optional"/> </complexType> In GML 2 war _Feature die Basiskomponente GML 3.0
9
Geometrie GML 2: Definitionen zur Modellierung in einer Schema-Datei:
geometry.xsd GML 3: Erweiterung der Geometrie-Objekte: geometryBasic0d1d.xsd geometryBasic2d.xsd geometryPrimitives.xsd geometryComplexes.xsd geometryAggregates.xsd GML 3.0
10
geometryBasic0d1d.xsd Darstellung von Punkten: Element Point
<element name="Point" type="gml:PointType" substitutionGroup="gml:_GeometricPrimitiv"/> <complexType name="PointType"> <complexContent> <extension base="gml:AbstractGeometricPrimitiveType"> <sequence> <choice> <element ref="gml:pos"/> <element ref"gml:coordinates"/> </choice> </sequence> </extension> </complexContent> </complexType> GML 3.0
11
geometryBasic0d1d.xsd Darstellung von Koordinaten: Element Coordinates
<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> Darstellung von Point mit coordinates <Point srsName=" <coordinates> 49.11,24.12 </coordinates> </Point> GML 3.0
12
geometryBasic0d1d.xsd Element Coord von GML 3 nicht unterstützt
stattdessen: Element pos: Angabe von Double-Werten, Trennung der Werte durch Leerzeichen <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> Darstellung von Point mit pos: <Point gml:id="p1111" srsName=" <pos>3 6</pos> </Point> GML 3.0
13
geometryPrimitives.xsd:
u.a.weitere Möglichkeiten der Interpolation zwischen Punkten Simple Type CurveInterpolationType <simpleType name="CurveInterpolationType"> <resriction base="string"> <enumeration value="linear"/> <enumeration value="geodesic"/> <enumeration value="circularArc3Points"/> <enumeration value="circularArc2PointWithBulge"/> <enumeration value="circularArcCenterPointWithRadius"/> <enumeration value="elliptical"/> <enumeration value="clothoid"/> <enumeration value="conic"/> <enumeration value="polynomialSpline"/> <enumeration value="cubicSpline"/> <enumeration value="rationalSpline"/> </restriction> </simpleType> GML 3.0
14
Anwendung einer Interpolationsmethode:
Element ArcString <element name="ArcString" type="gml:ArcStringType" substitutionGroup="gml:_CurveSegment"/> <compleType name="ArcStringType"> <complexContent> <extension base="gml:AbstractCurveSegmentType"> <sequence> <choice> <choice minOccurs="3" maxOccurs="unbounded"> <element ref="gml:pos"/> <element ref="gml:pointRep"/> </choice> <element ref="gml:coordinates"/> </sequence> <attribute name="interpolation type="gml:CurveInterpolationType" fixed="circularArc3Points"/> <attribute name="numArc" type="integer" use="optional"/> </extension> </complexContent> </complexType> Interpolation auf Kreisbogen-durch-3-Punkte festgesetzt Anzahl der Bögen kann festgesetzt werden GML 3.0
15
Beispiel: ArcString i,j g,h e,f a,b c,d Anzahl der Bögen: 2*numArc +1
<ArcString gml:id="b2" srsName=" <coordinates> a,b c,d e,f g,h i,j </coordinates> </ArcString> i,j g,h e,f Anzahl der Bögen: 2*numArc +1 a,b c,d GML 3.0
16
geometryPrimitives.xsd Weiterhin: 1-D-Bereich:
Anwendungen wie die Modellierung von Kreisen (Circles) 2-D-Bereich: Modellierung von Flächen mit verschiedenen Interpolationsmethoden (planar, spherical, elliptical, polynomialSpline,...) 3-D-Bereich: Modellierung von Körpern (solids) GML 3.0
17
Topologie _Topology _TopoPrimitive _TopoComplex Node Edge Face
TopoSolid Quelle: GML 3.0
18
AbstractTopologyType:
Basistyp für alle topologischen Elemente: topologische Primitive topologische Komplexe Element _Topology <element name="_Topology" type="gml:AbstractTopologyType" abstract="true" substitutionGroup="gml:_Object"/> <complexType name="AbstractTopologyType" abstract="true"> <complexContent> <extension base="gml:AbstractGMLType/> </complexContent> </complexType> GML 3.0
19
AbstractTopoPrimitive:
Basistyp auf der nächsten Stufe für alle topologischen Primitive AbstractTopoPrimitive <element name="_TopoPrimitive" type="gml:AbstractTopoPrimitiveType" abstract="true" substitutionGroup="gml:_Topology"/> <complexType name="AbstractTopoPrimitiveType" absrtact="true"> <complexContent> <extension base="gml:AbstractTopologyType"> <sequence> <element ref="gml:isolated" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:container" minOccurs="0" maxOccurs="unbounded"/> </sequence> </extension> </complexContent> </complexType> Beziehungen zwischen topologischen Primitiven GML 3.0
20
Topologische Relationen
Node Face Die Masche (Face) bildet hier den Container für den Knoten (Node). Der Knoten ist die „Isolierte“ der Masche. GML 3.0
21
Node (Knoten) kleinstes topologisches Primitiv
<element name=”Node” type=”gml:NodeType” substitutionGroup=”gml:_TopoPrimitive”/> <complexType name=”NodeType”> <complexContent> <extension base=”gml:AbstractTopoPrimitiveType”> <sequence> <element ref=”gml:directedEdge” minOccurs=”0” maxOccurs=”unbounded”/> <element ref=”gml:pointProperty minOccurs=”0”/> </sequence> </extension> </complexContent> </complexType> Bezug zu einem geometrischen Punkt und/oder zu einer gerichteten Kante (directedEdge) kann hergestellt werden Beispiel <gml:Node gml:id="n1"/> GML 3.0
22
Als SignType kann entweder ein „+“ oder ein „-“ gewählt werden.
directedNode Knoten wird zu Start- oder Endknoten deklariert Startknoten + Endknoten Als SignType kann entweder ein „+“ oder ein „-“ gewählt werden. kleiner Exkurs: gml:SignType <simpleType name=”SignType”> <restriction base=”string”> <enumeration value=”-“> <enumeration value=”+”> </restriction> </simpleType> GML 3.0
23
directedNode <element name=”directedNode” type=”gml:DirectedNodePropertyType”/> <complexType name=”DirectedNodePropertyType”> <choice> <element ref=”gml:Node” minOccurs=”0”/> <attribute name =”orientation” type=”gml:SignType” default=”+”/> <attributeGroup ref=”gml:AssociationAttributeGroup”/> </complexType> default: Solange nichts anderes deklariert wird, bleibt „orientation“ mit „+“ besetzt. Beispiel <gml:directedNode gml:id="dn1" orientation="-"/> GML 3.0
24
Kante besitzt auf jeden Fall 2 gerichtete Knoten
Edge (Kante) <element name="Edge" type="gml:EdgeType" substitutionGroup="gml:_TopoPrimitive"/> <complexType name="EdgeType"> <complexContent> <extension base="gml:AbstractTopoPrimitiveType"> <sequence> <element ref="gml:directedNode" minOccurs="2" maxOccurs="2"/> <element ref="gml:directedFace" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:curveProperty" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> Kante besitzt auf jeden Fall 2 gerichtete Knoten GML 3.0
25
Beispiel: simpleNetwork.xml
Quelle: GML 3.0
26
simpleNetwork.xml <?xml version="1.0" encoding="UTF-8"?> <Topology xmlns=" xmlns:sch=" xmlns:xlink=" xmlns:gml="http// xmlns:app=" xmlns:xsi=" xsi:schemaLocation=" networkExamples.xsd"> <gml:Node gml:id="n1"> <gml:pointProperty> <pml:Point> <gml:coordinates>10,10</gml:coordinates> </gml:Point> </gml:pointProperty> </gml:Node> n1 (10,10) GML 3.0
27
simpleNetwork.xml n1 (10,10) n2 (20,10) n1 (10,10) n2 (20,10)
<gml:Node gml:id="n2"> <gml:pointProperty> <pml:Point> <gml:coordinates>20,10</gml:coordinates> </gml:Point> </gml:pointProperty> </gml:Node> n1 (10,10) n2 (20,10) <gml:Node gml:id="n3"> <gml:pointProperty> <pml:Point> <gml:coordinates>30,10</gml:coordinates> </gml:Point> </gml:pointProperty> </gml:Node> n1 (10,10) n2 (20,10) n3 (30,10) GML 3.0
28
simpleNetwork.xml n4 (20,20) n1 (10,10) n2 (20,10) n3 (30,10)
<gml:Node gml:id="n4"> <gml:pointProperty> <pml:Point> <gml:coordinates>20,20</gml:coordinates> </gml:Point> </gml:pointProperty> </gml:Node> n4 (20,20) n1 (10,10) n2 (20,10) n3 (30,10) GML 3.0
29
simpleNetwork.xml n4 (20,20) e1 n1 (10,10) n2 (20,10) n3 (30,10)
<gml:Edge gml:id="e2"> <gml:directedNode orientation="-" xlink:href="#n1"/> <gml:directedNode orientation="+" xlink:href="#n2"/> <gml:centerLineOf> <gml:LineString> <gml:coordinates>10,10 20,10</gml:coordinates> </gml:LineString> </gml:centerLineOf> </gml:Edge> n4 (20,20) e1 n1 (10,10) n2 (20,10) n3 (30,10) beschreibender Bezeichner: LineString wird erwartet <element name="centerLineOf“ type="gml:CurvePropertyType" substitutionGroup="gml:curveProperty"/> GML 3.0
30
simpleNetwork.xml n4 (20,20) e1 e2 n1 (10,10) n2 (20,10) n3 (30,10)
<gml:Edge gml:id="e2"> <gml:directedNode orientation="-" xlink:href="#n2"/> <gml:directedNode orientation="+" xlink:href="#n3"/> <gml:centerLineOf> <gml:LineString> <gml:coordinates>20,10 30,10</gml:coordinates> </gml:LineString> </gml:centerLineOf> </gml:Edge> n4 (20,20) e1 e2 n1 (10,10) n2 (20,10) n3 (30,10) GML 3.0
31
simpleNetwork.xml n4 (20,20) e3 e1 e2 n1 (10,10) n2 (20,10) n3 (30,10)
<gml:Edge gml:id="e3"> <gml:directedNode orientation="-" xlink:href="#n2"/> <gml:directedNode orientation="+" xlink:href="#n4"/> <gml:centerLineOf> <gml:LineString> <gml:coordinates>20,10 20,20</gml:coordinates> </gml:LineString> </gml:centerLineOf> </gml:Edge> n4 (20,20) e3 e1 e2 n1 (10,10) n2 (20,10) n3 (30,10) GML 3.0
32
Quellenverzeichnis http://www.w3.org/TR/2000/REC-xml-20001006
14a XML-Schema,UML-XML-Schema.ppt GML 3.0
33
Quellenverzeichnis 14b XML-Schema,UML-XML-Schema.ppt GML.ppt GML.ppt GML.ppt GML 3.0
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.