query postgis through wms

Richard Duivenvoorde rdmailings at DUIF.NET
Tue Nov 20 02:37:35 EST 2007


Hi Steven,
there are some srid related places places:

1) if you added the column using AddGeometryColumn
SELECT AddGeometryColumn('public', 'kaas', 'wkb_geometry_rd', 28992, 
'POINT', 2)
a record is added to 'geometry_columns' where you can find the srid for 
that table

2) every geometry in the table also holds a srid. Find out bij looking 
at the geometries as GML:
select AsGML(wkb_geometry) from kaas
or just ask for the srid:
select getsrid(wkb_geometry) from kaas

besides that be sure your projection is defined in the spatial_ref_sys 
table (and if you reproject, into the proj definitions of mapserver). 
But 31300 ("Belge 1972 / Belge Lambert 72") shouldn't be the problem.

Biggest problem is probably that mapserver asks for 31300, and your 
columns OR you geometry_columns -table hold different OR mixed(!) srids.

Be sure your data is all one srid and the srid-value in geometry_columns 
corresponds to that.

It's very easy to reproject in postgis:
First add a new column with the new epsg (for example 4326):
SELECT AddGeometryColumn('public', 'kaas', 'wkb_geometry_4326', 4326, 
'POINT', 2)
then fill it using:
UPDATE kaas SET wkb_geometry_4326 = Transform(wkb_geometry, 4326)

If your data is ok, it doesn't mather anymore what mapserver is calling 
for, because (if the srid/epsg is defined in the web-part of you 
mapfile) mapserver will reproject it anyway.

Hope this helps a little :-)

Groeten,

Richard Duivenvoorde


Steven De Vriendt wrote:
> How can I see what SRID the data is using ? I'm quite new to all this...
> 
> Steven
> 
> On Nov 19, 2007 3:41 PM, Marcos Sánchez Provencio <marcos at burke.ath.cx 
> <mailto:marcos at burke.ath.cx>> wrote:
> 
>     Try using the srid your data is stored in instead of 31300. You might
>     use the function getsrid
> 
>     SELECT getsrid(the_geom) from b_capa_percid limit 1;
> 
> 
>     El lun, 19-11-2007 a las 15:26 +0100, Steven De Vriendt escribió:
>      > Marcos,
>      >
>      > When I try your suggestion Mapserver returns:
>      >
>      > −
>      >     <ServiceExceptionReport version="1.1.0">
>      > −
>      >     <ServiceException>
>      >
>      > msDrawMap(): Image handling error. Failed to draw layer named
>      > 'percelen'.
>      > msPOSTGISLayerWhichShapes(): Query error. Error executing POSTGIS SQL
>      > statement (in FETCH ALL): DECLARE mycursor BINARY CURSOR FOR SELECT
>      > asbinary(force_collection(force_2d(the_geom)),'NDR'),gid::text from
>      > (SELECT * FROM b_capa_percid) AS foo WHERE the_geom &&
>      > setSRID('BOX3D( 76945.5918856108 189996.502536997,91328.1081143621
>      > 201805.497460877)'::BOX3D, 31300 )
>      > -ERROR:  Operation on two geometries with different SRIDs
>      >
>      >
>      > </ServiceException>
>      > </ServiceExceptionReport>
>      >
>      > On Nov 19, 2007 3:19 PM, Marcos Sánchez Provencio
>      > <marcos at burke.ath.cx <mailto:marcos at burke.ath.cx>> wrote:
>      >         try
>      >         DATA "the_geom from (SELECT * FROM b_capa_percid) as foo
>      >         using srid=31300 using unique gid"
>      >
>      >
>      >
>      >         El lun, 19-11-2007 a las 09:48 +0100, Steven De Vriendt
>      >         escribió:
>      >
>      >         > DATA "the_geom from b_capa_percid"
>      >
>      >
>      >
> 
> 



More information about the mapserver-users mailing list