Страница 1 из 1

Как разбить прямоугольный полигон?

Добавлено: 02 окт 2011, 17:20
VolandF
Здравствуйте!! Имеется полигон (долгота.широта), храниться в postgis 1.5 .
Как разбить его на квадратные полигоны с определённым шагом ?

Re: Как разбить прямоугольный полигон?

Добавлено: 02 окт 2011, 20:23
Aleksandr Dezhin
Можно например так:

Код: Выделить всё

SELECT ST_Intersection(test.geom, box.geom)
FROM test INNER JOIN
  (
    SELECT ST_SetSRID(ST_MakeBox2D(ST_Point(x,y), ST_Point(x+1, y+1)), 4326) AS geom
    FROM generate_series(-180, 180-1, 1) x, generate_series(-90, 90-1, 1) y
  ) box ON ST_Intersects(test.geom, box.geom)
То есть вначале собираем сетку из полигонов 1x1 гр, и поэлементно вычисляем пересечение с исходным полигоном(в примере он берется из таблички test).

Re: Как разбить прямоугольный полигон?

Добавлено: 02 окт 2011, 21:40
VolandF
Спасибо за ответ, но сетка должна быть 0,5 х 0,5 гр.,
поэтому заюзал st_translate('POLYGON', 0.5, 0.5)).