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

数值

PostgreSQL

整型

SQLite

当 ST_Z 用于返回点的 z 坐标时,返回双精度型。当 ST_Z 用于更新点的 z 坐标时,返回 geometryblob。

示例

创建 z_test 表,表中包含两列数据:用于唯一标识行的 ID 列,以及几何点列。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