Hi,
versuche mal mein Problem auf diesem Wege zu schildern.
Ich arbeite derzeit mit einer Oracle Spatial 11g - Datenbank und in dieser mit
2d und 3d-Geometrien. Ab dieser Version ist es nun möglich Flächen zu
3D-Körpern zu extrudieren und des Volumen zu ermitteln. Dies klappt auch weitesgehend reibungslos.
Das Problem liegt nun darin diese extrudierten Flächen als 3D-Geometrie in einer Tabelle zu speichern. Anbei ist der SQL-Code des bisherigen Workflows:
1. Anlegen der Tabellen für die 2D- und 3D-Geomtrien (inkl. Metadaten und Spatial-Index):
2. Einfügen einer 2D-Geomtrie (Grundfläche)
3. Berechnung des Volumen der extrudierten Geometrie
Das funktioniert soweit reibungslos. Nun möchte ich über einen INSERT-befehl die extrudierte Fläche in die Tabelle ta_3dgebaeude reinbekommen. Meine bisherigen Versuche mit folgendem Befehl schlugen fehl...
Nach dem Ausführen dieser Anweisung erhalte ich folgende Fehlermeldung:
ORA-29875: Routine ODCINDEXINSERT nicht erfolgreich ausgeführt
ORA-13365: Ebenen-SRID stimmt nicht mit Geometrie-SRID überein
ORA-06512: in "MDSYS.SDO_INDEX_METHOD_10I", Zeile 709
ORA-06512: in "MDSYS.SDO_INDEX_METHOD_10I", Zeile 225
Habe danach die Metadaten und Spatial-Indizes verändert, erhalte aber dennoch dieselbe Fehlermeldung. Hat jemand eine Rat wie der Fehler zu beheben ist??
Anschließend würde ich gerne die entstandene 3D-Geometrie als KML-exportieren und in Google Earth visualisieren. Von Oracles Seite wird dafür auch ein Tool bereitgestellt, aber das funktioniert irgendwie auch nicht so recht. Gibt es hierfür eventuell ein paar Tipps bezüglich des Workflows bzw. gibt es Alternative Tools, die ein KML-Export unterstützen.
Bin für jede Ratschläge dankbar!
Grüße
versuche mal mein Problem auf diesem Wege zu schildern.
Ich arbeite derzeit mit einer Oracle Spatial 11g - Datenbank und in dieser mit
2d und 3d-Geometrien. Ab dieser Version ist es nun möglich Flächen zu
3D-Körpern zu extrudieren und des Volumen zu ermitteln. Dies klappt auch weitesgehend reibungslos.
Das Problem liegt nun darin diese extrudierten Flächen als 3D-Geometrie in einer Tabelle zu speichern. Anbei ist der SQL-Code des bisherigen Workflows:
1. Anlegen der Tabellen für die 2D- und 3D-Geomtrien (inkl. Metadaten und Spatial-Index):
Code:
-- Tabelle für 2D-Geometrien CREATE TABLE ta_gebaeude( geometrie MDSYS.SDO_GEOMETRY ,flaeche NUMBER(12,3) ); --Metadaten 2D INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ( 'ta_gebaeude', 'geometrie', MDSYS.SDO_DIM_ARRAY (MDSYS.SDO_DIM_ELEMENT('X',4439900.00, 4440020.00, 0.005), MDSYS.SDO_DIM_ELEMENT('Y', 5664050.00, 5664130.00, 0.005) ), 31468 ); -- Spatial Index 2D CREATE INDEX ta_gebaeude_index ON ta_gebaeude(geometrie) INDEXTYPE IS MDSYS.SPATIAL_INDEX; -- Tabelle für 3D-Geometrien CREATE TABLE ta_3dgebaeude( geometrie3d MDSYS.SDO_GEOMETRY ); -- Metadaten 3D INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ( 'ta_3dgebaeude', 'geometrie3d', MDSYS.SDO_DIM_ARRAY ( MDSYS.SDO_DIM_ELEMENT('X',4439900.00, 4440020.00, 0.005), MDSYS.SDO_DIM_ELEMENT('Y', 5664050.00, 5664130.00, 0.005), MDSYS.SDO_DIM_ELEMENT('Z', 0, 200, 0.005) ), 31468 ); -- Spatial Index CREATE INDEX ta_3dgebaeude_index ON ta_3dgebaeude(geometrie3d) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_INDX_DIMS=3');
Code:
INSERT INTO ta_gebaeude VALUES ( MDSYS.SDO_GEOMETRY( 2003 ,31468 ,NULL ,MDSYS.SDO_ELEM_INFO_ARRAY( 1 ,1003 ,1 ) ,MDSYS.SDO_ORDINATE_ARRAY( 4439975.91,5664077.07, 4439967.98,5664072.06, 4439975.33,5664060.42, 4439983.26,5664065.43, 4439975.91,5664077.07 ) ) ,null --flaeche );
Code:
SELECT SDO_GEOM.SDO_VOLUME(SDO_UTIL.EXTRUDE( GEOMETRIE, SDO_NUMBER_ARRAY(0), SDO_NUMBER_ARRAY(10), 'false', --validation 0.005),0.005) from ta_gebaeude;
Code:
INSERT INTO ta_3dgebaeude select SDO_UTIL.EXTRUDE( GEOMETRIE, SDO_NUMBER_ARRAY(0), SDO_NUMBER_ARRAY(10), 'false', --validation 0.005) from ta_gebaeude;
ORA-29875: Routine ODCINDEXINSERT nicht erfolgreich ausgeführt
ORA-13365: Ebenen-SRID stimmt nicht mit Geometrie-SRID überein
ORA-06512: in "MDSYS.SDO_INDEX_METHOD_10I", Zeile 709
ORA-06512: in "MDSYS.SDO_INDEX_METHOD_10I", Zeile 225
Habe danach die Metadaten und Spatial-Indizes verändert, erhalte aber dennoch dieselbe Fehlermeldung. Hat jemand eine Rat wie der Fehler zu beheben ist??
Anschließend würde ich gerne die entstandene 3D-Geometrie als KML-exportieren und in Google Earth visualisieren. Von Oracles Seite wird dafür auch ein Tool bereitgestellt, aber das funktioniert irgendwie auch nicht so recht. Gibt es hierfür eventuell ein paar Tipps bezüglich des Workflows bzw. gibt es Alternative Tools, die ein KML-Export unterstützen.
Bin für jede Ratschläge dankbar!
Grüße