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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 06 March 2017 11:02

Fanny12
Participant occasionnel
Date d'inscription: 11 Jun 2014
Messages: 16

MapServer : FONTSET non pris en compte dans le Mapfile

Bonjour à tous,

je suis en train de migrer une vieille application qui était sur un serveur Windows avec PHP 5.2.6 et Mapserver 5.2 vers un nouveau serveur ubuntu avec PHP 5.5.12 et Mapserver 6.4.1.
je me trouve confrontée à un problème tout bête que je n'arrive pas à résoudre. On dirait que le mapfile n'en a rien à faire du paramètre FONTSET.
Mon fichier map se trouve dans un répertoire, dans celui-ci se trouve un sous-répertoire font dans lequel se trouvent tous les fichiers ttf et le fichier fonts.list (même arborescence que sous Windows). or que je fasse appel ou non au fichier fonts.list, j'ai toujours le même message d'erreur dans les logs mapserver

[Mon Mar  6 10:16:19 2017].753332 loadStyle(): Unknown identifier. Parsing error near (FONT):(line 281)


La ligne 281 fait référence à mon premier appel au paramètre FONT.

Voilà le début de mon fichier map

Code:

MAP
  NAME "appli"
  STATUS ON
  SIZE 720 540
  IMAGECOLOR 255 255 255
  EXTENT 550000 1850000 700000 1999000
  #UNITS DD
  
  RESOLUTION 72
  
  FONTSET /var/www/appli/font/fonts.list

  
  OUTPUTFORMAT
    NAME "png"
    MIMETYPE "image/png"
    DRIVER "GD/PNG"
    EXTENSION "png"
    IMAGEMODE PC256
    TRANSPARENT FALSE
  END
  
  CONFIG "MS_ERRORFILE" "/tmp/ms_error.txt"
  
  # Needed for MapServer v4.  Please comment the following line if you are using MapServer v3.6 or earlier
  #TEMPLATEPATTERN "printable.html|loader.html"

  SHAPEPATH "SHP"
#  SYMBOLSET "symbols/symbol.sym"

  WEB
    TEMPLATE "printable.html"
    #EMPTY "../mapsurfer/info.html"  # path relative to cgi-bin
    EMPTY "testImage.html"  # path relative to cgi-bin
    MINSCALE 100
    MAXSCALE 900000
    IMAGEPATH "/var/www/appli/TMP/"  # full path to image tmp dir, so cgi can find it
    IMAGEURL "/appli/tmp/"  # url location of image tmp dir, so web browser can find it
  END # Web Interface Options


  LEGEND
    STATUS ON
    IMAGECOLOR 255 255 255
    POSITION UL
    KEYSIZE 28 22 #key boxes
    KEYSPACING    5 15
    LABEL
      TYPE BITMAP
      SIZE MEDIUM
      COLOR 0 0 0
    END
  END # Legend

  REFERENCE
    IMAGE refmap.png
    EXTENT 550000 1850000 700000 1999000
    SIZE 200 200
    STATUS ON
    COLOR -1 -1 -1
    OUTLINECOLOR 255 0 0
  END

  QUERYMAP
    STATUS OFF
    STYLE SELECTED
    COLOR 255 255 0
  END
  
  SCALEBAR
    STATUS ON
    LABEL
      SIZE tiny
      COLOR 0 0 0
      OUTLINECOLOR 255 255 255
    END
#    STYLE 0
    INTERVALS 3
    SIZE 200 6
    COLOR 0 0 0
    BACKGROUNDCOLOR 255 255 255
    IMAGECOLOR 255 255 255
    OUTLINECOLOR 0 0 0
    UNITS KILOMETERS
    POSITION LL
#    TRANSPARENT ON

  END # Scalebar

j'ai essayé également en entourant avec des guillemets

Code:

FONTSET "/var/www/appli/font/fonts.list"

en mettant le chemin relatif

Code:

FONTSET "font/fonts.list"

Mais j'ai toujours la même erreur.

D'ailleurs j'ai le problème aussi avec SYMBOLSET.
Si quelqu'un peut m'aider ? Merci

Hors ligne

 

#2 Mon 06 March 2017 14:58

Blaise Picinbono
Participant actif
Date d'inscription: 8 Jan 2015
Messages: 70
Site web

Re: MapServer : FONTSET non pris en compte dans le Mapfile

Bonjour Fanny;

Sans en être certrain, je penche pour un problème de chemin.

Quelle version d'Ubuntu ? Dans les versions récentes de Debian, le répertoire web se trouve dans /var/www/html/ et non plus dans /var/www/ (chemin dans les anciennes versions de Debian). Ubuntu étant dérivé de Debian, je suppose que l'évolution de l'arborescence a suivi.

Dans les exemples de Mapserver, les polices de caractères sont placées en général dans le sous répertoire "fonts" et non "font" ("fonts" avec un "s" à la fin).

Dans un mapfile d'une application tournant avec Mapserver 7.0 sous Debian, j'utilise la déclaration suivante du FONTSET:

Code:

FONTSET "fonts/fonts.list"

Je pense donc que ça peut très bien fonctionner avec un chemin relatif.

Si en essayant de contrôler et au besoin d'adapter les chemins pour qu'ils correspondent bien à l'arborescence ça ne fonctionne toujours pas, ce serait sans doute utile d'utiliser Firebug, notamment l'onglet "Réseau", pour essayer de comprendre ce qui cloche.


La déclaration de SYMBOLSET est commentée dans le mapfile, elle n'est donc pas prise en compte...

Dernière modification par Blaise Picinbono (Mon 06 March 2017 15:03)

Hors ligne

 

#3 Mon 20 March 2017 15:26

Fanny12
Participant occasionnel
Date d'inscription: 11 Jun 2014
Messages: 16

Re: MapServer : FONTSET non pris en compte dans le Mapfile

Bonjour Blaise,

Désolée pour la réponse tardive, mais je n'ai pas eu de mail m'indiquant ta réponse (je vais vérifier mes paramètres).
Merci beaucoup en tout cas de m'avoir répondu.
C'est Ubuntu 14.
Mon chemin vers le fichier fonts.list est bien correct. En fait mon problème était dans la définition de la couche. Il y avait le mot clé STYLE tout seul, sans le END. Le message d'erreur Mapserver n'est pas tout explicite.
En tout cas Mapserver 6.4.1 est beaucoup moins permissif que la version 5.2 ! L'erreur était également présente, mais cela ne le gênait pas.

Concernant le problème du SYMBOLSET, le problème venait du fichier symbol.sym qui ne se clôturait pas par un END. Encore une fois cela fonctionnait avec Mapserver 5.2

Hors ligne

 

Pied de page des forums

Powered by FluxBB