ST_IsEmpty
Definition
ST_IsEmpty returns 1 (Oracle and SQLite) or t (PostgreSQL) if the ST_Geometry object is empty; otherwise, it returns 0 (Oracle and SQLite) or f (PostgreSQL).
Syntax
Oracle and PostgreSQL
sde.st_isempty (geometry1 sde.st_geometry)
SQLite
st_isempty (geometry1 geometryblob)
Return type
Boolean
Example
The CREATE TABLE statement below creates the empty_test table with geotype, which stores the data type of the subclasses stored in the g1 column.
The INSERT statements insert two records for the geometry subclasses point, linestring, and polygon: one that is empty and one that is not.
The SELECT query returns the geometry type from the geotype column and the results of the ST_IsEmpty function.
Oracle
CREATE TABLE empty_test (
geotype varchar(20),
g1 sde.st_geometry
);
INSERT INTO EMPTY_TEST VALUES (
'Point',
sde.st_pointfromtext ('point (10.02 20.01)', 4326)
);
INSERT INTO EMPTY_TEST VALUES (
'Point',
sde.st_pointfromtext ('point empty', 4326)
);
INSERT INTO EMPTY_TEST VALUES (
'Linestring',
sde.st_linefromtext ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO EMPTY_TEST VALUES (
'Linestring',
sde.st_linefromtext ('linestring empty', 4326)
);
INSERT INTO EMPTY_TEST VALUES (
'Polygon',
sde.st_polyfromtext ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO EMPTY_TEST VALUES (
'Polygon',
sde.st_polyfromtext('polygon empty', 4326)
);
SELECT geotype, sde.st_isempty (g1) Is_it_empty
FROM EMPTY_TEST;
GEOTYPE Is_it_empty
Point 0
Point 1
Linestring 0
Linestring 1
Polygon 0
Polygon 1
PostgreSQL
CREATE TABLE empty_test (
geotype varchar(20),
g1 sde.st_geometry
);
INSERT INTO empty_test VALUES (
'Point',
sde.st_point ('point (10.02 20.01)', 4326)
);
INSERT INTO empty_test VALUES (
'Point',
sde.st_point ('point empty', 4326)
);
INSERT INTO empty_test VALUES (
'Linestring',
sde.st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO empty_test VALUES (
'Linestring',
sde.st_linestring ('linestring empty', 4326)
);
INSERT INTO empty_test VALUES (
'Polygon',
sde.st_polygon ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO empty_test VALUES (
'Polygon',
sde.st_polygon ('polygon empty', 4326)
);
SELECT geotype, sde.st_isempty (g1)
AS Is_it_empty
FROM empty_test;
geotype is_it_empty
Point f
Point t
Linestring f
Linestring t
Polygon f
Polygon f
SQLite
CREATE TABLE empty_test (
geotype text(20)
);
SELECT AddGeometryColumn (
NULL,
'empty_test',
'g1',
4326,
'geometry',
'xy',
'null'
);
INSERT INTO empty_test VALUES (
'Point',
st_point ('point (10.02 20.01)', 4326)
);
INSERT INTO empty_test VALUES (
'Point',
st_point ('point empty', 4326)
);
INSERT INTO empty_test VALUES (
'Linestring',
st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO empty_test VALUES (
'Linestring',
st_linestring ('linestring empty', 4326)
);
INSERT INTO empty_test VALUES (
'Polygon',
st_polygon ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01))', 4326)
);
INSERT INTO empty_test VALUES (
'Polygon',
st_polygon ('polygon empty', 4326)
);
SELECT geotype, st_isempty (g1)
AS "Is_it_empty"
FROM empty_test;
GEOTYPE Is_it_empty
Point 0
Point 1
Linestring 0
Linestring 1
Polygon 0
Polygon 1
Related Topics
6/19/2015