Do doc do PostGIS :
"ST_Affine - Aplica uma transformação afim 3D à geometria para fazer coisas como traduzir, girar, dimensionar em uma única etapa."
Aí vem um exemplo bastante sujo.
Há dois anos, usei-o para construir um mapa de imagem html com capacidade de clique em uma imagem gif fornecida pelo mapserver. A consulta enviada ao PostGIS faz um buffer simplificado em torno da geometria na escala de pixels direita e recalcula, pois o mapa da imagem tem sua origem no canto superior esquerdo e a projeção do mapa tem sua origem, é claro, no canto inferior esquerdo. Então eu apenas criei o mapa de imagem escrevendo a string retornada com asp, ou se fosse php.
Eu cavei na poeira suja e encontrei o seguinte:
SELECT gid,
replace(
astext(
st_affine(
ST_SnapToGrid(
st_buffer(
st_transscale(
st_simplify(
(st_dump(the_geom)).geom
, (st_length(the_geom)/50)::integer)
,(-" & minx & "),(-" & miny & "),(500::double precision/" & deltax & "),(500::double precision/" & deltax & "))
,5)
,1,1)
,1,0,0,-1,0,300)
)
,' ',',')
as thetext
from
mytable where gid in (" & theList & ") order by st_length(the_geom);
Não é bonito, mas na verdade funcionou muito bem e serviu por algum tempo.
/ Nicklas