[MapServer-dev] Custom Projections in MapServer 8 / Proj 6+

Seth G sethg at geographika.co.uk
Sat Jan 14 03:00:53 PST 2023


Hi all,

This may be a question for the users list (and has come up before, although with a solution of setting the projection using inline parameters [1]). It is no longer clear from the MapServer docs how to setup a custom projection to be used within a Mapfile. 

The pull request #6484 [2] "Accept ESRI:XXX (or other autorities) as value for PROJECTION blocks and wxs_srs metadata" allows any projection codes to be sent from the client (fixing #5957 which is excellent). 

In Proj4 adding new projections was as simple as adding a new string to the epsg text tile in the PROJ_LIB directory. With Proj6+ the proj.db Sqlite database is used. I believe the text files are no longer used at all (although the GIS Internals proj7/share includes an other.extra file in the same format - is this also ignored?). 

So to add a new projection would require adding a new record to proj.db. 
The docs at https://proj.org/apps/projinfo.html refer to a `--dump-db-structure` parameter: 

>    New in version 8.1.
>
>    Outputs the sequence of SQL statements to create a new empty valid auxiliary database. 
>	This option can be specified as the only switch of the utility. 
>	If also specifying a CRS object and the --output-id option, the 
>	definition of the object as SQL statements will be appended.

There is also a new environment variable (see Even's comment at [3]) - PROJ_AUX_DB that allows this to be read by Proj. 

- Is this the recommended approach for MapServer users? (Import any new projections into a new proj_extra.db and setting this as an environment variable). 
- What is the recommended approach for MapServer deployments with PROJ >=6 and <=9?
- Is PROJ_AUX_DB a setting that can be added to the MapServer CONFIG file?
- Would it be worth adding  the PROJ and GDAL versions to the mapserver -v output as several of these options rely on newer versions of PROJ?

Any insight on the above would be most appreciated. I can look at updating docs accordingly.

Seth

[1] https://lists.osgeo.org/pipermail/mapserver-users/2022-January/082480.html
[2] https://github.com/MapServer/MapServer/pull/6484
[3] https://github.com/OSGeo/PROJ/pull/2577#issuecomment-799444959

--
web:https://geographika.net
twitter: @geographika


More information about the MapServer-dev mailing list