ST_Z

Definition

ST_Z wählt einen Eingabeparameter vom Typ "ST_Point" aus und gibt dessen Z-Koordinate (Höhe) zurück. In SQLite kann "ST_Z" auch die Z-Koordinate eines ST_Point aktualisieren.

Syntax

Oracle und PostgreSQL

sde.st_z (geometry1 sde.st_point)

SQLite

st_z (geometry  geometryblob)
st_z (input_shape geometryblob, new_Zvalue double)

Rückgabetyp

Oracle

Zahl

PostgreSQL

Ganzzahl

SQLite

Doppelte Genauigkeit wird zurückgegeben, wenn "ST_Z" verwendet wird, um die Z-Koordinate eines Punktes zurückzugeben. Ein geometryblob wird zurückgegeben, wenn "ST_Z" verwendet wird, um die Z-Koordinate eines Punktes zu aktualisieren.

Beispiel

Die Tabelle "z_test" wird mit zwei Spalten erstellt: die Spalte "id", durch die die einzelnen Zeilen eindeutig gekennzeichnet werden, und die Spalte "geometry" vom Typ ST_Point. Mit der INSERT-Anweisung wird eine Zeile in die Tabelle "z_test" eingefügt.

Mit der SELECT-Anweisung werden die Spalte "id" und die Z-Koordinate des Punktes, der mit der vorigen Anweisung eingefügt wurde, aufgelistet.

Oracle

CREATE TABLE z_test (
 id integer unique,
 geometry sde.st_point
);

INSERT INTO z_test (id, geometry) VALUES (
 1,
 sde.st_point (2, 3, 32, 5, 4326)
);
SELECT id, sde.st_z (geometry) Z_COORD
 FROM Z_TEST; 

        ID      Z_COORD

         1        32

PostgreSQL

CREATE TABLE z_test (
 id integer unique,
 geometry sde.st_point
);

INSERT INTO z_test (id, geometry) VALUES (
 1,
 sde.st_point (2, 3, 32, 5, 4326)
);
SELECT id, sde.st_z (geometry) 
 AS Z_COORD
 FROM z_test; 

        id      z_coord

         1        32

SQLite

CREATE TABLE z_test (id integer);

SELECT AddGeometryColumn(
 NULL,
 'z_test',
 'pt1',
 4326,
 'pointzm',
 'xyzm',
 'null'
);

INSERT INTO z_test (id, pt1) VALUES (
 1,
 st_point (2, 3, 32, 5, 4326)
);
SELECT id, st_z (pt1) 
 AS "The z coordinate"
 FROM z_test; 

id      The z coordinate

1        32.0

Die Funktion "ST_Z" kann auch verwendet werden, um den Koordinatenwert eines vorhandenen Punktes zu aktualisieren. In diesem Beispiel wird der Z-Koordinatenwert des ersten Punktes in "z_Test" mit "ST_Z" aktualisiert.

UPDATE z_test
 SET pt1=st_z(
  (SELECT pt1 FROM z_test where id=1), 32.04)
 WHERE id=1;

Verwandte Themen

5/10/2014