WMS GetFeatureInfo

Milo van der Linden mlinden at ZEELANDNET.NL
Thu Jan 31 16:33:56 EST 2008


Hi Richard!

(Nice to see you active here too ;-))

Yes! I did it!

I appreciate the effort you and Bart put in helping me, I didn't succeed 
at first, but you kept me triggered!

I have added the missing metadata you provided to my LAYER in the mapfile.
I have no template file, instead I just state TEMPLATE 'ttt' as Bart 
said, this works.

I think it mainly had to do with the call to mapserver getting doubled 
by what I did and what flamingo adds itself.
I added query_layers="percelen" to the flamingo fmc:OGWMSLayer clause. 
After that I stripped the default parameters that I attached to the URL
(I had these already in my URL call: 
....&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&TRANSPARENT=TRUE&BGCOLOR=0xF0F0F0&")
and then it worked!



Richard Duivenvoorde schreef:
> Hi Milo,
> did you succeed?
>
> I've mapserver running here with a flamingo client example.
> All configs below, hope this is helpfull:
>
>
> This is de layer def from the mapfile:
>
> LAYER
>   NAME pc4p
>   DEBUG ON
>   TRANSPARENCY ALPHA
>   TOLERANCE 15
>   DUMP TRUE
>   METADATA
>       "wms_title" "PC4CODE"
>       "wms_feature_info_mime_type"  "text/html"
>       "gml_featureid" "oid" ## REQUIRED
>       "ows_feature_info_mime_type"  "text/html"
>       "ows_include_items" "all"
>       #"gml_include_items" "PC4NAAM"
>       "gml_include_items" "all"
>       "wms_include_items" "all"
>   END # METADATA
>     # query templates for queries
>     # MUST BE AVAILABLE FOR GETFEATUREINFO REQUESTS
>     # responds to OGC:WMS 
> request=GetFeatureInfo......&info_format=text/html
>     HEADER   "C:\ms4w\Apache\htdocs\ol\pc_header.html"
>     TEMPLATE "C:\ms4w\Apache\htdocs\ol\pc.html"
>     FOOTER "C:\ms4w\Apache\htdocs\ol\pc_footer.html"
>   TYPE POINT
>   STATUS ON
>   CLASSITEM 'HUISHOUDEN'
>   DATA pc4
>   PROJECTION
>     "init=epsg:28992"
>   END
>   CLASS
>     EXPRESSION ([HUISHOUDEN] > 10000)
>     STYLE
>         SYMBOL 'punt'
>         SIZE 60
>         COLOR 255 0 0
>         OUTLINECOLOR 255 0 0
>     END
>   END
>   CLASS
>     EXPRESSION ([HUISHOUDEN] > 2000)
>     STYLE
>         ANTIALIAS TRUE
>         SYMBOL 'punt'
>         SIZE 15
>         COLOR 255 0 0
>         OUTLINECOLOR 255 0 0
>     END
>   END
>
> This is the kind of url's flamingo is firing:
> http://localhost/cgi-bin/mapserv.exe?map=test.map&REQUEST=GetFeatureInfo&SERVICE=WMS&FEATURE_COUNT=10&Y=177&X=407&SRS=EPSG:28992&VERSION=1.1.1&EXCEPTIONS=application/vnd.ogc.se_xml&INFO_FORMAT=application/vnd.ogc.gml&QUERY_LAYERS=pc4p&LAYERS=pc4p&HEIGHT=333&WIDTH=916&BBOX=-297620.12012012,300000,582620.12012012,620000 
>
>
> This is the gml output of mapserver which is nicely shown in flamingo:
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> <msGMLOutput
>      xmlns:gml="http://www.opengis.net/gml"
>      xmlns:xlink="http://www.w3.org/1999/xlink"
>      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>     <pc4p_layer>
>         <pc4p_feature>
>             <gml:boundedBy>
>                 <gml:Box srsName="EPSG:28992">
>                     <gml:coordinates>88589.000000,463018.000000 
> 88589.000000,463018.000000</gml:coordinates>
>                 </gml:Box>
>             </gml:boundedBy>
>             <PC4CODE>2241</PC4CODE>
>             <PC4NR>2241</PC4NR>
>             <PC4NAAM>ZIJLWATERING EN HAVEN</PC4NAAM>
>             <XCOORD>88589</XCOORD>
>             <YCOORD>463018</YCOORD>
>             <PC3CODE>224</PC3CODE>
>             <PC2CODE>22</PC2CODE>
>             <PC1CODE>2</PC1CODE>
>             <PROVC>28</PROVC>
>             <PROVC_NM>Zuid-Holland</PROVC_NM>
>             <GEMCODE>0629</GEMCODE>
>             <GEMNR>629</GEMNR>
>             <GEMNAAM>Wassenaar</GEMNAAM>
>             <WOONPLAATS>WASSENAAR</WOONPLAATS>
>             <HUISHOUDEN>4557</HUISHOUDEN>
>             <NETNUMMER>070</NETNUMMER>
>         </pc4p_feature>
>         <pc4p_feature>
>             <gml:boundedBy>
>                 <gml:Box srsName="EPSG:28992">
>                     <gml:coordinates>87278.000000,438832.000000 
> 87278.000000,438832.000000</gml:coordinates>
>                 </gml:Box>
>             </gml:boundedBy>
>             <PC4CODE>3125</PC4CODE>
>             <PC4NR>3125</PC4NR>
>             <PC4NAAM>INDUSTRIEGEBIED T.N.V. RIJKSWEG2</PC4NAAM>
>             <XCOORD>87278</XCOORD>
>             <YCOORD>438832</YCOORD>
>             <PC3CODE>312</PC3CODE>
>             <PC2CODE>31</PC2CODE>
>             <PC1CODE>3</PC1CODE>
>             <PROVC>28</PROVC>
>             <PROVC_NM>Zuid-Holland</PROVC_NM>
>             <GEMCODE>0606</GEMCODE>
>             <GEMNR>606</GEMNR>
>             <GEMNAAM>Schiedam</GEMNAAM>
>             <WOONPLAATS>SCHIEDAM</WOONPLAATS>
>             <HUISHOUDEN>151</HUISHOUDEN>
>             <NETNUMMER>010</NETNUMMER>
>         </pc4p_feature>
>     </pc4p_layer>
> </msGMLOutput>
>
> This is the corresponding flamingo config:
> <?xml version="1.0" encoding="UTF-8"?>
> <FLAMINGO xmlns:fmc="fmc" lang="en" tooltipdelay="500" >
> <YGUIDE id="my" y="50%"/>
> <XGUIDE id="mx" x="50%"/>
> <XGUIDE id="x10" x="10"/>
> <fmc:ToolGroup  listento="map1"  left="x10" top="10">
> <fmc:ToolPan  left="30" clickdelay="0" pandelay="0"/>
> <fmc:ToolZoomin left="60" zoomdelay="0" clickdelay="0"/>
> <fmc:ToolZoomout left="90" zoomdelay="0" clickdelay="0"/>
> <fmc:ToolIdentify  left="120"/>
> </fmc:ToolGroup>
> <!-- identify window -->
> <fmc:Window left="90" top="10" width="200" height="350" 
> visible="false" skin="g" canclose="true" canresize="true" 
> showresizebutton="true" defocusalpha="70">
>     <string id="title" en="Informatie:"/>
>     <fmc:Identifyresults width="100%" height="100%" listento="map1">
>         <!-- progress gebeuren, bij mij (engels) zie je nu lekker niks 
> -->
>         <string id="startidentify"  en="" nl="Info wordt opgehaald"/>
>         <string id="identify"  en="" nl="[progress]%"/>
>         <string id="finishidentify"  en="" nl="Informatie"/>
>         <!--<string id="startidentify"  en="Loading" nl="Info wordt 
> opgehaald"/>
>         <string id="identify"  en="[progress]%" nl="[progress]%"/>
>         <string id="finishidentify"  en="Information" 
> nl="Informatie"/>-->
>     </fmc:Identifyresults>
> </fmc:Window>
>
> <fmc:MonitorLayer id="monitor" left="150" top="15" listento="map1"/>
> <!--
> <fmc:Debugger listento="map1" left="50%" top="0" height="50%" 
> right="right" />
> <fmc:Debugger listento="pc4" left="50%" top="50%" height="50%" 
> right="right" />
> -->
> <fmc:Map id="map1" left="0" top="0" bottom="bottom" right="75%" 
> visible="true" extent="-15000,300000, 300000, 620000" 
> fullextent="-15000,300000, 300000, 620000">
> <fmc:LayerIdentifyIcon  id="identifyicon"  />
> <fmc:LayerGrid id="grid" gridwidth="10" gridheight="10"/>
> <!--<fmc:LayerOGWMS id="pc4" visible="true" 
> url="http://localhost/cgi-bin/mapserv.exe?map=test.map" service="WMS" 
> version="1.1.1" srs="EPSG:28992" query_layers="" layers="pc4"/>-->
> <fmc:LayerOGWMS id="pc4" visible="true" 
> url="http://localhost/cgi-bin/mapserv.exe?map=test.map" service="WMS" 
> version="1.1.1" srs="EPSG:28992" query_layers="pc4p" layers="pc4,pc4p"/>
> <fmc:LayerOGWMS id="ref" visible="true" 
> url="http://localhost/cgi-bin/mapserv.exe?map=ontrackreferentie.map" 
> service="WMS" version="1.1.1" srs="EPSG:28992" query_layers="" 
> layers="top25,top50,top250v,nlbasis,plaatsen"/>
>
> </fmc:Map>
> </FLAMINGO>
>
> Hope this is helpfull ;-)
>
> Richard Duivenvoorde
>
> Milo van der Linden wrote:
>> Hello Bart,
>>
>> I think that is what I already did. Instead of 
>> feature_info_mime_type, I got wms_feature_mime_type; can that be a typo?
>> I added feature_info_mime_type to the web section to test, but there 
>> is no effect, still no featureinfo. I am also posting on the 
>> flamingo-mc forum to see if they got some suggestions.
>>
>> In the Map section I got:
>>  
>> ---- snippet ----
>> WEB
>>     IMAGEPATH 'E:/maptemp/'
>>     IMAGEURL '/ms_tmp/'
>>     HEADER "./templates/query_header.html"
>>     FOOTER "./templates/query_footer.html"
>>
>>     METADATA
>>       "wms_title" "Bouwfonds - Digitale kaart"
>>       "wms_onlineresource" 
>> "http://www.xx.xx/cgi-bin/mapserv.exe?map=E:\\mapconfig\\bouwfonds.map"
>>       "wms_srs" "EPSG:4326 EPSG:28992"
>>       "ows_schemas_location" "http://schemas.opengis.net"
>>       "wms_feature_mime_type" "application/vnd.ogc.gml"
>>     END
>>   END
>>
>> And for my Layer:
>>
>> ---- snippet ----
>> LAYER
>>     NAME 'percelen'
>>     TYPE POLYGON
>>     DUMP TRUE
>>     TEMPLATE 'ttt'
>>     DATA '.\mapdata\rga\percelen_laag_poly_merged.shp'
>>     METADATA
>>       "wms_title" "percelen"
>>       "wms_srs" "EPSG:28992"
>>       "gml_featureid" "id"
>>       "gml_include_items" "all"
>>     END
>>     STATUS ON
>>     TRANSPARENCY 100
>>     PROJECTION
>>      "init=epsg:28992"
>>     END
>>     CLASS
>>        NAME 'percelen'
>>        STYLE
>>          SYMBOL 0
>>          SIZE 6
>>          OUTLINECOLOR 180 208 208
>>          #COLOR 180 208 208
>>        END
>>     END
>>   END
>>
>>
>> Bart van den Eijnden schreef:
>>> Milo,
>>>
>>> the WMS client determines the info_format. I assume QGIS is asking 
>>> for MIME or text/plain.
>>>
>>> You need to add the following METADATA to your layers:
>>>
>>> OWS_INCLUDE_ITEMS "all"
>>>
>>> Maybe even GML_INCLUDE_ITEMS "all" I am not sure. Give it a try.
>>>
>>> If Flamingo wants GML, it will request with 
>>> info_format=application/vnd.ogc.gml. If it doesn't you can probably 
>>> set the default/MIME format of Mapserver to this (METADATA at the 
>>> WEB level called feature_info_mime_type).
>>>
>>> Template can remain empty, I always TEMPLATE blank.html where 
>>> blank.html does not even exist on the filesystem.
>>>
>>> Best regards,
>>> Bart
>>>
>>> On Jan 30, 2008 5:48 PM, Milo van der Linden <mlinden at zeelandnet.nl 
>>> <mailto:mlinden at zeelandnet.nl>> wrote:
>>>
>>>     Hello list,
>>>
>>>     I have been spending 4 hours looking around the mapserver 
>>> website and
>>>     various other resources but no luck.
>>>
>>>     As a Mapserver WMS client I am using flamingo-mc. flamingo-mc is
>>>     able to
>>>     perform a getFeatureInfo and requires gml as response.
>>>
>>>     For now I have some sort of response because with qGIS I get:
>>>     WMS identify result for 225, 337
>>>
>>>     ---------------
>>>
>>>     GetFeatureInfo results:
>>>
>>>     Layer 'percelen'
>>>
>>>     Feature 507:
>>>
>>>
>>>     But it is clearly no gml and I haven't set the fields from the
>>>     table to
>>>     be returned.
>>>
>>>     So:
>>>
>>>     - What do I have to put in my (currently empty) TEMPLATE file?
>>>     - Can I enter all the GML that I need to return in my TEMPLATE and
>>>     does
>>>     anyone have a sample for this?
>>>
>>>     - How can I make sure that the information returned is in the gml
>>>     mime-type?
>>>
>>>
>>>     Any help would be appreciated!
>>>
>>>     Kind regards,
>>>
>>>     Milo van der Linden
>>>
>>>
>>
>



More information about the mapserver-users mailing list