Oracle 7.3 bis Oracle 21c Windows 11 kompatibel Version

Oracle Geodaten bearbeiten mit KeepTool (Oracle Spatial data)

30 Jun 2015

Oracle Spatial bietet zahlreiche Features zum Arbeiten mit Oracle Geodaten wie beispielsweise Punkte und Polygone. Es ist im Schema MDSYS implementiert. Insofern Sie die Oracle Spatial Option lizensiert haben, hilft KeepTool Ihnen, die Vorteile voll auszunutzen.

Fangen wir gleich an und verbinden Hora mit dem Beispielschema OE. Die Spalte CUSTOMERS.CUST_GEO_LOCATION benutzt den Datentyp MDSYS.SDO_GEOMETRY und enthält raumbezogene Daten. Bei Nutzung einer SQL*Net-Verbindung (die direkte TCP/IP-Option unterstützt noch keine objektorientierten Datentypen) können die Daten in der DataContent-Ansicht dargestellt werden.

Unser Data Content Browser zeigt für die Spalte die Oracle Geodaten des Objektdatentyps in kompakter schreibgeschützter Form an.

Die Spalte zeigt die Geometriedaten des Objektdatentyps in kompakter schreibgeschützter Form an.

Über das Kontextmenü der rechten Maustaste können Sie den Befehl “Show Geometry” aufrufen. Daraufhin bekommen Sie einen modalen Dialog angezeigt, der die Datenstruktur dann im Detail anzeigt:

Bei der angezeigten Geometrie handelt es sich um einen 2-dimensionalen Punkt in WGS84 Koordinaten.

Das “SQL”-Feld im unteren Bereich zeigt die Daten in Form eines SQL-Ausdrucks an. Sie können das so wie es ist über die Zwischenablage auf die SQL-Seite kopieren und dort in einem SELECT ausführen:

Die Datendarstellung und das Kontextmenü sehen hier genauso aus wie im DataContent.

Wir wählen jetzt den Menüpunkt “Create KML file” aus und werden aufgefordert, das erzeugte KML unter einem Dateinamen zu speichern. Anschließend können wir das KML mit der im Betriebssystem verknüpften Standardanwendung öffnen, z.B. Google Earth:

Die gelbe Nadel zeigt die Position von LOCATION auf der Karte. Sie können auch alle räumlichen Daten aus der Datenmenge anzeigen, wenn Sie das Kontextmenü der Tabellendarstellung anstelle des Menüs der Datenzelle benutzen.

Unter http://www.oracle.com/technetwork/database/options/spatialandgraph/downloads/navteq-lic-168395.html finden Sie ein komplexeres Beispiel. Nach dem Bestätigen der Lizenzbedingungen können Sie die 767 MB große ZIP-Datei herunter laden. Darin befinden sich u.a. eine Readme-Datei, je ein Skript zum Importieren der Daten und um diese später wieder löschen zu können, sowie eine fast 2 GByte große DMP-Datei im imp/exp-Format.
Die wichtigsten Schritte für den Import in Ihre Datenbank sind

  • Anlegen des Benutzers WORLD_SAMPLE und Zuweisen unbegrenzter Quota auf den Tablespace USERS.
  • Stellen Sie sicher, dass der Tablespace USERS sich auf 5 GBytes automatisch vergrößern kann, um die zu importierenden Daten aufzunehmen.
  • Importieren Sie den Dump auf der Kommandozeile (CMD)
    imp WORLD_SAMPLE/WORLD_SAMPLE@orcl file=world_sample2010.dmp log=world_sample.log full=y
    Wir konnten den Dump sowohl in Oracle 11g Release 2 als auch eine Oracle 12c pluggable database fehlerfrei importieren.
  • Abschließend sind als Benutzer WORLD_SAMPLE noch folgende  SQL-Anweisungen auszführen:
    INSERT INTO user_sdo_maps SELECT * FROM sdo_maps;
    INSERT INTO user_sdo_themes SELECT * FROM sdo_themes;
    INSERT INTO user_sdo_styles SELECT * FROM sdo_styles;
    INSERT INTO user_sdo_cached_maps SELECT * FROM sdo_cached_maps;
    COMMIT;

Das folgende Bild zeigt den Verlauf des Imports.

Jetzt können Sie Hora starten und sich als Benutzer WORLD_SAMPLE anmelden. Wenn Sie die Tabelle MAP_WORLD im DataContentBrowser öffnen, sehen Sie nun auch komplexere räumliche Daten. Während wir zuvor im Schema OE nur Punktdaten gesehen haben, sehen wir hier auch Polygonzüge, die Flächen einschließen:

Damit können Sie eine ansprechende Darstellung in Google Earth erzeugen. Dazu filtern Sie bitte nach dem Erdteil Europa, und anschließend benutzen Sie den Menübefehl “KML export” der Tabelle (nicht der Datenzelle):

Nachdem wir wieder einen Dateinamen vergeben haben, können wir die Daten in Google Earth darstellen:

Nachdem wir wieder einen Dateinamen vergeben haben, können wir die Daten in Google Earth darstellen:

Jede Fläche zeigt nach dem Anklicken des Umrisses eine Popup-Darstellung mit anderen Datenfeldern dieses Datensatzes.

Zum Abschluss werfen wir noch einen Blick auf ein paar Konfigurationstätigkeiten die notwendig sind, um mit raumbezogenen Daten arbeiten zu können. Um die Geometriedaten in einer Spalte nutzen zu können, sind folgende drei Schritte nötig:

  • Anlegen einer Tabellenspalte mit dem Objektdatentyp MDSYS.SDO_GEOMETRY
  • Einfügen eines Datensatzes in USER_SDO_GEOM_METADATA um das Koordinatensystem und die räumliche Begrenzung aller Daten der Spalte festzulegen.
  • Erzeugen eines Spatial Index.

Horas Schema-Seite zeigt auf der Lasche “Spatial Columns” einen Überblick zu den im Schema benutzten Geometriespalten, deren Metadaten und zum Status des Spatial Indexes.

Die Ansicht ermöglicht es Ihnen, Koordinatensystem- und Dimensionsinformationen der Geometriespalten miteinander zu vergleichen und den Status des Spatial Index zu überprüfen.

Darüber hinaus gestattet das Kontextmenü der TabellendarstellungKopieren einer Skriptvorlage in die Windows-Zwischenablage. Der Code kann benutzt werden, um die Konfiguration von einer Geometriespalte in eine andere zu übertragen. Es werden Anweisungen erstellt für das

    • Löschen des Spatial Index
    • Löschen und erneutem Einfügen der Zeile in USER_SDO_GEOM_METADATA
    • Umrechnen der vorhandenen Daten in das in den Metadaten angegebene (neue) Koordinatensystem
    • Erneutes Anlegen des Spatial Index
  • KML Export. Sie können die Dimensionsgrenzen in Google Earth anzeigen, insbesondere wenn diese nicht die gesamte Erde einschließen wie im Falle der world_sample-Datenbank.
  • Anlegen eines neuen Spatial Index
  • Rebuild eines vorhandenen Spatial Index.

KeepTool ist das ideale Werkzeug zum Arbeiten mit Oracle Geodaten.