Aus dem PostGIS-Dokument :
"ST_Affine - Wendet eine affine 3D-Transformation auf die Geometrie an, um Dinge wie Übersetzen, Drehen und Skalieren in einem Schritt auszuführen."
Hier kommt ein ziemlich schmutziges Beispiel.
Vor zwei Jahren habe ich damit eine klickbare HTML-Image-Map auf einem vom Mapserver gelieferten GIF-Image erstellt. Die an PostGIS gesendete Abfrage erstellt einen vereinfachten Puffer um die Geometrie in der rechten Pixelskala und berechnet neu, da die Imagemap ihren Ursprung in der oberen linken Ecke hat und die Projektion der Karte ihren Ursprung natürlich in der unteren linken Ecke hat. Dann habe ich einfach die Image-Map erstellt, indem ich den zurückgegebenen String mit asp geschrieben habe oder ob es PHP war.
Ich grub mich in den schmutzigen Staub und fand Folgendes:
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);
Nicht schön, aber es hat wirklich sehr gut funktioniert und einige Zeit gedient.
/ Nicklas