[PROJ] Proj-Lib 7.2 Custom EPSG Codes

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[PROJ] Proj-Lib 7.2 Custom EPSG Codes

Michael Morelli



Hi folks,


hope you are doing well!


we are about prototyping with proj-lib (Version 7.2).


1. Insert and Use a custom PCS-Code


We would like to add our own custom PCS-Codes (and GCS-Codes) with a custom authority-name.

Is it correct that the only way to add custom Codes is to insert it directly via sqllite and not via the C-API?

So for a new PCS we could add a row into the table projected_crs with auth_name = 'CUSTOM_AUTH', code = '1', name = 'a custom pcs' and text_defintion = '[WKT-Definition]'.

We could then successfully use this custom-epsg to use it as src- or tgt-Projection (CUSTOM_AUTH:1) in the function proj_create_crs_to_crs() for transforming with function proj_trans().

This worked so far.


Also using the following function worked:

PROJ_STRING_LIST projStringList = proj_get_codes_from_database (C, AnsiString ("CUSTOM_AUTH").c_str(), PJ_TYPE::PJ_TYPE_CRS, 1);


But when using the following new function (without a filter): 


PROJ_CRS_INFO** returnedList = proj_get_crs_info_list_from_database (C, AnsiString ("any").c_str(), 0, &count);


Then the Code CUSTOM_AUTH:1 was not in the returned list. Are we missing something or is this a bug?

(The custom code exists in the sqllite view: crs_view and table: projected_crs..)


2. Replace GCS of PCS

In some cases the end-user should be able to select a PCS and then replace the GCS of this PCS with another different GCS (would result in a new custom PCS).

In the C-API we could not find any setter-functions to set a GCS to an existing PCS PJ*-Object.

Is there an elegant way to do this?


Thx in advance for your interest. 


Kind regards,




PROJ mailing list
[hidden email]