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

GeoDataDays 2025

#1 Fri 23 April 2010 12:47

icadedt
Participant assidu
Lieu: ici et là
Date d'inscription: 21 Jul 2006
Messages: 478

syntaxe filter mapfile postgis

Bonjour

mon mapfile ci dessous permet de me connecter à ma table carto postgis "states_ugl"

je n'arrive pas à parametrer la propriété "FILTER" du mapfile


j'ai essayé ca :

Code:

FILTER  "STATE='Michigan'"

où "STATE" est un champ de ma table "states_ugl" et "Michigan" une des valeurs contenues dans le champ "STATE"
le système me renvoie le message d'erreur suivant:




msDrawMap(): Image handling error. Failed to draw layer named 'states_ugl'. prepare_database(): Query error. Error declaring cursor: ERREUR: la colonne « state » n'existe pas LINE 1: ...he_geom)),'NDR'),gid::text from states_ugl WHERE (STATE='Mic... ^ With query string: DECLARE mycursor BINARY CURSOR FOR SELECT asbinary(force_collection(force_2d( the_geom)),'NDR'),gid::text from states_ugl WHERE (STATE='Michigan') and ( the_geom && setSRID( 'BOX3D(-97.239 40.4671357063404,-82.123 50.5388642936596)'::BOX3D,-1) )



Faut il modifier la propriété "DATA" ?
Je soupconne une histoire de double quote , de quote simple....



Mon mapfile:

Code:

MAP
 imageCOLOR 10 78 100

IMAGETYPE PNG

STATUS ON

EXTENT -97.239 41.62 -82.123 49.386

SIZE 512 347

 

 
LAYER
  

  CONNECTION "host=localhost dbname=postgistest user=postgres password=azertyuiop port=5432"

  CONNECTIONTYPE POSTGIS

  DATA "the_geom from states_ugl using unique gid"
  NAME "states_ugl"
  TYPE POLYGON
    
 STATUS DEFAULT
    CLASS
     

      COLOR 89 225 225
      OUTLINECOLOR 0 0 0
      
         
   
    END



END

END

Dernière modification par icadedt (Fri 23 April 2010 14:29)

Hors ligne

 

#2 Fri 23 April 2010 18:21

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9973
Site web

Re: syntaxe filter mapfile postgis

Bonjour,

Essayez :

Code:

FILTER  ("[STATE]"=="Michigan")

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Mon 26 April 2010 10:06

icadedt
Participant assidu
Lieu: ici et là
Date d'inscription: 21 Jul 2006
Messages: 478

Re: syntaxe filter mapfile postgis

Yves a écrit:

Bonjour,

Essayez :

Code:

FILTER  ("[STATE]"=="Michigan")

Y.


ca n'a pas l'air de marcher , pourrais je savoir sur quel sgbd cette syntaxe marche?

il me semble que postgresql n'aime pas trop les crochets aux noms de champ

Hors ligne

 

#4 Mon 26 April 2010 11:32

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9973
Site web

Re: syntaxe filter mapfile postgis

Bonjour,

les crochets ne sont pas envoyé à Postgresql/postgis, c'est une nomenclature propre à MapServer pour lui indiquer que c'est une colonne. Les guillemets doubles sont là pour protéger le texte si celui-ci présente des espaces par exemple.

Enfin le texte dans la colonne ne doit pas comporter de guillemet double, si cela arrive il faut utiliser des guillemets simples.

Si tu n'arrives pas à résoudre le problème soit le retour est null soit il y a un problème, tu peux :
1. activer les logs dans postgresql et retrouver la requete envoyée par mapserver
2. activer les logs dans mapserver et voir les étapes réalisées par celui-ci et voir où il bloque.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Mon 26 April 2010 12:43

icadedt
Participant assidu
Lieu: ici et là
Date d'inscription: 21 Jul 2006
Messages: 478

Re: syntaxe filter mapfile postgis

j'ai essayé la syntaxe suivante et ca marche 


Code:

FILTER ("STATE"='Michigan')

la mise entre parentheses semble etre fondamentale !
mettre un egal plutot qu'un double egal

merci


PS: perso je crois que la syntaxe à FILTER doit respecter celle du SQL du sgbd sur lequel le mapfile est branché

Dernière modification par icadedt (Mon 26 April 2010 12:48)

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo