[mapserver-users] MapServer 4.8.3: MapScript setProjection

Daniel Morissette dmorissette at mapgears.com
Wed Apr 2 11:44:29 EDT 2008


Simon,

Are you also setting the "wms_srs" metadata in the map's web object? If 
not then perhaps try setting the "wms_srs" metadata in the web object to 
"EPSG:27700" and see if that helps.

Daniel


Simon Greig wrote:
> 
> Hi,
> 
> We have made the changes to remove the explicit layer setProjection and 
> allow each layer to inherit the projection from its map.  
> 
> However for some vector layers we consistently get:
> "Layer must have an EPSG or AUTO projection code (in its PROJECTION 
> object or wms_srs metadata)"
> 
> A layer either works or does not work, but 30% of our layers fail with 
> this error.  Also layers that work or fail differ between environments.
> 
> We don't use a map file for layer data (just for mapObj config) as all 
> of our layer configurations are stored in a database.  Our WMS_LAYERS 
> table stores all of the data that you would normally see within the 
> LAYERS section of a mapfile.
> 
> I have checked the PROJECTION setting and for all layers it is set to 
> "init='epsg:27700'".
> 
> Our code manually constructs mapObj and layerObj objects taking the 
> configuration from our config database.
> 
> When our code constructs the layerObj JNI objects it checks the 
> PROJECTION value from the database and if the DB value is the same as 
> the mapObj projection then the code skips the layerObj.setProjection 
> because it assumes that the layer will inherit the projection from the 
> mapObj used in the constructor of the layerObj.
> 
> None of the layers in the list are WMS layers and the layers that fail 
> are all going to our Oracle Spatial database.
> 
> I have asked the database team to investigate the differences between 
> layers that work and fail in the same environment and layers that work 
> in one environment and fail in another.  I have inspected the 
> development database and a I cannot see anything different between a 
> layer that works and one that does not.
> 
> e.g. If I simulate the mapfile syntax for our layers for the benefit of 
> the email, if we had defined our layers in the mapfile they would look 
> like this:
> 
> LAYER
>    NAME  "2001UrbanAreas(Census)"
>    CONNECTION "<usr>/<pwd>@SPR01"
>    STATUS ON
>    TYPE POLYGON
>    DATA "GEOMETRY FROM OTHERAGENCIES.DCLG00000001 USING SRID 81989"
>    MAXSCALE 99999999
>    MINSCALE 0
>    TRANSPARENCY 60
>    PROJECTION "init=epsg:27700"
> END
> 
> LAYER
>    NAME  "EnglishHeritageRegions"
>    CONNECTION "<usr>/<pwd>@SPR01"
>    STATUS ON
>    TYPE POLYGON
>    DATA "GEOMETRY FROM OTHERAGENCIES.ENGH00000001 USING SRID 81989"
>    MAXSCALE 99999999
>    MINSCALE 0
>    TRANSPARENCY 60
>    PROJECTION "init=epsg:27700"
> END
> 
> 
> 2001Urban layer fails with the projection error, the 
> EnglishHeritageRegions works for the exact same bounding box/scale.
>    
> 
> 
> We have not applied the METADATA change as the layers are not external 
> WMS layers and presumably setting the METADATA wms_srs would provide the 
> same effect as calling layerObj.setProjection?
> 
> If we restore the code to setProjection for every layer then the errors 
> go away - but our performance goes down.
> 
> 
> Does any of this description allow anyone to suggest areas that I should 
> get the database team to focus on?
> 
> Any advice appreciated :-)
> 
> Simon
> 
> 
> ------------------------------------------------------------------------
> 
> /
> /
> 
> /Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number 
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU/
> 
> 
> 
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users


-- 
Daniel Morissette
http://www.mapgears.com/


More information about the mapserver-users mailing list