Change Projection on-the-fly; Using PostGIS - How?

Stefan Schwarzer stefan.schwarzer at GRID.UNEP.CH
Fri Apr 20 05:02:47 EDT 2007


Hi there,

i am struggling since quite a while to set-up a change-projection-on- 
the-fly possibility for our website mapserver. But somehow, I don't  
really have the clue how to do it. Now, making things "worse" (more  
complicated for me) we have migrated from MySql to Postgres/Postgis.

------------------------------------------------------------------------ 
----

So, first question would be: What code to use to change the  
projection via PHP/Mapscript, should be something like this, I guess:

$newproj=ms_newprojectionObj("proj=robin,lon_0=0,x_0=0,y_0=0");
$latlon=ms_newprojectionObj("+proj=longlat +ellps=WGS84 +datum=WGS84 
+no_defs");
$oldext=ms_newRectObj();
$oldext->setextent(-180,-90,180,90);  //this is the extent of my map  
in geographic
$oldext->project($latlon,$newproj);  //reproject to Robinson
$map->setextent($oldext->minx,$oldext->miny,$oldext->maxx,$oldext- 
 >maxy);  //set the new map extent

But I guess, something is still missing... (What about $map- 
 >setProjection ?)

------------------------------------------------------------------------ 
----

And the second question is: As my mapfile queries the postgis  
database, using "SRID", I guess I need to change that one too, then?  
Instead of 4326 for Geographic I would have to use the one for  
Robinson (or Mollweide or so) ??

------------------------------------------------------------------------ 
----

Thanks for giving me any hints...

Stef



More information about the mapserver-users mailing list