Mapfile

Author:David Fawcett
Contact:david.fawcett at gmail.com
Last Updated:

01/08/2007

Table of Contents

Introduction

Le contenu d’un fichier Map est utilisé par MapServer pour la configuration, l’accès aux données, la projection et beaucoup d’autres choses. Parce que le fichier Map est lu à chaque fois une image de carte est demandée, il est important de réfléchir ce que vous incluez dans le fichier afin d’optimiser les performances. Le fichier Map optimal est celui qui n’inclus rien d’autres que ce qui est nécessaire.

1. Projections

There are two ways to define projections in a Map File. You can either use inline projection parameters or specify an EPSG code for that projection. If you use the EPSG code method, PROJ.4 looks up the projection parameters in the Proj4 database using the EPSG code as an ID. This database lookup takes significantly more resources than when the projection parameters are defined inline. This lookup takes place for each projection definition using EPSG codes in a Map File.

Projection définie en utilisant des paramètres de projection “en ligne”

PROJECTION
  "proj=utm"
  "ellps=GRS80"
  "datum=NAD83"
  "zone=15"
  "units=m"
  "north"
  "no_defs"
END

Projection définie en utilisant un code EPSG

PROJECTION
   "init=epsg:26915"
END

Suggestions d’optimisation

  • Utiliser des définitions de paramètres de projection “en ligne” au lieu des codes EPSG.

  • If you want to use EPSG codes, remove all unneeded projection definition records from the PROJ.4 EPSG database.

2. Layers

Pour chaque couche dans un fichier map qui a un statut à ON ou à DEFAULT, MapServer chargera cette couche et la préparera pour l’affichage, même si cette couche n’est jamais affichée.

Suggestions d’optimisation

  • Construire des mapfiles les plus minimaux, inclure seulement des couches que vous avez prévu d’utiliser.

  • Éteignez les couches inutiles ; Plus Les couches affiche par MapServer , plus le temps qu’il faut. Ayez votre carte ouverture vue c’est le minimum nécessaire pour orienter l’utilisateur , et leur permettre de tourner sur des couches supplémentaires au besoin. Cela est particulièrement vrai de WMS distants ou de très grandes trames .

  • Liée à la désactivation des couches , est de les activer , mais en utilisant MINSCALEDENOM et MAXSCALEDENOM de déterminer à quel zoomlevels la couche est disponible . Si l’affichage de la carte est en dehors de MINSCALEDENOM de la couche et la gamme de MAXSCALEDENOM , MapServer peut ignorer le traitement de cette couche. Il rend également pour un effet vraiment cool , que les frontières nationales changent magiquement au frontières de l’Etat .

  • Si vous avez une application complexe, considérez l’usage de plusieurs mapfiles simples et spécifiques plutôt qu’un seul gros fichier mapfile ‘tout en un’.

  • Dans la même veine , chaque classe prend également en charge MINSCALEDENOM et MAXSCALEDENOM . Si votre ensemble de données contient des données qui sont pertinentes à différents zoomlevels , alors vous pouvez trouver ça comme une astuce très pratique . Par exemple , donner un MINSCALEDENOM de 1: 1000000 , routes départementales un de MINSCALEDENOM de 1: 100000 , et les rues un MAXSCALEDENOM de 1: 50000 . Vous obtenez l’effet fraîcheur de nouvelles données qui apparaissent comme par magie , mais vous n’avez pas MapServer essayant pour attirant les routes du pays où toute la nation est en vue !

  • Les classes sont traitées dans l’ordre , et une fonctionnalité est affectée à la première classe qui correspond . Donc, essayez de placer les classes les plus couramment utilisés dans le haut de la liste de classe , alors MapServer n’a pas avoir à essayer autant de classes avant de trouver un match . Par exemple , si vous voulez mettre en évidence l’état unique de Wyoming, vous auriez probablement le faire.

CLASS
   EXPRESSION ('[NAME]' eq 'WY'])
   STYLE
     COLOR 255 0 0
   END
END
CLASS
   STYLE
   COLOR 128 128 128
   END
END

Mais cela sera beaucoup plus efficace de faire ceci, comme 98% des cas seront vérifiés au premier essai :

CLASS
  EXPRESSION ('[NAME]' ne 'WY'])
  STYLE
    COLOR 128 128 128
  END
END
CLASS
  STYLE
    COLOR 255 0 0
  END
END

3. Symbols

Quand un mapfile est chargé, chaque symbole raster listé dans le fichier de symboles est récupéré depuis le système de fichiers et chargé.

Suggestions d’optimisation

  • Inclure seulement les symboles raster dans votre fichier de symboles si vous savez qu’ils seront utilisés par votre application.

4. Fonts

Pour charger une police, MapServer ouvre le fichier fonts.list: ref: fontset qui contient un alias pour la police et le chemin pour ce fichier de police. Si vous avez un fichier fonts.list avec une longue liste de polices, il faudra plus de temps pour MapServer pour localiser et charger la police que vous avez besoin.

Suggestions d’optimisation

  • Limiter les entrées dans le fichier fonts.list aux polices que vous utilisez véritablement.