Why PostGIS sets a max value for SRID IDs?
G. Allegri
giohappy at gmail.com
Mon Oct 27 06:15:31 PDT 2025
Thanks Darafei,
The scenario is the following.
I have a custom proj.db which contains custom CRSs and transformations
defined with auth ids beyond the PostGIS limit.
This proj.db is employed in several contexts, including GDAL scripts, QGIS,
and Geoserver, with the Proj lib and Geotools handling the custom CRSs as
expected.
The problem happens when I need to handle the data with PostGIS. I must
configure the custom CRSs (it's still not totally clear to me the
relationship between the spatial_ref_sys and the proj.db in PostGIS by the
way) and assign them to my data.
The various softwares write and read data to/from PostGIS and when it comes
to setting/reading the SRIDs, the problems with the mismatched IDs arise.
Giovanni
Il lun 27 ott 2025, 13:17 Darafei "Komяpa" Praliaskouski <me at komzpa.net> ha
scritto:
> Hi,
>
> The technical reason is that SRID gets packed into geometry headers and
> there's only 21 bits there for it.
> PostGIS reserves the values above 998999 for internal transformation
> pipelines that support geography data type
> A change to this will require significant redesign in the way PostGIS
> handles SRIDs.
> If you need this, sharing more information about the actual usage
> scenarios will be helpful so a new design can be created.
>
> On Mon, Oct 27, 2025 at 1:46 PM G. Allegri <giohappy at gmail.com> wrote:
>
>> Hello list,
>>
>> I'm working on two projects where custom CRSs, with custom authorities
>> and IDs are provided.
>> Both projects use IDs with numbers beyond SRID_USR_MAX=998999 [1], which
>> is hardcoded in PostGIS for the spatial_ref_sys id field values.
>> I can use the auth_id, of course, but having to reassign an id < 998999
>> is a bit problematic for two reasons:
>>
>> - I have custom transformation pipelines defined inside the proj.db,
>> where the custom IDs are defined for CRSs.
>> - other softwares (QGIS, Geoserver) can use the custom IDs but they
>> cannot match the geometries SRIDs returned PostGIS
>>
>> I wonder if there's a technical reason for the SRID_USR_MAX constant, and
>> if there's any change to remove it in the future.
>> And I wonder if others have faced the problems I'm having due to this,
>> and what are the solutions they came up with.
>>
>> Thanks,
>> Giovanni
>>
>> [1]
>> https://github.com/postgis/postgis/blob/5dc95f1bc3047b048128616d4543b603b8bbdca7/configure.ac#L1554
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20251027/5aca488a/attachment.htm>
More information about the postgis-users
mailing list