Aus einer zusammengesetzten Geometrie (Multipolygon, welches mehrere Elemente, optional auch Subelemente/Ringe enthält) können mit Hilfe der Funktion EXTRACT einzelne Elemente herausgezogen werden.
Diese Funktion für 2D-Vektordaten, sowie analog EXTRACT3D für 3D-Vektordaten, steht im PL/SQL Package SDO_UTIL zur Verfügung. Letztere Funktion gibt es allerdings erst seit der DB Version 11.1 im Package.
Das Format ist wie folgt kurz beschrieben:
Und wie geht´s konkret?
Gegeben sei das Multipolgyon "Brandenburg" (SDO_GTYPE = 2007) aus dem World Sample NAVTEQ Data Bundle.
-- Extraction von Element 1, Ring 1
-- Extraction von Element 1, Ring 2
-- Extraction von Element 2, Ring 2
Weitere Infos finden sich natürlich in der Online-Doku auf OTN (http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14255/sdo_util.htm#sthref1955).
sdo_util.extract (
geometry IN SDO_GEOMETRY,
element IN NUMBER,
ring IN NUMBER default 0
) return sdo_geometry; -- 2D
SQL> select sdo_util.extract(geometry, 1, 1) from m_admin_area2 where feature_name = 'Brandenburg';
-- Ergebnis ist der äußere Ring von Brandenburg
SQL> select sdo_util.extract(geometry, 1, 2) from m_admin_area2 where feature_name = 'Brandenburg';
-- Ergebnis ist der innere Ring von Brandenburg, gleichzeitig die administrative Grenze des Bundeslandes Berlin
SQL> select sdo_util.extract(geometry, 2, 1) from m_admin_area2 where feature_name = 'Brandenburg';
-- Ergebnis hier ist eine kleine Brandenburgische Exklave in Sachsen-Anhalt
Tipps, Tricks, Best Practices und Aktuelles zu Oracle Spatial Technologies
Posts mit dem Label SDO_UTIL Multipolygone EXTRACT werden angezeigt. Alle Posts anzeigen
Posts mit dem Label SDO_UTIL Multipolygone EXTRACT werden angezeigt. Alle Posts anzeigen
Mittwoch, 8. September 2010
De-aggregieren zusammengesetzter Geometrien
Abonnieren
Posts (Atom)