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

Ответить
VolandF
Интересующийся
Сообщения: 23
Зарегистрирован: 02 окт 2011, 16:58
Репутация: 1

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

Сообщение VolandF » 02 окт 2011, 17:20

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

Аватара пользователя
Aleksandr Dezhin
Активный участник
Сообщения: 244
Зарегистрирован: 03 фев 2010, 10:47
Репутация: 14
Откуда: Москва

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

Сообщение Aleksandr Dezhin » 02 окт 2011, 20:23

Можно например так:

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

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).
Вложения
ua-grid.png
Что получиться в результате для полигона Украины
ua-grid.png (23.4 КБ) 4878 просмотров

VolandF
Интересующийся
Сообщения: 23
Зарегистрирован: 02 окт 2011, 16:58
Репутация: 1

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

Сообщение VolandF » 02 окт 2011, 21:40

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

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей