#1 Mon 14 October 2013 17:03
- fdub
- Juste Inscrit !
- Date d'inscription: 14 Oct 2013
- Messages: 4
MapServer WMS GetFeatureInfo et Template html
Bonjour à tous,
Dans le cadre d'un projet WebMapping, j'ai développé un serveur wms administré sur le site "alwaysdata", avec Mapserver v.5.6.5. Ce dernier fonctionne bien, autant pour charger les données via un logiciel externe comme QGIS ou pour charger mes couches sur OpenLayers (donc GetMap et GetCapabilities sont fonctionnels).
Cependant je cherche maintenant à utiliser la fonction "GetFeatureInfo" permettant d'afficher les attributs de mes polygones, et je rencontre des difficultés pour la faire fonctionner. Malgré de nombreuses heures à fouiller sur internet, je ne trouve de solution.
En utilisant une requête url via firefox et en redimensionnant mon wms afin de tomber nécessairement sur un polygone, j'obtiens bien la liste des différents attributs, donc en théorie le GetFeatureInfo semble fonctionner et j'obtiens:
GetFeatureInfo results:
Layer 'recognized'
Feature 6721:
id_terr = '6721'
name = 'CENTRAL DESERT'
name_orig = ''
country = 'Australia'
ethnies = ''
status = 'Recognized'
status_date = '1978-08-13'
category = '2'
local_type = 'Aboriginal Freehold Land (inalienable): land held by incorporated Aboriginal gro'
local_law = 'SA: Pitjantjatjara Land Rights Act 1981; Aboriginal Lands Trust Act 1966-75; NT:'
area = ''
geo_src = 'GeoScience Australia, National Public and Aboriginal Lands (NPAL) Pre -1998'
geo_acq = ''
updated = '2013-10-12'
user = 'wdit'
geo_src_srid = '4326'
Or, quand je charge ma couche sur Qgis ou OpenLayer et que j'interroge mes polygones, je ne parviens pas à obtenir ces informations : mon template HTML ne récupère pas les valeurs attributaires. Voici le corps de mon template :
Code:
<table class="bars_n_stripes" border="2"> <tbody> <tr> <th scope="col">Name</th> <th scope="col">Country</th> <th scope="col">Status</th> <th scope="col">Category</th> </tr> <tr> <!-- Appel des champs de ma table atributaire --> <td>[name]</td> <td>[country]</td> <td>[status]</td> <td>[category]</td> </tr> </tbody> </table>
Qui me renvoie le tableau :
Name Country Status Category
[name] [country] [status] [category]
Et ne remplace donc pas les champs appelés par leur valeur...
J'ai essayé d'autres formes d'appel, sans succès, du type : [item name="name" format=$value escape=none]
Je donne un extrait de mon mapfile :
Code:
MAP NAME "WMS-test" STATUS ON SIZE 600 300 EXTENT -180 -90 180 90 UNITS METERS IMAGETYPE "png" QUERYMAP STATUS ON END WEB METADATA "wms_title" "WMS Demo Server" "wms_onlineresource" "*****/cgi-bin/mapserv?map=****/test.map&" "wms_srs" "EPSG:4326 EPSG:3857 EPSG:900913" "wms_enable_request" "*" "ows_enable_request" "*" "wms_feature_info_mime_type" "text/plain" "wms_feature_info_mime_type" "text/html" "wms_server_version" "1.1.1" "wms_formatlist" "image/png,image/gif,image/jpeg" "wms_format" "image/png" END END PROJECTION "init=epsg:3857" END #--------------------------- # Start of layer definitions #--------------------------- LAYER NAME "recognized" PROJECTION "init=epsg:4326" END METADATA "ows_title" "Recognized Indigenous Territories" "ows_srs" "EPSG:4326 EPSG:900913" "ows_geometries" "geom" "owsgeometry_type" "polygon" "ows_include_items" "all" "ows_exclude_items" "" "wms_title" "Recognized Indigenous Territories" "wms_srs" "EPSG:4326 EPSG:900913" "wms_enable_request" "*" "wms_include_items" "all" "wms_feature_info_mime_type" "text/html" "queryable" "true" "wms_enable_request" "GetMap GatFeatureInfo" END CONNECTIONTYPE postgis CONNECTION "user=***** dbname=*****_test password=***** host=***** port=*****" PROCESSING "CLOSE_CONNECTION=DEFER" DATA "geom FROM territories using unique id_terr" FILTER ("status"='Recognized') STATUS ON TYPE POLYGON DUMP TRUE TEMPLATE "***/template/gfi.html" [... Définitions de classes, etc...]
Comment se fait-il que je ne puisse récupérer les informations de GetFeatureInfo au sein de mon template alors que cette fonction marche via appel url?
Avez-vous une idée pour corriger mon problème?
Merci Bien!
Hors ligne
#2 Mon 14 October 2013 22:02
- fdub
- Juste Inscrit !
- Date d'inscription: 14 Oct 2013
- Messages: 4
Re: MapServer WMS GetFeatureInfo et Template html
Solution trouvée!
Le GetFeatureInfo ignorait mon fichier template car celui-ci était référencé dans mon mapfile par une url complète. J'ai donc placé mon template dans le même dossier que mon mapfile et remplacé le référencement par "gfi.html" at maintenant cela fonctionne !
Hors ligne