[postgis-users] srid on wkb

Mark Cave-Ayland mark.cave-ayland at siriusit.co.uk
Mon Sep 14 02:57:19 PDT 2009


Brent Pedersen wrote:

> hi, i'm seeing some behavior i dont understand, i'm pasting a shell
> session for postgresql 8.3.7 below.
> can someone explain why i'm getting the error from the first command?
> the wkb has srid 4326 as does the dwr_well.geom field. and
> it's in the geometry_columns table as such. i've found i can get the
> desired results by wrapping the wkb in st_setsrid(), but it seems
> that should be necessary. is there something i'm missing.
> thanks,
> -brent
> 
> SELECT dwr_well.geom AS dwr_well_geom, dwr_well.id AS dwr_well_id,
> dwr_well.well_number AS dwr_well_well_number
> FROM dwr_well
> WHERE ST_Intersects(dwr_well.geom,
> '01030000208C10000001000000050000006666666666665EC06666666666E644406666666666665EC000000000000045409A99999999595EC000000000000045409A99999999595EC06666666666E644406666666666665EC06666666666E64440'::geometry);
> ERROR:  Operation on two geometries with different SRIDs
> dwr=# select srid('01030000208C10000001000000050000006666666666665EC06666666666E644406666666666665EC000000000000045409A99999999595EC000000000000045409A99999999595EC06666666666E644406666666666665EC06666666666E64440'::geometry);
>  srid
> ------
>  4236
> (1 row)
> 
> dwr=# select distinct(srid(geom)) from dwr_well;
>  srid
> ------
>  4326
> (1 row)
> 
> dwr=# select postgis_full_version();
>                                postgis_full_version
> ----------------------------------------------------------------------------------
>  POSTGIS="1.3.3" GEOS="3.1.1-CAPI-1.6.0" PROJ="Rel. 4.6.0, 21 Dec
> 2007" USE_STATS
> (1 row)
> 
> ######################
> # and the working query requires explicitly setting the srid:
> 
> dwr=# SELECT dwr_well.geom AS dwr_well_geom, dwr_well.id AS
> dwr_well_id, dwr_well.well_number AS dwr_well_well_number
> FROM dwr_well
> WHERE ST_Intersects(dwr_well.geom,
> ST_SetSRID('01030000208C10000001000000050000006666666666665EC06666666666E644406666666666665EC000000000000045409A99999999595EC000000000000045409A99999999595EC06666666666E644406666666666665EC06666666666E64440'::geometry,
> 4326));
> [ ... expected results ... ]

According the ouput above, your input geometry has a SRID of *4236* 
whereas your dwr_well table has a SRID of *4326*. Looks like an 
accidental typo in your application somewhere...


HTH,

Mark.

-- 
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063

Sirius Labs: http://www.siriusit.co.uk/labs



More information about the postgis-users mailing list