CREATE OR REPLACE FUNCTION geom_to_string (p_geometry IN MDSYS.SDO_GEOMETRY)
RETURN VARCHAR2
AS
str VARCHAR2 (4000) := '';
vgeo MDSYS.SDO_GEOMETRY := p_geometry;
x NUMBER := 0;
y NUMBER := 0;
isi NUMBER := 0;
i NUMBER := 0;
v_dims NUMBER (2) := 0;
BEGIN
v_dims := vgeo.get_dims ();
isi := vgeo.sdo_ordinates.COUNT / v_dims;
FOR i IN 0 .. isi - 1
LOOP
x := vgeo.sdo_ordinates (i * v_dims + 1);
y := vgeo.sdo_ordinates (i * v_dims + 2);
str := str || ',' || FLOOR (x) || ',' || FLOOR (y);
END LOOP;
str := SUBSTR (str, 2, LENGTH (str));
RETURN str;
EXCEPTION
WHEN OTHERS
THEN
RETURN '';
END;
I needed this function to return the x and y co-ordinates as a comma delimited string to a plotting package for display.
No comments:
Post a Comment