====== GetFeatureinfo: query su WMS ====== Alcuni server WMS supportano le query tramite la richieste di tipo **GetFeatureinfo**. La query viene eseguita rispetto al punto (X, Y), che sono le coordinate in pixel della mappa nelle dimensioni e bounding box specificate. La query viene fatta nel dintorno del punto, con la tolleranza indicata nel mapfile. Il risultato può essere composto in formato testo, http oppure GML. Noi proveremo con quest'ultimo. Con MapServer è necessario configurare alcuni parametri nel **mapfile**. Nel nostro caso aggiungiamo la complicazione dovuta al fatto che il layer è in un sistema di riferimento (**EPSG:3003**) diverso da quello che useremo nella query (**EPSG:4326**). LAYER NAME "entita_lineari" DATA "275040el" STATUS ON TYPE LINE TEMPLATE "void" TOLERANCEUNITS pixels TOLERANCE 10 DUMP TRUE PROJECTION "+init=epsg:3003 +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68" END METADATA "wms_title" "Entità lineari" "wms_srs" "EPSG:4326" "gml_include_items" "all" #"wms_include_items" "all" END END Se il client effettua richieste in formato text/plain (non GML), pare che per ottenere risposta sia necessario il parametro ''wms_include_items''. La richiesta WMS assume la seguente forma: **''%%http://localhost/cgi-bin/mapserv?map=/var/www/wms_query.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureinfo&SRS=EPSG:4326&BBOX=11.16398206,43.74906364,11.33432601,43.79898334&LAYERS=entita_lineari&QUERY_LAYERS=entita_lineari&FEATURE_COUNT=100&X=150&Y=100&WIDTH=1024&HEIGHT=480&INFO_FORMAT=gml%%''** Questi i parametri utilizzati: SERVICE=WMS VERSION=1.1.1 REQUEST=GetFeatureinfo SRS=EPSG:4326 BBOX=11.16398206,43.74906364,11.33432601,43.79898334 LAYERS=entita_lineari QUERY_LAYERS=entita_lineari FEATURE_COUNT=100 X=150 Y=100 WIDTH=1024 HEIGHT=480 INFO_FORMAT=gml Attenzione: il numero di feature (oggetti) ritornati dipende dalla dimensione del dintorno del punto (la **''TOLERANCE''** del mapfile) e dal parametro **''FEATURE_COUNT''** (numero massimo di feature ritornati) della query. Il risultato è qualcosa del tipo: 11.173595,43.788665 11.197719,43.790197 275030 0301 150872 11.180460,43.788754 11.189372,43.789513 275030 0102 151559 ===== Query su raster ===== In modo analogo si possono effettuare query su layer raster, questo un esempio di risultato: 1681609.346909,4707664.375214 1681609.346909,4707664.375214 1681609.3 4707664.4 0 0 255 255 255 Questo il risultato di una query su un layer **TIFF** di tipo **Int16**, il colore (red, green, blue) deriva da una classificazione: -1.000000,-1.000000 -1.000000,-1.000000 0.2503605 44.916937 902 902 5 247 6 123