Zur vollständigen Qualifizierung der Metadaten in Oracle Spatial benötigt man das Minimal Bounding Rectangle, MBR, dessen Seiten parallel zu den Achsen des Koordinatensystems verlaufen. Hiefür gibt es die speziellen Funktionen sdo_min_mbr_ordinate u. sdo_max_mbr_ordinate in Oracle Spatial.
Unlängst bin ich beim Versuch der Bestimmung des MBR's in folgenden Fehler gelaufen (11g DB):
SQL> select MIN(sdo_geom.sdo_min_mbr_ordinate(geometry, 1)) minX,
2 MAX(sdo_geom.sdo_max_mbr_ordinate(geometry, 1)) maxX,
3 MIN(sdo_geom.sdo_min_mbr_ordinate(geometry, 2)) minY,
4 MAX(sdo_geom.sdo_max_mbr_ordinate(geometry, 2)) maxY
5 from ROADS;
MAX(sdo_geom.sdo_max_mbr_ordinate(geometry, 2)) maxY
*
FEHLER in Zeile 4:
ORA-06533: Index oberhalb der Grenze
ORA-06512: in "MDSYS.SDO_GEOM", Zeile 2095
ORA-06512: in "MDSYS.SDO_GEOM", Zeile 2113
.
In diesem Fall sollte man eine alternative MBR-Bestimmung anwenden:
Friedhold
SQL> select min(t.x),max(t.x),
2 min(t.y),max(t.y)
3 from roads g, table(sdo_util.getvertices(g.geometry)) t;
MIN(T.X) MAX(T.X) MIN(T.Y) MAX(T.Y)
---------- ---------- ---------- ----------
11,5615495 14,756139 51,3734974 53,4149581
.
Sonntag, 1. Juni 2008
Alternative Bestimmung der MBR's in Oracle Spatial
Eingestellt von Friedhold Matz um 12:49
Labels: Oracle Spatial
Abonnieren
Kommentare zum Post (Atom)
Keine Kommentare:
Kommentar veröffentlichen