Comme fonctionne Mapserver
La dernière fois que nous avons parlé pourquoi certains critères MapServer et les bases de l'installation. Voyons maintenant une partie de son fonctionnement dans un exercice avec les cartes des amis du Chiapas.
Lorsqu'il monte
Une fois Apache installé, le répertoire de publication MapServer par défaut est le dossier OSGeo4W directement sur C: /
À l'intérieur, il y a différents dossiers avec des applications en fonction de ce qui est installé, mais le dossier de publication doit aller dans apache. Dans ce cas, le dossier appelé gis.
- Ensuite, dans le dossier contient des couches de données, orthophotographie, etc.
- Dans le dossier etc, il y a les polices True Type utilisées pour les étiquettes, avec une extension .ttf. Voici également un fichier txt qui les élève et un autre qui définit les symboles.
- Et enfin dans le dossier httdocs monteras pages web de service.
Le site
Dans l'exemple, j'utiliserai le cas présenté la dernière fois. Il contient essentiellement un fichier d'index qui redirige vers une extension phtml, ce qui à son tour soulève les fonctions construites au-dessus d'un php et des cartes. Un dossier contient les images liées à la page.
Si nous le regardons, le phtml est juste le shell construit à partir de tables, et appelle les fonctions mapscript / php. Vous devriez vous lever en utilisant:
http://localhost/gis/gispalenque.phtml
Voici le résultat:
- Au centre, la fonction GMapDrawMap (),
- À droite, l'appel à Carte graphique GMapDrawKeyMap ()
- La barre d'échelle ci-dessous GMapDrawScaleBar (),
- et si les fonctions de déploiement, une condition en ce qui concerne la zone de liste if (! IsHtmlMode ()) echo " les décisions: ZOOM_IN, ZOOM_OUT, RECENTER, QUERY_POINT.
Déjà en cours d'exécution, l'affichage ressemble à ceci:
Les fichiers .map
La combinaison de la publication Mapserver est dans ce qu'Apache soulève, qui envoie PHP à travers mapscript et cela sort ensuite à travers cette coquille. Mais l'essentiel de la science se trouve dans les fichiers .map, à ne pas confondre avec ceux générés par Mapinfo, Manifold ou Mobile Mapper Office avec la même extension.
Ces .map sont des fichiers texte, qui contiennent la carte sous forme de script. Ceux-ci peuvent être créés avec des programmes de bureau comme Quantum GIS, si vous regardez, il y en a un pour la carte principale, un pour le Keymap et deux pour les services OGC wms et wfs. Voyons comment fonctionne Mapscript:
CARTE
NOM PALENQUE_DEMO
ON STATUT
TAILLE 600 450
SYMBOLSET ../etc/symbols.txt
604299 1933386 610503 1939300 étendue de tous #VISTA carte de Palenque
#EXTENT 605786 1935102 608000 1938800 01 #SOLO LE SECTEUR
MÈTRES UNITÉS
SHAPEPATH "../data"
ON TRANSPARENT
IMAGECOLOR 255 255 255
fontset ../etc/fonts.txt
- MAP indique que le script initie
- STATUS indique si la carte par défaut est ou non
- SIZE est la taille du déploiement
- SYMBOLSET montre le chemin des symboles
- EXTENT sont les coordonnées d'affichage. Le symbole # est utilisé pour faire des annotations
- Parts pour la part
- SHAPEPATH, le chemin d'accès où les couches sont
- Tout à la fin se terminera avec la commande END
A l'intérieur, le code commence par une ligne de commande, et se termine par END, par exemple minimum et niveau maximum; répertoire temporaire d'images:
WEB
MINSCALE 2000000
MAXSCALE 50000000ImagePath "C: \ OSGeo4W / tmp / ms_tmp /"
IMAGEURL "/ ms_tmp /"
FIN
Barre d'échelle:
Scalebar
IMAGECOLOR 255 255 255
LABEL
COULEUR 0 0 0
PETITE TAILLE
FIN
TAILLE 300 5
COULEUR 255 255 255
BACKGROUNDCOLOR 0 0 0
OUTLINECOLOR 0 0 0
UNITS kilomètres
INTERVALLES 3
ON STATUT
FIN
Un calque raster: qui va en arrière-plan, avec une description dans la liste comme "Orthophoto", à partir d'un tiff situé dans le dossier de données:
COUCHE
NOM orthophoto
METADATA
"DESCRIPTION" "OrtoFoto"
FIN
TYPE RASTER
STATUS OFF
DONNÉES "C: \ OSGeo4W / apps / gis / data / ortofotoGral.tif"
#OFFSITE 0 0 0
FIN
Une couche shp polygone tematizada en fonction de critères, collecte des données sur un modèle HTML avec une police de sans étiquette, la taille 6, bords en noir et blanc tampon 5 ...
COUCHE
NAME secteur02Zone
TYPE POLYGONE
STATUS OFF
TRANSPARENCE 50
ÉTENDUE 607852 1935706 610804 1938807 METADATA
"DESCRIPTION" "Thème par secteur de valeur 02"
"RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred Prop Zone Périmètre VALEUR"
FIN
DONNÉES PALENQUE_SECTOR01
TEMPLATE "ttt_query.html"
TOLÉRANCE 5
#TOLERANCEUNITS PIXELS
LABELITEM "VALOR"
CLASSITEM "VALOR"
LABELCACHE ON
CLASSE
SYMBOL 1
COULEUR 128 128 128
OUTLINECOLOR 0 0 0
NOM "ZonaNULL"
EXPRESSION ([VALEUR] = 0)
LABEL
ANGLE AUTO
COULEUR 0 0 0
FONT sans
TYPE TRUETYPE
POSITION cc
FAUX PARTIALS
BUFFER 5
TAILLE 6
OUTLINECOLOR 200 200 200
FIN
END #class Valeur 0
CLASSE
SYMBOL 3
COULEUR 255 128 128
#COLOR -1 -1 -1 #SIN REMPLISSAGE
.... et si près de
FIN
END #Class Value
FIN # couche
En conclusion
Par conséquent, travailler avec mapserver, bien que cela soit assez simple, devient complexe et très limité pour les gros travaux car tout est dans le .map. Le plus gros inconvénient est que tout se fait à pied, comme définir chaque couleur dans un thème, et c'est pourquoi des outils tels que CartoWeb apparaissent, qui fonctionnent sur Mapserver mais apportent des plugins intégrés et des exemples avec des caractéristiques qui font ressembler cette version primitive la readme premier:
- Travailler des images séparées avec AJAX afin de les rafraîchir séparément
- Analysez le code, à condition qu'un script réécrit le .map en fonction des critères paramétriques
- Défilement arrière dynamique sans nécessiter de rafraîchissement, comme s'il s'agissait d'une couche flash
- Édition de vecteur en ligne, écriture de cache immédiate
- Télécharger la couche sous forme de vecteur
- Exporter vers Google Earth
- Générer du fichier PDF à partir du déploiement
Dans un prochain, nous allons jeter un oeil à CartoWeb, je laisse ici le lien vers les exemples principaux.
Pas moyen d'avoir le modèle de sortie standard phtml grâce
Salut,
J'essaie d'appeler une couche de la .map comme suit:
COUCHE
NOM casas_prueba
POINT DE TYPE
CONNECTIONTYPE OGR
CONNEXION #"virtuel.ovf"
»
xxxxx
EXÉCUTIF …….
eess_id
wkbPoint
WGS84
»
Mon problème est que le service DSN pose des problèmes: lors de la demande d'un GetCapabilities, il renvoie le mot de passe de la base de données ... puis-je appeler un fichier pour éviter de "donner" le mot de passe ou s'agit-il d'une erreur DSN ???? Merci!
MapServer est un projet Open Source populaire dont le but est d'afficher des cartes spatiales dynamiques sur Internet. Un lecteur monté est un lecteur mappé à un dossier vide sur un volume qui utilise le système de fichiers NTFS. Les lecteurs montés fonctionnent comme tous les autres lecteurs, mais ils reçoivent des chemins de lecteur au lieu de lettres de lecteur.