Z dokumentu PostGIS :
„ST_Affine - Stosuje transformację afiniczną 3d do geometrii, aby wykonywać takie czynności jak translacja, obracanie, skalowanie w jednym kroku.”
Oto dość brudny przykład.
Dwa lata temu użyłem go do zbudowania mapy obrazu HTML z możliwością kliknięcia na obrazie gif dostarczonym z serwera map. Zapytanie wysłane do PostGIS tworzy uproszczony bufor wokół geometrii w prawej skali pikseli i ponownie oblicza, ponieważ mapa obrazu ma swój początek w lewym górnym rogu, a projekcja mapy ma swój początek oczywiście w lewym dolnym rogu. Następnie właśnie utworzyłem mapę obrazu, pisząc zwrócony ciąg za pomocą asp lub jeśli był to php.
Wykopałem brudny pył i znalazłem to:
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);
Nie piękny, ale tak naprawdę działał bardzo dobrze i służył przez pewien czas.
/ Nicklas