Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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

 

Pied de page des forums

Powered by FluxBB