WMS GetFeatureInfo on joined PostGIS layer

Michael Schulz mschulz at WEBGIS.DE
Thu Nov 2 11:49:11 EST 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