Разбить полигон на ячейки
- Svility
- Участник
- Сообщения: 55
- Зарегистрирован: 24 окт 2017, 19:41
- Репутация: 5
- Откуда: 32637
Разбить полигон на ячейки
Добрый день. Подскажите, с помощью какого набора команд можно разбить полигон на ячейки нужного размера? см. вложение
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Разбить полигон на ячейки
ST_SquareGrid, ST_Intersection
- Svility
- Участник
- Сообщения: 55
- Зарегистрирован: 24 окт 2017, 19:41
- Репутация: 5
- Откуда: 32637
-
- Участник
- Сообщения: 86
- Зарегистрирован: 31 янв 2012, 10:51
- Репутация: 51
Re: Разбить полигон на ячейки
Лет 10 назад понадобилась планшетная сетка, пришлось написать функцию по этому поводу. Подойдет функция и для вашего случая.
Код: Выделить всё
create or replace function
make_grid(xmin int,
ymin int,
xmax int,
ymax int,
step int,
point boolean default false)
returns table (geom geometry)
as $$
begin
if point then
return query
select st_point(x,y) from
(select * from generate_series(xmin, xmax, step) x,
generate_series(ymin, ymax, step) y) gridcoord;
else
return query
select ST_MakeEnvelope(x, y, x+step, y+step, -1) from
(select * from generate_series(xmin, xmax, step) x,
generate_series(ymin, ymax, step) y) gridcoord;
end if;
end;
$$ language plpgSQL;
comment on function make_grid(int, int, int, int, int, boolean) is
'Функция возвращает таблицу геометрий, образующих сетку из точек
или полигонов (квадратов).
аргументы (Xmin, Ymin, Xmax, Ymax, шаг сетки, флаг default false )
флаг - true - сетка строится из точек, false - из квадратов';
- Svility
- Участник
- Сообщения: 55
- Зарегистрирован: 24 окт 2017, 19:41
- Репутация: 5
- Откуда: 32637
Re: Разбить полигон на ячейки
Код: Выделить всё
with mgrid as (
select st_transform(geom, 4326) geom
from my_poligon where id_=1
)
select
make_grid(
st_xmin(geom)::int,
st_ymin(geom)::int,
st_xmax(geom)::int,
st_ymax(geom)::int,
1,
false
) geom
from mgrid;
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Разбить полигон на ячейки
Использовать метрическую проекцию, я думаю
Кто сейчас на конференции
Сейчас этот форум просматривают: Amazon [Bot] и 2 гостя