Здравствуйте!! Имеется полигон (долгота.широта), храниться в postgis 1.5 .
Как разбить его на квадратные полигоны с определённым шагом ?
Как разбить прямоугольный полигон?
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 02 окт 2011, 16:58
- Репутация: 1
- Aleksandr Dezhin
- Активный участник
- Сообщения: 244
- Зарегистрирован: 03 фев 2010, 10:47
- Репутация: 14
- Откуда: Москва
Re: Как разбить прямоугольный полигон?
Можно например так:
То есть вначале собираем сетку из полигонов 1x1 гр, и поэлементно вычисляем пересечение с исходным полигоном(в примере он берется из таблички test).
Код: Выделить всё
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)
- Вложения
-
- Что получиться в результате для полигона Украины
- ua-grid.png (23.4 КБ) 4917 просмотров
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 02 окт 2011, 16:58
- Репутация: 1
Re: Как разбить прямоугольный полигон?
Спасибо за ответ, но сетка должна быть 0,5 х 0,5 гр.,
поэтому заюзал st_translate('POLYGON', 0.5, 0.5)).
поэтому заюзал st_translate('POLYGON', 0.5, 0.5)).
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя