[mapserver-users] Using mapserver with EPSG:900913

Subha Ramakrishnan subha at gslab.com
Wed Aug 20 11:30:00 EDT 2008


Hi :
We are building a map based web portal using openlayers ,UMN 
mapserver[5.0.2] and postgis DB.We use google as the base map through 
openlayers.We need to overlay our custom layers from the db on top of 
this base map, for that we are using Mapserver (is run on a FC7 linux 
machine). It is observed that by default openlayers converts google 
projection [900913] to EPSG:4326 when the base map is fetched.

Now when we try to overlay an image that the mapserver generates, there 
is a mismatch on the base map, though mapserver uses epsg::4326. After 
searching over the internet theere seems to be only one solution which 
is displaying the base map itself in epsg:900913 and emit the mapserver 
image also in the same projection. The problem is we are not able to 
generate an image through mapserver in epsg::900913.

We have taken following measures untill now :

1> For using epsg:900913 projection in mapserver, we have added 
following entry in the /usr/local/share/proj/epsg file.[proj version 4.6]
  "<900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 
+x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs <>"  2> We have 
added following entry in the "in the spatial_ref_sys table in postgis DB.
"900913 ,'EPSG',900913,'GEOGCS["WGS 84", DATUM["World Geodetic System 
1984", SPHEROID["WGS 84", 6378137.0, 
298.257223563,AUTHORITY["EPSG","7030"]], 
AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich", 0.0, 
AUTHORITY["EPSG","8901"]], UNIT["degree",0.017453292519943295], 
AXIS["Longitude", EAST], AXIS["Latitude", 
NORTH],AUTHORITY["EPSG","4326"]], 
PROJECTION["Mercator_1SP"],PARAMETER["semi_minor", 6378137.0], 
PARAMETER["latitude_of_origin",0.0], PARAMETER["central_meridian", 0.0], 
PARAMETER["scale_factor",1.0], PARAMETER["false_easting", 0.0], 
PARAMETER["false_northing", 0.0],UNIT["m", 1.0], AXIS["x", EAST], 
AXIS["y", NORTH],AUTHORITY["EPSG","900913"]] |','+proj=merc +a=6378137 
+b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m 
+nadgrids=@null +no_defs');  The mapfile is as follows: (With this, We 
get a blank image without any exception.)
MAP
NAME MAP_POINTS
SIZE 725 800
IMAGETYPE PNG
EXTENT 6679169.446666667 -7.081154550627918 11131949.077777777 
4865942.278825832
 WEB
 METADATA
     wms_srs "EPSG:4326 EPSG:900913"
 END
 END
PROJECTION
"init=epsg:900913"
END
LAYER
 CONNECTIONTYPE postgis
 NAME indiastates
 CONNECTION "user=postgres dbname=test host=localhost"
 TYPE POINT
 STATUS DEFAULT
 #DATA "topology from states"
 DATA "topology from india_states using unique id using SRID -1"
 CLASS
     COLOR 255 0 0
 END
END
END

The client (openlayer) code is as follows :
          options = {
              projection: new OpenLayers.Projection("EPSG:900913"),
              displayProjection: new OpenLayers.Projection("EPSG:4326"),
              units: "m",
              maxResolution: 156543.0339,
              maxExtent: new OpenLayers.Bounds(-20037508, -20037508,
                                               20037508, 20037508.34)
          };
           map = new OpenLayers.Map('map', options);
           var gphy = new OpenLayers.Layer.Google("Google 
Physical",{type: G_PHYSICAL_MAP,'sphericalMercator': true});             
map.addLayers(gphy);
          var lonLat = new OpenLayers.LonLat(82, 23) ;
          
lonLat.transform(map.displayProjection,map.getProjectionObject());
         map.setCenter(lonLat,5);
           var wms ;
         wms = new OpenLayers.Layer.WMS( layername,
        "http://localhost/cgi-bin/mapserv?",
        { map: 'demo.map',
          projection:"EPSG:900913",
          transparent: 'true', layers: 'indiastates',
          format: 'image/png'},{singleTile: 'true'} );
             map.addLayer(twms1);

Can anyone help us in any way?
Also,
          We have tried overlaying layer fetched from our map server on 
different basemaps from (meta carta and tera pages) and have found it 
overlays perfectly  So clearly there is is problem overlaying on google 
map through openlayers in epsg : 4326.
Thanks and sorry for the long mail.
Expecting a reply.

Subha.


More information about the mapserver-users mailing list