Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | faramond-stroebel |
View: | 103 times |
Download: | 0 times |
6. Technische Grundlagen der Interoperabilität
6.1 Das Modell der SimpleFeatures (OGC)
von
Martin Kütt
Seminar Geoinformation, WS 01/02 (7. Sem.)
Betreuer: Dr. Gröger
Inhalt des Seminarvortrags:
• Einleitung
• Erläuterung des geometrischen Objektmodells
• Erläuterung der einzelnen Klassen des geometrischen Objektmodells
Einleitung• Absicht:• Definition eines Standardschemas, das eine „einfache“
Handhabung raumbezogener Daten ermöglicht • abspeichern, • wiederauffinden, • abfragen, • aktualisieren
• Ein simple feature hat räumliche als auch nicht – räumliche Merkmale
• SimpleFeatures basieren auf einer 2D Geometrie (lineare Interpolation zwischen den Scheitelpunkten)
• Ansammlung mehrerer raumbezogener SimpleFeatures werden in Tabellenform gespeichert
Das geometrische Objektmodell
Geometry SpatialReferenceSystem
Point Curve Surface GeometryCollection
LineString
Line LinearRing
Polygon MultiSurface MultiCurve MultiPoint
MultiPolygon MultiLineString
1+ 2+
1+
1+1+
Geometry Collection• Ansammlung mehrerer geometrischer Objekte (mind. 1)
• alle Elemente dieser Klasse müssen den gleichen räumlichen Bezug aufweisen
• GeometryCollection übt weiterhin keine Zwänge auf die einzelnen Elemente aus
• allerdings können die Unterklassen dieser Klasse beschränkt sein (z. B. hinsichtlich der Dimension)
Methoden• NumGeometries( ):NumGeometries( ): Integer – Gibt die Anzahl der
geometrischen Objekte an
• GeometryN (N:integer):GeometryN (N:integer): Geometrie – Liefert das N – te geometrische Objekt
Das geometrische Objektmodell
Geometry SpatialReferenceSystem
Point Curve Surface GeometryCollection
LineString
Line LinearRing
Polygon MultiSurface MultiCurve MultiPoint
MultiPolygon MultiLineString
1+ 2+
1+
1+1+
Point• 0 – dimensionale Geometrie• repräsentiert einen Ort im Koordinatenraum• die Klasse Point hat einen x – und einen y –
Koordinatenwert• die Begrenzung der Klasse Point ist die leere
Menge
Methoden• X( ):X( ): Double – liefert die x – Koordinate für einen Punkt
• Y( ):Y( ): Double – liefert die y – Koordinate für einen Punkt
Multipoint
• Besteht aus einer Ansammlung von Punkten• die Punkte sind weder geordnet noch
zusammenhängend• die Klasse wird als „einfach“ bezeichnet, wenn
alle Elemente (=Punkte) unterschiedliche Koordinatenwerte besitzen
• die Begrenzung dieser Klasse ist die leere Menge
Das geometrische Objektmodell
Geometry SpatialReferenceSystem
Point Curve Surface GeometryCollection
LineString
Line LinearRing
Polygon MultiSurface MultiCurve MultiPoint
MultiPolygon MultiLineString
1+ 2+
1+
1+1+
Curve
• ist ein 1 – dimensionales geometrisches Objekt• wird üblicherweise durch eine Reihe von Punkten
repräsentiert• weiterhin wird die Form der Interpolation zwischen
den Punkten spezifiziert• wird jeder Punkt nur einmal durchlaufen, so gilt sie
als „einfach“
• sie gilt als „geschlossen“, wenn der Startpunkt gleich dem Endpunkt ist
• die Begrenzung einer geschlossenen Kurve ist die leere Menge
• eine Kurve, die einfach und geschlossen ist, wird als Ring bezeichnet
• die Begrenzung einer nicht geschlossenen Kurve besteht aus Anfangs – und Endpunkt
Methoden
• Length ( ):Length ( ): Double – Die Länge einer Kurve• Startpoint ( ):Startpoint ( ): Point – Der Startpunkt• Endpoint ( ):Endpoint ( ): Point – Der Endpunkt• IsClosed ( ):IsClosed ( ): Integer – Returns 1 (TRUE),
wenn Kurve geschlossen• IsRing ( ):IsRing ( ): Integer – Returns 1 (TRUE),
wenn die Kurve ein Ring ist
Das geometrische Objektmodell
Geometry SpatialReferenceSystem
Point Curve Surface GeometryCollection
LineString
Line LinearRing
Polygon MultiSurface MultiCurve MultiPoint
MultiPolygon MultiLineString
1+ 2+
1+
1+1+
LineString, Line, LinearRing• ein Linestring ist eine Kurve (Curve), wenn zwischen den
Punkten linear interpoliert wird• besteht ein LineString aus exakt zwei Punkten, so wird er
als Line bezeichnet • Ist ein LineString „einfach“ und „geschlossen“, so wird er
als LinearRing bezeichnet
einfach nicht einfach geschl./einf. geschl./ nicht einf.
Beispiele:
s
e
s s s
e
e e
LinearRing
Methoden
• NumPoints ( ):NumPoints ( ): Integer – Gibt die Anzahl der Punkte eines LineStrings an
• PointNPointN (N:Integer): (N:Integer): Point – Gibt den spezifizierten Punkt N eines LineStrings an
Das geometrische Objektmodell
Geometry SpatialReferenceSystem
Point Curve Surface GeometryCollection
LineString
Line LinearRing
Polygon MultiSurface MultiCurve MultiPoint
MultiPolygon MultiLineString
1+ 2+
1+
1+1+
MultiCurve• 1 – dimensionale Geometrie• Elemente dieser Subklasse sind Kurven• Die Klasse wird als „einfach“ bezeichnet, wenn alle Elemente „einfach“
sind • Schnittpunkte dürfen nur in der Begrenzung zweier Elemente
vorkommen• Begrenzung dieser Klasse sind all diejenigen Punkte, welche in einer
ungeraden Anzahl der Teilelemente vorkommen• MultiCurve gilt als „geschlossen“, wenn alle Teilelemente
„geschlossen“sind
Methoden• IsClosed ( ):IsClosed ( ): IntegerInteger = Returns 1(TRUE), wenn Startp.() = Endp.()
•Length ( ): DoubleLength ( ): Double = Gibt die Länge der Multicurve an
MultiLineString• MultiCurve = MultiLineString, wenn Elemente
LineStrings – (lineare Interpolation zwischen den Punkten)
Beispiele:
s1
e1 s2
e2
einfachGrenzen = {s1,e2}
s1
s1e1 e1
s2 s2e2 e2
nicht einfachGrenzen = {s1,e1}
geschlossenGrenzen = {Ø}
s1 s1e2
e1
Das geometrische Objektmodell
Geometry SpatialReferenceSystem
Point Curve Surface GeometryCollection
LineString
Line LinearRing
Polygon MultiSurface MultiCurve MultiPoint
MultiPolygon MultiLineString
1+ 2+
1+
1+1+
Surface• 2D – geometrisches Objekt• Zeichnet sich durch eine „äußere“ Grenze aus
– Darüber hinaus können mehrere „innere“ Grenzen bestehen
• Einfache Oberflächen (= Simple Surfaces) haben im 3D die gleiche Gestalt, wie ebene Oberflächen
• Polyhedral Surfaces erhält man, indem man einfache Oberflächen entlang ihrer Grenzen miteinander „vernäht“
• diese müssen dann nicht mehr eben sein (3D)
Methoden• Area ( )Area ( ) : Double - das Gebiet (gem. in einem math.
Ref.)
• Centroid ( ):Centroid ( ): Point – Schwerpunkt nicht zwingend auf der Oberfläche
• PointOnSurface ( ): PointOnSurface ( ): Punkt auf der Oberfläche
Polygon• ebene Oberfläche, definiert durch eine äußere und 0 oder mehrere innere Grenzen
– jede innere Grenze legt ein „Loch“ im Polygon fest • die Grenzen bestehen aus LinearRings• mehrere Grenzen dürfen sich nicht schneiden
– Berührpunkte sind gestattet
Beispiele
Polygon mit einem zwei bzw. drei Ringen
Methoden
• ExteriorRing ( ): ExteriorRing ( ): LineString - Gibt die externen Ring des Polygons an
• NumInteriorRing ( ): NumInteriorRing ( ): Integer - Gibt die Anzahl der inneren Ringe an
• InteriorRingN (N:Integer):InteriorRingN (N:Integer): Linestring - Gibt den N - ten internen Ring eines Polygons an
Das geometrische Objektmodell
Geometry SpatialReferenceSystem
Point Curve Surface GeometryCollection
LineString
Line LinearRing
Polygon MultiSurface MultiCurve MultiPoint
MultiPolygon MultiLineString
1+ 2+
1+
1+1+
MultiSurface• 2D Ansammlungen von Oberflächen
• zwei verschiedene Oberflächen (Surfaces) dürfen sich nicht schneiden
- ansonsten kein Multisurface sondern Surface
• die Grenzen zweier Elemente können sich in einer begrenzten Anzahl von Punkten berühren
• MultiSurface wird als abstrakte Klasse bezeichnet
• Sie definiert verschiedene Vorgehensweisen für deren Unterklassen
Methoden• Area ( ):Area ( ): das Gebiet (gemessen in dem räuml. Ref. Syst.)
• Centroid ( ):Centroid ( ): den Schwerpunkt (nicht zwingend auf der Fläche)
• PointOnSurface ( ):PointOnSurface ( ): Punkt auf der Oberfläche
MultiPolygon• Subklasse, deren Elemente Polygone sind
• Kennzeichen :
• Die Innenräume und die Grenzen zweier Polygone dieser Klasse dürfen sich nicht schneiden
• Sie dürfen sich an einer begrenzten Anzahl von Punkten berühren
• MultiPolygon besteht aus einer geordneten, geschlossenen Ansammlung von Punkten
• Die inneren Bereiche dieser Klasse sind nicht zusammenhängend
• Die Anzahl der inneren Bereiche entspricht der Anzahl der Polygone
MultiPolygon
Beispiele
• die Grenzen dieser Klasse bestehen aus einer Ansammlung geschlossener Kurven (LineString)
• Jede Grenze wird exakt einem Polygon zugeordnet, welches sich in der Klasse befindet
1 Polygon 3 Polygone 2 Polygone 2 Polygone