ST_Z

定義

ST_Z は、ST_Point を入力パラメータとして、その Z(標高)座標を返します。SQLite では、ST_Z は ST_Point の Z 座標を更新することもできます。

構文

Oracle および PostgreSQL

sde.st_z (geometry1 sde.st_point)

SQLite

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

戻り値のタイプ

Oracle

Number

PostgreSQL

Integer

SQLite

ST_Z を使用してポイントの Z 座標を返す場合、Double precision が返されます。ST_Z を使用してポイントの Z 座標を更新する場合、geometryblob が返されます。

行を一意に識別する gid 列と、geometry ポイント列を持つ z_test テーブルを作成します。INSERT ステートメントは、z_test テーブルに行を挿入します。

SELECT ステートメントは、前のステートメントで挿入されたポイントの id 列と倍精度の Z 座標をリストします。

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

ST_Z 関数を使用して、既存のポイントの座標値を更新することもできます。この例では、ST_Z を使用して、z_test の最初のポイントの Z 座標値を更新します。

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

関連トピック

5/25/2014