#1 Fri 27 April 2018 17:11
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
[MAPSERVER] affichage d'un polygone avec un label
Bonjour
je souhaite afficher des polygones stockés dans postgis ainsi qu'un label pour chacun d'eux
pour se faire j'ai défini 2 layers :
-un layer qui affiche les polygones (POLYGON)
-un layer qui affiche les labels associés aux polygones (POLYGON_LABEL)
je parviens bien à afficher ces 2 entités mais l'affichage des labels me parait un peu "chanceux" puisque
je garde la même définition que pour l'affichage des polygones (même type "Polygon", même "data")
et le simple fait de définir une classe label à la place du style outlincolor m'affiche le label au centre du polygone...
donc si quelqu'un voit une définition du layer labels (POLYGON_LABEL) plus "rigoureuse" je suis preneur
Code:
layer
name "POLYGON"
status Off
type Polygon
validation
"SERVER" "^.*$"
"DBNAME" "^.*$"
end
connectiontype postgis
connection "host=%SERVER% dbname=%DBNAME%"
data "geom from (select geom, from ....)
projection
"init=epsg:4326"
end
class
style
outlinecolor 84 84 84
end
end
endCode:
layer
name "POLYGON_LABEL"
status Off
type Polygon
validation
"SERVER" "^.*$"
"DBNAME" "^.*$"
end
connectiontype postgis
connection "host=%SERVER% dbname=%DBNAME%"
data "geom from (select geom, description from ....)
projection
"init=epsg:4326"
end
class
label
TEXT "[description]"
force true
type TrueType
font ArialRegular
size 8
color 0 0 0
position cc
end
end
end
endHors ligne
#2 Wed 02 May 2018 17:53
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
Re: [MAPSERVER] affichage d'un polygone avec un label
en fait il est normal que le label s'affiche au centre de la zone
on peut aussi facilement afficher les 2 entités dans un seul layer
par contre le problème que je n'ai pas résolu est l'affichage ou non du label suivant la valeur d'un paramètre passé dans la requête http
en utilisant l'instruction EXPRESSION dans le label (voir le mapfile défini ci-dessous)
j'ai essayé aussi de passer la condition entière dans la requête mais la substitution n'a pas l'air de se faire..
il semble que dans EXPRESSION je ne puisse accéder qu'aux champs référencés dans le select (exemple 'description')
si quelqu'un a une idée
merci d'avance
Jean-Marie
Code:
layer
name "POLYGON"
status Off
type Polygon
validation
"SERVER" "^.*$"
"DBNAME" "^.*$"
"DISPLAYLABEL" "^.*$"
end
connectiontype postgis
connection "host=%SERVER% dbname=%DBNAME%"
data "geom from (select geom, description from ....)
projection
"init=epsg:4326"
end
class
style
outlinecolor 84 84 84
end
label
# une EXPRESSION du genre :
EXPRESSION (%DISPLAYLABEL% = 'true')
TEXT '[description]'
force true
type TrueType
font ArialRegular
size 8
color 255 0 0
end
end
endHors ligne
#3 Thu 03 May 2018 09:06
Re: [MAPSERVER] affichage d'un polygone avec un label
Bonjour,
pourquoi ne pas essayer de rajouter le champ dynamique dans le SELECT ?
Attention, les paramètres ne peuvent pas être inséré partout (mais ici c'est supporté : http://mapserver.org/cgi/runsub.html#pa … supported!
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
#4 Thu 03 May 2018 11:51
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
Re: [MAPSERVER] affichage d'un polygone avec un label
Bonjour
merci pour la piste !
çà donne :
Code:
validation
"SERVER" "^.*$"
"DBNAME" "^.*$"
"DISPLAYLABEL" "^.*$"
end
...
data "geom from (select geom,(case when %DISPLAYLABEL%=true then description end) from ..."le dernier problème que je n'ai pas résolu est de donner une valeur par défaut à DISPLAYLABEL de sorte que si ce paramètre n'est pas passé dans l'url le select ne plante pas et affiche le label systématiquement
d'après la documentation http://mapserver.org/cgi/runsub.html#de … in-the-url l'instruction suivante devrait fonctionner mais ce n'est pas le cas, mapserver signale "Parameter pattern validation failed. ERROR: syntax error at or near "%""
Code:
validation
...
"DISPLAYLABEL" "true"
endavez-vous une idée d'où peut venir le problème ?
Jean-Marie
Hors ligne
#5 Thu 03 May 2018 12:48
Re: [MAPSERVER] affichage d'un polygone avec un label
Bonjour,
La doc l'explique : http://mapserver.org/cgi/runsub.html#de … in-the-url
VALIDATION
'default_sound' 'yes'
'default_nseats' '5'
'default_multimedia' 'yes'
END
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
#6 Thu 03 May 2018 14:16
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
Re: [MAPSERVER] affichage d'un polygone avec un label
effectivement il fallait bien lire la doc ![]()
"default_DISPLAYLABEL" "false"
thanks
JM
Hors ligne


