WMS GetFeatureInfo on joined PostGIS layer
Michael Schulz
mschulz at WEBGIS.DE
Thu Nov 2 08:49:11 PST 2006
Hi,
unfortunately i have only to report the same problem.
A getfeatureinfo request on a postgis layer with data coming from a
select that uses a join returns always "no results". Changing the data
to a simple "select *" gives wonderful results.
Cheers, Michael
P.S.: details, if needed, coming shortly
On 10/26/06, James Perrins <james.perrins at gmail.com> wrote:
> Hi,
>
> This has got me stumped
>
>
> mapserv481 (or 4.10)
>
> Windows XP / IIS
>
> PostGIS / PostGres 8.1
>
>
>
> http://127.0.0.1/scripts/mapserv481.exe?map=C:/Inetpub/wwwroot/WMSServices/marine.map&SERVICE=WMS&SRS=EPSG:4326&VERSION=1.1.1&REQUEST=GetFeatureInfo&X=145&Y=84&QUERY_LAYERS=SurveyPoints&LAYERS=SurveyPoints&BBOX=-5.480804443359375,51.163844261348245,-4.519500732421875,51.76274043738508&WIDTH=700&HEIGHT=700
>
>
>
> The above feature Info request works on a PostGIS single data layer
> (full layer definition appended at end for info)
>
> (e.g. DATA "the_geom from sample")
>
>
>
> But the same request fails when I change the DATA to a joined table
>
> (e.g. DATA "the_geom from (select sample.sample_key as id,
> sample.the_geom, species.name as name from sample inner join species
> on species.sample_key = sample.sample_key where species.name= 'Mytilus
> edulis' ) as foo USING UNIQUE id using srid=4326")
>
>
>
> Both data layers display data on the map OK – its just the
> GetFeatureInfo that fails on the joined PostGIS layer with the
> following error:
>
>
>
> GetFeatureInfo results:
>
> Layer 'SurveyPoints'
> Content-type: application/vnd.ogc.se_xml
>
> <?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
> <!DOCTYPE ServiceExceptionReport SYSTEM
> "http://schemas.opengeospatial.net/wms/1.1.1/exception_1_1_1.dtd">
> <ServiceExceptionReport version="1.1.1">
> <ServiceException>
> </ServiceException>
> </ServiceExceptionReport>
>
> If no data is returned then it works OK (GetFeatureInfo results:
> Search returned no results.)
> – so it must be something to do with how either I /
> mapserver is failing to interpret / match the joined fields from the
> data statement – but I just can't see it
>
> I've also tried using a view in PostGreSQL:
> SELECT foo.id, foo.sample_key, foo.the_geom, foo.name
> FROM ( SELECT species.taxon_key AS id, sample.sample_key,
> sample.the_geom, species.name
> FROM sample
> JOIN species ON species.sample_key::text = sample.sample_key::text
> WHERE species.name::text = 'Mytilus edulis'::text) foo;
>
> And - DATA "the_geom from mytilus USING UNIQUE id using srid=4326"
> or DATA "the_geom from mytilus"
>
> Both these display the data on a map OK – but produce the same error
> with GetFeatureInfo
>
> Anyone any ideas ?
>
>
> Many Thanks
>
> James
>
>
>
> LAYER
>
> NAME "SurveyPoints"
>
> CONNECTION "user=gisdb password=gisdb dbname=gisdb
> host=127.0.0.1 port=5432"
>
> CONNECTIONTYPE postgis
>
> DATA "the_geom from sample"
>
> #DATA "the_geom from mytilus USING UNIQUE id using srid=4326"
>
> #DATA "the_geom from (select sample.sample_key as id,
> sample.the_geom, species.name as name from sample inner join species
> on species.sample_key = sample.sample_key where species.name=
> '%speciesname%' ) as foo USING UNIQUE id using srid=4326"
>
> #DATA "the_geom from (select species.taxon_key as id,
> sample.sample_key, sample.the_geom, species.name as name from sample
> inner join species on species.sample_key = sample.sample_key where
> species.name= 'Mytilus edulis' ) as foo USING UNIQUE id using
> srid=4326"
>
>
>
>
>
> #for WMS attributes
>
> TEMPLATE "marinetemplate.htm"
>
> DUMP true
>
> METADATA
>
> "wms_title" "SurveyPoints"
>
> "wms_srs" "EPSG:27700 EPSG:4326 EPSG:54004"
>
> "gml_include_items" "all"
>
> END
>
> TYPE POINT
>
> PROJECTION
>
> "init=epsg:4326"
>
> END
>
> STATUS ON
>
> LABELITEM "id"
>
> LABELMAXSCALE 50000
>
> LABELMINSCALE 0
>
> LABELCACHE ON
>
> CLASS
>
> LABEL
>
> ANTIALIAS TRUE
>
> SIZE small
>
> POSITION AUTO
>
> OFFSET 1 1
>
> BUFFER 1
>
> COLOR 255 0 0
>
> OUTLINECOLOR 255 255 255
>
> END
>
> SYMBOL 'circle'
>
> SIZE 4
>
> OUTLINECOLOR 255 0 0
>
> END # end of class object
>
> TOLERANCE 100
>
> END # end of layer object
>
> mapserv481
>
> Windows XP / IIS
>
> PostGIS / PostGres 8.1
>
>
>
> http://127.0.0.1/scripts/mapserv481.exe?map=C:/Inetpub/wwwroot/WMSServices/marine.map&SERVICE=WMS&SRS=EPSG:4326&VERSION=1.1.1&REQUEST=GetFeatureInfo&X=145&Y=84&QUERY_LAYERS=SurveyPoints&LAYERS=SurveyPoints&BBOX=-5.480804443359375,51.163844261348245,-4.519500732421875,51.76274043738508&WIDTH=700&HEIGHT=700
>
>
>
> The above feature Info request works on a PostGIS single data layer
> (full layer definition appended at end for info)
>
> (e.g. DATA "the_geom from sample")
>
>
>
> But the same request fails when I change the DATA to a joined table
>
> (e.g. DATA "the_geom from (select sample.sample_key as id,
> sample.the_geom, species.name as name from sample inner join species
> on species.sample_key = sample.sample_key where species.name= 'Mytilus
> edulis' ) as foo USING UNIQUE id using srid=4326")
>
>
>
> Both data layers display data on the map OK – its just the
> GetFeatureInfo that fails on the joined PostGIS layer with the
> following error:
>
>
>
> GetFeatureInfo results:
>
> Layer 'SurveyPoints'
> Content-type: application/vnd.ogc.se_xml
>
> <?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
> <!DOCTYPE ServiceExceptionReport SYSTEM
> "http://schemas.opengeospatial.net/wms/1.1.1/exception_1_1_1.dtd">
> <ServiceExceptionReport version="1.1.1">
> <ServiceException>
> </ServiceException>
> </ServiceExceptionReport>
>
> If no data is returned then it works OK (GetFeatureInfo results:
> Search returned no results.)
> – so it must be something to do with how either I /
> mapserver is failing to interpret / match the joined fields from the
> data statement – but I just can't see it
>
> I've also tried using a view in PostGreSQL:
> SELECT foo.id, foo.sample_key, foo.the_geom, foo.name
> FROM ( SELECT species.taxon_key AS id, sample.sample_key,
> sample.the_geom, species.name
> FROM sample
> JOIN species ON species.sample_key::text = sample.sample_key::text
> WHERE species.name::text = 'Mytilus edulis'::text) foo;
>
> And - DATA "the_geom from mytilus USING UNIQUE id using srid=4326"
> or DATA "the_geom from mytilus"
>
> Both these display the data on a map OK – but produce the same error
> with GetFeatureInfo
>
> Anyone any ideas ?
>
>
> Many Thanks
>
> James
>
>
>
>
>
>
>
>
>
>
>
> LAYER
>
> NAME "SurveyPoints"
>
> CONNECTION "user=gisdb password=gisdb dbname=gisdb
> host=127.0.0.1 port=5432"
>
> CONNECTIONTYPE postgis
>
> DATA "the_geom from sample"
>
> #DATA "the_geom from mytilus USING UNIQUE id using srid=4326"
>
> #DATA "the_geom from (select sample.sample_key as id,
> sample.the_geom, species.name as name from sample inner join species
> on species.sample_key = sample.sample_key where species.name=
> '%speciesname%' ) as foo USING UNIQUE id using srid=4326"
>
> #DATA "the_geom from (select species.taxon_key as id,
> sample.sample_key, sample.the_geom, species.name as name from sample
> inner join species on species.sample_key = sample.sample_key where
> species.name= 'Mytilus edulis' ) as foo USING UNIQUE id using
> srid=4326"
>
>
>
>
>
> #for WMS attributes
>
> TEMPLATE "marinetemplate.htm"
>
> DUMP true
>
> METADATA
>
> "wms_title" "SurveyPoints"
>
> "wms_srs" "EPSG:27700 EPSG:4326 EPSG:54004"
>
> "gml_include_items" "all"
>
> END
>
> TYPE POINT
>
> PROJECTION
>
> "init=epsg:4326"
>
> END
>
> STATUS ON
>
> LABELITEM "id"
>
> LABELMAXSCALE 50000
>
> LABELMINSCALE 0
>
> LABELCACHE ON
>
> CLASS
>
> LABEL
>
> ANTIALIAS TRUE
>
> SIZE small
>
> POSITION AUTO
>
> OFFSET 1 1
>
> BUFFER 1
>
> COLOR 255 0 0
>
> OUTLINECOLOR 255 255 255
>
> END
>
> SYMBOL 'circle'
>
> SIZE 4
>
> OUTLINECOLOR 255 0 0
>
> END # end of class object
>
> TOLERANCE 100
>
> END # end of layer object
>
--
-----------------------------------------------------------
Michael Schulz
mschulz at webgis.de
in medias res
Gesellschaft für Informationstechnologie mbH
In den Weihermatten 66
79108 Freiburg
Tel +49 (0)761 556959-5
Fax +49 (0)761 556959-6
http://www.webgis.de / http://www.zopecms.de
-----------------------------------------------------------
More information about the MapServer-users
mailing list