Mehr

Wie erstelle ich einen Punkt, puffere ihn und schneide ihn mit der Polygongeometrie?


Das folgende SQL soll einen Punkt aus einem bekannten X,Y erstellen. Es sollte dann den Punkt mit einem bekannten Abstand puffern. Schließlich sollte die SQL den Puffer mit einem darunter liegenden Polygon-Layer schneiden und das Namensfeld aus dem Polygon zurückgeben, das der Puffer schneidet. Scheint einfach zu sein.

SELECT name FROM polygons t1 WHERE sde.st_intersects (sde.st_buffer(sde.st_point(x, y), buffer), t1.SHAPE) = 1

Wenn ich die SQL ausführe, bekomme ich Folgendes:

Fehler in Zeile 3 ORA-20003: Geometrietyp "" ist kein gültiger Formtyp. ORA-06512: bei "SDE.ST_GEOM_UTIL", Zeile 275 ORA-06512: bei "SDE.ST_POINT", Zeile 21

Was mache ich falsch und wie kann ich es beheben? Die von mir verwendeten X, Y sind definitiv im richtigen Bereich, so dass das Puffern und das Finden einer Kreuzung kein Problem sein sollte.

Ich verwende st_geometry auf Oracle von Arc 10.1


Sie müssen ST_POINT eine SRID hinzufügen.

SELECT name FROM polygons t1 WHERE sde.st_intersects (sde.st_buffer(sde.st_point(x, y, SRID), buffer), t1.SHAPE) = 1