Код: Выделить всё
select kladr_reg, AsText(ST_Transform(ST_Envelope(ST_UNION(the_geom)),900913)) from russia_bound group by kladr_reg;
AsText() - функция, возвращающая результат в формате WKT;
ST_Transform() - функция, трансформирующая геометрию из одной СК в другую (в нашем случае в 900913);
ST_Envelope() - функция, возвращающая ограничивающий прямоугольник;
ST_UNION() - агрегатная функция, объединяющая несколько геометрий в одну, позволяет использовать оператор GROUP BY, c помощью этой связки можно объединять и группировать геометрии по какому-либо полю, в нашем случае по полю kladr_reg.
Экспортируем полученный результат в html файл с помощью pgadmin (см. вложение). Получившиеся полигоны представлены 5 точками, нам же нужны только 1 и 3, после недолгих манипуляций в текстовом редакторе + OO Calc, получили необходимый результат:
Код: Выделить всё
Алтайский край 8660903.02052795,6556005.92007741,9707620.64496107,7263347.5582872
Амурская область 13321046.1183928,6249856.64565219,15023799.8254891,7768639.23017237
Архангельская область 3951362.4931338,8544634.37946939,5618324.56173557,10094463.2961228
Астраханская область 5006654.65353989,5648771.58629487,5517321.94651,6252829.71473425
...
Код: Выделить всё
ogr2ogr -f "ESRI Shapefile" -t_srs "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs" -s_srs "EPSG:4326" output.shp input.shp