Đây là một hàm trả về được thiết lập ST_CreateFishnetđể tạo ra một lưới 2D của hình học đa giác:
CREATE OR REPLACE FUNCTION ST_CreateFishnet(
nrow integer, ncol integer,
xsize float8, ysize float8,
x0 float8 DEFAULT 0, y0 float8 DEFAULT 0,
OUT "row" integer, OUT col integer,
OUT geom geometry)
RETURNS SETOF record AS
$$
SELECT i + 1 AS row, j + 1 AS col, ST_Translate(cell, j * $3 + $5, i * $4 + $6) AS geom
FROM generate_series(0, $1 - 1) AS i,
generate_series(0, $2 - 1) AS j,
(
SELECT ('POLYGON((0 0, 0 '||$4||', '||$3||' '||$4||', '||$3||' 0,0 0))')::geometry AS cell
) AS foo;
$$ LANGUAGE sql IMMUTABLE STRICT;
trong đó nrowvà ncollà số lượng hàng và cột, xsizevà ysizelà độ dài của kích thước ô, và tùy chọn x0và y0là tọa độ cho góc dưới bên trái.
Kết quả là rowvà các colsố, bắt đầu từ 1 ở góc dưới bên trái và geomđa giác hình chữ nhật cho mỗi ô. Ví dụ:
SELECT *
FROM ST_CreateFishnet(4, 6, 10, 10) AS cells;
row | col | geom
-----+-----+--------------------------------
1 | 1 | 0103000000010000000500000000...
2 | 1 | 0103000000010000000500000000...
3 | 1 | 0103000000010000000500000000...
4 | 1 | 0103000000010000000500000000...
1 | 2 | 0103000000010000000500000000...
2 | 2 | 0103000000010000000500000000...
...
3 | 6 | 0103000000010000000500000000...
4 | 6 | 0103000000010000000500000000...
(24 rows)
Hoặc để tạo một bộ sưu tập hình học duy nhất cho toàn lưới:
SELECT ST_Collect(cells.geom)
FROM ST_CreateFishnet(4, 6, 10, 10) AS cells;

Bạn có thể thêm x0/ y0offset gốc (chúng được mặc định là 0).