ST_MakeGrid

Signatures

TABLE[THE_GEOM, ID, ID_COL, ID_ROW]
    ST_MakeGrid(GEOMETRY geom, DOUBLE deltaX, DOUBLE deltaY);
TABLE[THE_GEOM, ID, ID_COL, ID_ROW]
    ST_MakeGrid(VARCHAR tableName, DOUBLE deltaX, DOUBLE deltaY);

Description

Calculates a regular grid of POLYGONs based on a single Geometry geom or a table tableName of Geometries with deltaX and deltaY as offsets in the Cartesian plane.

Examples

Using a Geometry

CREATE TABLE grid AS SELECT * FROM
    ST_MakeGrid('POLYGON((0 0, 2 0, 2 2, 0 0))'::GEOMETRY, 1, 1);
SELECT * FROM grid;

Answer:

THE_GEOM

ID

ID_COL

ID_ROW

POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))

0

1

1

POLYGON((1 0, 2 0, 2 1, 1 1, 1 0))

1

2

1

POLYGON((0 1, 1 1, 1 2, 0 2, 0 1))

2

1

2

POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))

3

2

2

Using a table

CREATE TABLE TEST(THE_GEOM GEOMETRY);
INSERT INTO TEST VALUES ('POLYGON((0 0, 2 0, 2 2, 0 0))');
CREATE TABLE grid AS SELECT * FROM
    ST_MakeGrid('TEST', 1, 1);
SELECT * FROM grid;

Answer:

THE_GEOM

ID

ID_COL

ID_ROW

POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))

0

1

1

POLYGON((1 0, 2 0, 2 1, 1 1, 1 0))

1

2

1

POLYGON((0 1, 1 1, 1 2, 0 2, 0 1))

2

1

2

POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))

3

2

2

Using a subquery to construct a Geometry

CREATE TABLE TEST2(THE_GEOM GEOMETRY);
INSERT INTO TEST2 VALUES
    ('POLYGON((0 0, 2 0, 2 2, 0 0))'),
    ('POLYGON((1 1, 2 2, 1 2, 1 1))');
CREATE TABLE grid AS SELECT * FROM
    ST_MakeGrid((SELECT ST_Union(ST_Accum(THE_GEOM)) FROM TEST2),
                1, 1);
SELECT * FROM grid;

Answer:

THE_GEOM

ID

ID_COL

ID_ROW

POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))

0

1

1

POLYGON((1 0, 2 0, 2 1, 1 1, 1 0))

1

2

1

POLYGON((0 1, 1 1, 1 2, 0 2, 0 1))

2

1

2

POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))

3

2

2

See also