Comment est-ce que j’ajoute une nouvelle projection ou personnalisation de carte ?

Note: Ces exemples supposent que le nom du client est kemnh (KE Museum of Natural History).

Les Cartes Web peuvent afficher des cartes avec plusieurs projections, différentes couvertures ou différents calques. Ceci est réalisé en ajoutant des fichiers Carte Mapserver supplémentaires qui décrivent le type de carte à utilise (y compris domaine, taille, calque, projection, etc.).

Supposez qu'en plus de la carte de base nous voulons également une carte stéréographique polaire.

1.

Il est tout d'abord nécessaire de créer le fichier Carte approprié qui décrit la carte que nous voulons. Des exemples de fichiers Carte se trouvent dans :

~/web/webservices/mapper/maps/config

La référence définitive est sur le site internet Mapserver : http://mapserver.gis.umn.edu/

Dans cet exemple nous créons un fichier Carte nommé antarctica.map. Le fichier devrait être place dans le répertoire local Web Maps config :

web/webservices/mapper/kemnh/maps/config

Dans antarctica.map :

A.

Nous devrions définir la taille de la carte que nous voulons afficher, par exemple :

SIZE 600 600

qui décrit la largeur et hauteur (en pixels).

antarctica.map doit avoir une section Projection qui définie la projection polaire stéréographique que nous souhaitons, par exemple :

PROJECTION
"proj=stere"
"ellps=WGS84"
"datum=WGS84"
"lon_0=0"
"lat_0=-90"
"lat_ts=-71"
"units=m"
END

Ces paramètres sont des arguments standards proj4 qui définissent une projection. Pour des exemples, voir :

http://www.remotesensing.org/geotiff/proj_list/

B.

Le domaine initial de la carte doit aussi être établi.

Note: Cela ne sera pas en degrés lat/long mais en mètres pour une projection polaire stéréographique, par exemple :
EXTENT -2877974.62258588 -2535021.30046716 2919369.49967643 2413783.16981739

C.

Nous devons également ajouter quelques calques.

Note: Si ceux-ci sont dans différentes projections que l'affichage de la carte (c'est à dire pas polaire stéréographique), nous devons également stipuler la projection du calque.

Par exemple, si nous ajoutions le fichier world boundary shapefile qui utilise une projection lat/long ou Géographique, nous pourrions faire quelque chose comme :

LAYER
NAME "World_Boundaries"
TYPE POLYGON
STATUS ON
DATA "world/boundaries/world.dbf"
LABELITEM CNTRY_NAME
CLASS
NAME "world"
OUTLINECOLOR 0 127 0
SYMBOL 0
TEMPLATE "bogus.html"
LABEL
COLOR 33 33 66
SIZE medium
POSITION auto
END
END
PROJECTION
"proj=latlong"
END
METADATA
"DescriptionField" "CNTRY_NAME"
END
END

Note: Une projection lat/long ou géographique n'est pas vraiment une projection. La représentation lat/long d'une carte est en fait la forme non projetée, mais il n'est pas rare qu'elle soit appelée une projection.

D.

Nous devrions ajouter une carte de référence appropriée pour afficher un aperçu d'où nous regardons sur la carte.

Cela se fait en utilisant la section référence, par exemple :

REFERENCE
EXTENT -2877974.62258588 -2535021.30046716 2919369.49967643 2413783.16981739
MINBOXSIZE 20
MAXBOXSIZE 190
IMAGE "antarctica/reference/antarcticaRef.gif"
SIZE 128 128
COLOR  -1 -1 -1
OUTLINECOLOR  255 0 0
END

Voir http://mapserver.gis.umn.edu/ pour plus d'information sur ce qui peut être spécifié dans un fichier Carte.

2.

Placer les fichiers de données géospatiales et rasters quelque part d'approprié (typiquement dans le répertoire local du calque web/webservices/mapper/kemnh/maps/layers).

Il est suggéré que vous utilisiez une structure et convention de nommage des répertoires qui permettent de trouver facilement les calques. Par exemple un calque DEM d'Antarctica pour KE MNH irait dans :

web/webservices/mapper/kemnh/maps/layers/antarctica/dem/ANTARCPS.DEM

3.

Nous devons enregistrer ce fichier carte avec Cartes Web. Ceci s’effectue dans le fichier MapperFactory.

Dans web/webservices/mapper/kemnh/MapperFactory.php trouver la méthode Constructeur appropriée (par exemple function KemnhEMuMapper) et ajouter la nouvelle projection. Le format est :

addProjection(Display Name, Map file, a Default Start Extent)

Par exemple :

$this->addProjection("Stereographic South Pole",
"antarctica.map",
"-2877974.62258588 -2535021.30046716 2919369.49967643 2413783.16981739") ;

Note: Actuellement le paramètre Default Start Extent parameter (qui est prévu pour passer outre le domaine du fichier Carte) est ignoré, cependant il devrait être établi puisqu'il sera utilisé dans l'avenir.