Changing Map Projection Dynamically
Jan Hartmann
j.l.h.hartmann at UVA.NL
Fri Jul 13 06:53:31 PDT 2007
Richard Greenwood wrote:
> On 7/12/07, Frank Warmerdam <warmerdam at pobox.com> wrote:
>> Bill Thoen wrote:
>> > This has probably been asked before, but I can't find any info on it.
>> > Basically, I'd like to know how to change the map projection in
>> > MapServer as I zoom in to a larger scale map view. Specifically, I
>> start
>> > at a national scale using a Lambert projection, but when I zoom into a
>> > state scale, I'd like to choose a more appropriate projection (like
>> > State Plane).
>> >
>> > Can this be done easily with a map file or an HTML template? What's the
>> > best way to solve this problem?
>>
>> Bill,
>>
>> I likely shouldn't speak up since I don't really know the best way to do
>> this. But I do not believe it can be done entirely from the server side
>> with mapserv cgi and a map file. Either you would have to have a
>> mapscript
>> application on the server that decided at some point to switch
>> projections
>> or you would have to engineer all the logic on the client side.
>>
>> With WMS you can request specific projections using the SRS (or CRS?)
>> item in the request. With the non-OGC "classic" mapserver interface
>> there is also a way of overriding the map projection which I think has
>> been recently discussed on this list though I don't know the exact
>> details.
>>
>> But one important thing to remember is that the region requested is going
>> to have to match the projection which means there has to be quite a bit
>> of smarts either in the client (to change the coordinate system of the
>> BBOX)
>> or in a mapscript script on the server to reproject the requested box
>> into
>> the alternate projection. And in that case the returned window won't
>> be exactly what was requested.
>>
>> Best regards,
>> --
>> ---------------------------------------+--------------------------------------
>>
>> I set the clouds in motion - turn up | Frank Warmerdam,
>> warmerdam at pobox.com
>> light and sound - activate the windows | http://pobox.com/~warmerdam
>> and watch the world go round - Rush | President OSGeo,
>> http://osgeo.org
>>
>
> Bill,
>
> You have a pretty interesting problem. Frank summarized the challenges
> that you may encounter . If you decide to do it on the client side,
> there is a JavaScript port of some of the Proj.4 code at:
> http://svn.codehaus.org/mapbuilder/cscs/trunk/cscs/
> that might be useful. I am particularly interested determining an
> appropriate coordinate system based on location.
>
> Please keep us posted.
> Rich
>
At the Server-side you can do a lot with PHP/MapScript. If you have
PostGIS running, you can install the EPSG database in it (see e.g.
http://docs.codehaus.org/display/GEOTOOLS/How+to+install+the+EPSG+database+in+PostgreSQL
You can query this database for regions of interest for certain
projections, and get their extents. A bit of work, as this is not
exactly database with a user-friendly structure, but doable and the
principles aren't hard.
Jan
More information about the MapServer-users
mailing list