Добрый день.
Подскажите, какой функцией можно разделить полигон на (+/-) равные части? На 2,3 или 6
Как разделить полигон на части
- Svility
- Участник
- Сообщения: 55
- Зарегистрирован: 24 окт 2017, 19:41
- Репутация: 5
- Откуда: 32637
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 14 окт 2023, 05:51
- Репутация: 0
- Откуда: Белгород
Re: Как разделить полигон на части
Если еще актуально:
Код: Выделить всё
CREATE TABLE tmp (
id int GENERATED BY DEFAULT AS IDENTITY,
geom GEOMETRY
);
INSERT INTO tmp (geom)
SELECT geom
FROM (VALUES ('POLYGON ((10 9, 10 10, 11 10, 11 9, 10 9))'::geometry),
('MULTIPOLYGON (((-1 8, -1 -5, -1.5 -5, -1.5 8, -1 8)), ((-4 7, -2 7, -2 4, -4 4, -4 7)))'::geometry),
('POLYGON ((-4.5 2.5, -8 2.5, -8 4, -4.5 4, -6 3.25, -4.5 2.5))'::geometry),
('POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))'::geometry),
('POLYGON ((8 8, 8 13, 12 13, 12 8, 8 8))'::geometry),
('POLYGON ((10 11, 10 12, 11 12, 11 11, 10 11))'::geometry),
('MULTIPOLYGON (((-8 2, -7 2, -7 1, -8 1, -8 2)), ((-4 2, -3 2, -3 1, -4 1, -4 2)))'::geometry),
('POLYGON ((-5 0, -5 5, 0 5, 0 0, -5 0))'::geometry),
('POLYGON ((2 3, 2 7, 7 7, 7 3, 2 3))'::geometry),
('POLYGON ((-4 4, -4 7, -2 7, -2 4, -4 4))'::geometry)
) AS st (geom);
SELECT row_number() OVER() AS idgrid, squares.geom AS geom_grid
FROM tmp AS pts
INNER JOIN
ST_HexagonGrid(6, pts.geom) AS squares
ON ST_Intersects(pts.geom, squares.geom)
GROUP BY squares.geom;
-
- Гуру
- Сообщения: 1089
- Зарегистрирован: 30 окт 2014, 16:33
- Репутация: -248090259
- Откуда: г. Жуковский МО
Re: Как разделить полигон на части
ИМХО, за 3 года ТС нашел решение.))
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей