It really depends on the capabilities of the mapserver as to what CRSes it supports (in the WMS 1.3.0 spec, CRS
is used as the parameter instead of SRS
, but they're essentially the same thing for your purposes). When you make a GetCapabilities request, part of the layers
tag will be one or more crs
tags which will list the CRSes supported by that layer. The WMS spec describes the CRS
, EPSG
, and AUTO
namespaces (so your CRS parameter might look like CRS=CRS:1
or CRS=EPSG:4326
), but I think the server is free to use whatever it likes. Practically speaking however, you'll rarely see anything other than the EPSG
namespace.
But that said, if you don't mind getting your hands dirty, and you have a server to run it on, one possibility would be to set up your own MapServer that becomes a WMS client for the originating server - a sort of proxy server. You can then provide it whatever projection you like using the PROJECTION
keyword.
This does mean however that a client application will not be able to get at the GetCapabilites metadata for the originating server unless you write some Javascript or similar to communicate with both servers. Alternatively, you could write some pass-through code on your server that modifies requests and/or responses, so it masquerades more completely as the originating server.