Geographische Beschreibungssprache GML 3.0 Geographische Beschreibungssprache
Gliederung Wiederholung: GML 2 Struktur von GML 3 Geometrie in GML 3 Topologie in GML 3 Beispiel: simpleNetwork.xml 17.04.2017 GML 3.0
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: http://www.ikg.uni-bonn.de/Lehre/Geoinfo/GIS_III/Folien/Pack-and-Go/unzip/15 GML.ppt 17.04.2017 GML 3.0
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 17.04.2017 GML 3.0
Wdh.: Geometrieklassen in GML 2.0: Point LineString LinearRing Polygon MultiPoint MultiLineString MultiPolygon MultiGeometry Simple Features: zweidimensional, einfache Geometrie, keine Topologie 17.04.2017 GML 3.0
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: http://www.opengis.org/docs/02-023r4.pdf 17.04.2017 GML 3.0
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: http://www.opengis.org/docs/02-023r4.pdf 17.04.2017 GML 3.0
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 17.04.2017 GML 3.0
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 17.04.2017 GML 3.0
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> 17.04.2017 GML 3.0
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="http://www.opengis.net/gml/srs/epsg.xml#4326"> <coordinates> 49.11,24.12 </coordinates> </Point> 17.04.2017 GML 3.0
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="http://.../epsg.xml#4326"> <pos>3 6</pos> </Point> 17.04.2017 GML 3.0
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> 17.04.2017 GML 3.0
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 17.04.2017 GML 3.0
Beispiel: ArcString i,j g,h e,f a,b c,d Anzahl der Bögen: 2*numArc +1 <ArcString gml:id="b2" srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <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 17.04.2017 GML 3.0
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) 17.04.2017 GML 3.0
Topologie _Topology _TopoPrimitive _TopoComplex Node Edge Face TopoSolid Quelle: http://www.opengis.org/docs/02-023r4.pdf 17.04.2017 GML 3.0
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> 17.04.2017 GML 3.0
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 17.04.2017 GML 3.0
Topologische Relationen Node Face Die Masche (Face) bildet hier den Container für den Knoten (Node). Der Knoten ist die „Isolierte“ der Masche. 17.04.2017 GML 3.0
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"/> 17.04.2017 GML 3.0
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> 17.04.2017 GML 3.0
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="-"/> 17.04.2017 GML 3.0
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 17.04.2017 GML 3.0
Beispiel: simpleNetwork.xml Quelle: http://www.opengis.org/docs/02-023r4.pdf 17.04.2017 GML 3.0
simpleNetwork.xml <?xml version="1.0" encoding="UTF-8"?> <Topology xmlns="http://www.opengis.net/app" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http//www.opengis.net/gml" xmlns:app="http://www.opengis.net/app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/app 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) 17.04.2017 GML 3.0
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) 17.04.2017 GML 3.0
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) 17.04.2017 GML 3.0
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"/> 17.04.2017 GML 3.0
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) 17.04.2017 GML 3.0
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) 17.04.2017 GML 3.0
Quellenverzeichnis http://www.w3.org/TR/2000/REC-xml-20001006 http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/ http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/ http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/ http://www.opengis.org/docs/02-023r4.pdf http://www.opengis.org/docs/01-029.pdf http://www.ikg.uni-bonn.de/Lehre/Geoinfo/Gis_iv_SS_02/Vortraege/borsutzky.ppt http://www.ikg.uni-bonn.de/Lehre/Geoinfo/GIS_III/Folien/Pack-and-Go/unzip/ 14a XML-Schema,UML-XML-Schema.ppt 17.04.2017 GML 3.0
Quellenverzeichnis http://www.ikg.uni-bonn.de/Lehre/Geoinfo/GIS_III/Folien/Pack-and-Go/unzip/ 14b XML-Schema,UML-XML-Schema.ppt http://www.ikg.uni-bonn.de/Lehre/Geoinfo/GIS_III/Folien/Pack-and-Go/unzip/15a GML.ppt http://www.ikg.uni-bonn.de/Lehre/Geoinfo/GIS_III/Folien/Pack-and-Go/unzip/15b GML.ppt http://www.ikg.uni-bonn.de/Lehre/Geoinfo/GIS_III/Folien/Pack-and-Go/unzip/15c GML.ppt 17.04.2017 GML 3.0