WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Développement d'une application de webmapping MapServer/PostGIS

( Télécharger le fichier original )
par Julien Berron
Université d'Avignon et des Pays de Vaucluse - Master 2 Géomatique et Conduite de Projets 2006
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Annexe 3
Extrait Guide de Maintenance et Utilisation
(hors description et arborescence de l'application)

Extrait Guide de Maintenance et Utilisation
- SOMMAIRE -

1. Description du produit

2. Installation 43

Etape 1 : Installation d'Apache, PHP, Mapserver et librairies (GDAL/OGR, PROJ4). 43

Etape 2 : Mise à jour des variables d'environnement Windows. 43

Etape 3 : Copie des fichiers de l'application. 43

Etape 4 : Initialisation de PostgreSQL/PostGIS et création des bases de données 43

Etape 5 : Importation des données (création des tables). 45

Etape 6 : Tâches planifiées. 47

3. Manipulations courantes 47

Manipulation 1 : Mettre à jour une couche. 47

Manipulation 2 : Importer une nouvelle couche. 48

Manipulation 3 : Changer les paramètres d'affichage d'une couche. 50

Manipulation 4 : Définir un nouveau login/mot de passe pour l'entrée limitée. 50

Manipulation 5 : Créer une nouvelle base de données avec champ géométrique. 50

Manipulation 6 : Créer une nouvelle base de données simple 51

Manipulation 7 : Créer une nouvelle table simple. 51

4. Annexes

Annexe 1 : Table de correspondance des couches.

Annexe 2 : Arborescence de l'application.

a. Arborescence du répertoire c:\ms4w

b. Arborescence du répertoire c:\PostgreSQLWin32

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

2. Installation

L'application est livrée avec 2 CDROM contenant :

· Disque 1 : Distribution originale (sources et bins).

· Disque 2 : Application, shapes, images produites pour l'application et manuel.

4 Etape 1 : Installation d'Apache, PHP, Mapserver et librairies (GDAL/OGR, PORJ4).

1. Copier les répertoires `ms4w' et `PostgreSQLWin21' (Disque 1) à la racine du disque dur.

2. Ouvrir le répertoire `ms4w' et : - double-cliquer sur le fichier `apache-install.bat'

- '' '' `sete nv. bat'

4 Etape 2 : Mise à jour des variables d'environnement Windows.

1. Ouvrir la fenêtre de mise à jour des variables d'environnement de Windows (clic droit sur Poste de Travail > Propriétés > onglet Avancé > Variables d'environnement).

2. Copier la 1re ligne du fichier `variables_environnement.txt' (Disque 1) dans le PATH (sélectionner la ligne `PATH' dans la partie `variables système' de la fenêtre et cliquer sur modifier puis coller la ligne en vérifiant bien qu'un ` ;' sépare chaque chemin renseigné).

3. Créer 4 nouvelles variables (PGHOME c:\PostgreSQLWin32, PGDATA c:\PostgreSQLWin32\data, PGHOST localhost, PGPORT 5432) comme indiqué dans le fichier `variables_evironnement.txt' (Disque 1). Pour cela cliquer sur nouveau dans la partie `variables système' de la fenêtre et renseigner les 2 champs pour chaque nouvelle variable.

4. Redémarrer la machine. 4 Etape 3 : Copie des fichiers de l'application.

1. Copier le contenu du dossier `ms4w' du disque 2 (application/ms4w) dans le répertoire `ms4w' et ses sous-répertoires de la machine.

2. Copier le contenu du dossier `PostgreSQLWin32' du disque 2 (application/PostgreSQLWin32) dans le répertoire `PostgreSQLWin32 et ses sous-répertoires de la machine.

3. Copier le dossier shp du disque 2 (shp_&_images/shp) dans le répertoire data de PostgreSQL (PostgreSQLWi n32/data).

4. Redémarrer Apache en exécutant le script `apache-restart.bat' dans ms4w. 4 Etape 4 : Initialisation de PostgreSQL/PostGIS et création des bases de données.

1. Créer un compte utilisateur simple Windows (non administrateur) nommé `[ utilisateur] ' et avec pour mot de passe `[passe]' (Démarrer > Panneau de configuration > Comptes d'utilisateurs).

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

2. Ouvrir une session comme administrateur PostgreSQL. Dans Démarrer > Exécuter :

runas /user:[ utilisateur] cmd

L'invite de commandes s'ouvre et vous demande d'entrer le mot de passe utilisateur. Entrer :

[passe]

3. Initialiser PostgreSQL. Taper :

cd c:\windows\system32
Initdb -A trust

4. Fermer l'invite de comma ndes.

5. Ouvrir l'invite de comma nde en tant qu'administrateur Windows. Démarrer > Tous les programmes > Accessoires > Invite de commandes

6. Installer PostgreSQL en tant que service Windows. Taper :

cd c :\ Documents and Settings\[ ici_nom_compte_administrateur_windows]
pg_ctl register -u [utilisateur] -p [passe]

7. Démarrer le service PostgreSQL. Taper :

net start postgresql

Note : si Windows refuse de démarrer le service postgresql, le faire manuellement. Pour cela Démarrer > Panneau de configuration > Outils d'administration > Services.

Chercher dans la liste le service `PostgreSQL'. Faire un clic droit dessus et ouvrir les propriétés. Dans l'onglet `général `, choisir le type de démarrage automatique. Dans l'onglet `connexion' choisir `Ouvrir un session en tant que ce compte' (.\postgresql). Renseigner les 2 champs mot de passe (entrer `[passe]'). Retourner dans l'onglet `général' et cliquer sur démarrer puis appliquer. Fermer toutes les fenêtres.

8. Redémarrer la machine et vérifier que le service postgresql (postgres.exe) a bien été démarré par Windows. Si le problème persiste vous pouvez utiliser le script `start_postgresql.bat' (Disque 2) en tâche planifiée au démarrage pour lancer automatiquement le service.

Dans l'invite de commandes, les commandes pg_ctl start et pg_ctl stop permettent de démarrer ou arrêter manuellement le service postgresql.

9. Créer la base de données `[ nom _bdd1] ' (sans accent) pour les couches. Ouvrir l'invite de commande en tant qu'administrateur PostgreSQL : Dans Démarrer > Exécuter :

runas /user:[ utilisateur] cmd

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

L'invite de commandes s'ouvre et vous demande d'entrer le mot de passe utilisateur. Entrer :

[passe]

10. Taper :

cd c:\postgresqlwin32
createdb [nom_bdd1]
createlang plpgsql [nom_bdd1]

11. Charger l'extension PostGIS et les projections dans PostgreSQL pour la base de données `[nom_bdd1] '. Taper :

psql -d [ nom_bdd1] -f c:\PostgreSQLWin32\share\postgresql\postgis.sql
psql -d [ nom_bdd1] -f c:\PostgreSQLWin32\share\postgresql\spatial _ref _sys.sql

12. Créer la base de données `[ nom_bdd2] ' pour les logins et les mots de passe. Taper :

cd c:\postgresqlwin32
createdb [nom_bdd2]
createlang plpgsql [nom_bdd2]

-3 Etape 5 : Importation des données (création des tables).

Les couches à intégrer à la base de données sont contenues dans le répertoire PostgreSQLWin32/data/xxxx. Les copies de sauvegarde sont dans le dossier shp_&_images/xxxx du disque 2.

1. Ouvrir l'invite de commande en tant qu'administrateur PostgreSQL : Dans Démarrer > Exécuter :

runas /user:[ utilisateur] cmd

L'invite de commandes s'ouvre et vous demande d'entrer le mot de passe utilisateur. Entrer :

[passe]

2. Importer couche par couche les données dans la base de données `donnees'. Taper :

cd c :\postgresqlwin32\ data\ xxxx
shp2pgsql -s 27593 -c [nom_de_la_table_d'origine.shp] [nouveau_nom_de_la_table] |
psql [nom_bdd1]

Note : le nouveau nom de la table doit correspondre à celui renseigné dans le mapfile ( c:/ms4w/apps/chameleo n/map) et le fichier de légende xml c:/ms4w/apps/chameleon/htdocs). Si une table doit être remplacée ou mise à jour, veiller à entrer le même nom que la table postgresql d'origine (voir 3. Manipulations courantes). Voir tableau des correspondances des couches en annexe (Annexe 1 : Table de correspondance des couches).

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

3. Redémarrer Apache (exécuter le script `apache-restart.bat' dans ms4w) et la machine.

4. Création de la table `[ nom_t able] ' dans la base de données `[ nom_bdd2]'.

Accéder à l'interface d'administration de la base de données (PhpPgAdmin) en entrant l'url http://xxxx/phpPgAdmin/index.php dans la barre d'adresse du navigateur.

Entrer le login [ utilisateur] et le mot de passe [passe] pour vous logger.

Cliquer sur la base de données `[ nom _bdd2]' et sur `SQL' en haut à droite de l'écran pour ouvrir une invite de commande SQL.

Taper dans la fenêtre :

CREATE TABLE [nom _table] ("Pseudo" character varying(20) DEFAULT ' '::character varying NOT NULL,"Passe" character varying(20) DEFAULT ' '::character varying);

Ou copier directement cette commande SQL à partir du fichier
`SCRIPT_create_table_authentification.sql' contenu sur le disque 2 (application\commandes SQL).

5. Importer un couple login/mot de passe dans la table `[ nom _table]' de la base de données

`[nom_bdd2]'.

Retourner dans l'invite de commande SQL et taper dans la fenêtre :

INSERT INTO [nom _table] VALUES ('[ login] ','[mdp] ');

[login] et [mdp] doivent être remplacés respectivement par le login choisi et par le mot de passe correspondant. Attention à conserver les guillements.

Ou copier directement cette commande SQL à partir du fichier `SCRIPT_insert_login_et_mdp.sql' contenu sur le disque 2 (application\commandes SQL).

Cette opération doit être répétée pour chaque nouveau couple login/mot de passe souhaité.

6. Fermer l'invite de comma nde SQL.

Vérifier l'existence de la table `[nom_t able]' dans la fenêtre de gauche de l'interface
(arborescence déroulante).

Vérifier la présence dans la table `[ nom_t able] ' du/des couple(s) login/mot de passe importés en cliquant sur la table `[ nom _table] ' et sur parcourir.

7. Se déconnecter de PhpPgAdmin (lien de déconnexion en haut à droite de l'écran) et fermer la fenêtre.

A ce stade, il n'est pas nécessaire d'effectuer d'autres manipulations dans PostgreSQL pour exploiter le serveur cartographique. Cependant, une documentation complète du SGBD est dispo ni ble à l' adresse http://docs.postgresqlfr.org/pgsql-8.1.2-fr/index.html.

La liste des commandes SQL est également disponible à l'adresse
http://docs.postgresqlfr.org/pgsql-8.1.2-fr/sql-commands.html.

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

-3 Etape 6 : Tâches planifiées.

Il est souhaitable de vider régulièrement le répertoire tmp (ms4w/tmp) en exécutant les scripts `delms_tmp. bat' (au 1er niveau de l'arborescence) et `del-buttons.bat' (dans tmp/ms_tmp).

Pour automatiser cette tâche créer une tâche planifiée par Windows.

Démarrer > Tous les programmes > Accessoires > Outils système > Tâches planifiées.

Effacer manuellement les fichiers et dossiers dont le nom est du type `sess_xxxxx' (au 1er niveau de l'arborescence) et vider régulièrement le log `ms_error.txt'.

Attention cependant à ne pas supprimer les sous-répertoires (auquel cas les recréer ou les récupérer à partir de la sauvegarde contenue dans le disque 2).

 

3. Manipulations courantes

Manipulation 1 : Mettre à jour une couche.

1. Exporter en shape (.shp) la table mise à jour via le traducteur universel de MapInfo (Outils > Traducteur universel) dans le répertoire c:\PostgreSQLWin32\share\postgresql\xxxx.

2. Dans PhpPgAdmin, supprimer la table à mettre à jour (cliquer sur la base de données `[nom_bdd1]' et dans la fenêtre de droite listant les tables contenues dans la base, cliquer sur supprimer dans la ligne correspondant à la table à mettre à jour).

Note : Il est nécessaire de préalablement effectuer cette suppression puisque PostgreSQL ne peut pas écraser une couche existante et la couche mise à jour doit avoir le même nom que l'ancienne afin d'éviter de la renommer dans le mapfile et le fichier xml de légende.

3. Importer la couche mise à jour dans la base de données `[nom_bdd1]'. Pour cela, ouvrir l'invite de commande en tant qu'administrateur PostgreSQL : Dans Démarrer > Exécuter :

runas /user:[ utilisateur] cmd

L'invite de commandes s'ouvre et vous demande d'entrer le mot de passe utilisateur. Entrer :

[passe]

Importer couche par couche les données dans la base de données `[ nom_bdd1] '. Taper :

cd c :\postgresqlwin32\ data\ xxxx

shp2pgsql -s 27593 -c [nom_de_la_table_mise_a_jour.shp] [nom_de_la_table] | psql

[nom_bdd1]

Note : le nom de la table doit être le même que celui de l'ancienne table supprimée. Voir tableau des correspondances des couches en annexe (Annexe 1).

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

Manipulation 2 : Importer une nouvelle couche.

1. Exporter en shape (.shp) la nouvelle table via le traducteur universel de MapInfo (Outils > Traducteur universel) dans le répertoire c:\PostgreSQLWin32\share\postgresql\xxxx.

2. Importer la nouvelle couche dans la base de données `[ nom_bdd1]'. Pour cela, ouvrir l'invite de commande en tant qu'administrateur PostgreSQL :

Dans Démarrer > Exécuter :

runas /user:[ utilisateur] cmd

L'invite de commandes s'ouvre et vous demande d'entrer le mot de passe utilisateur. Entrer :

[passe]

Importer la nouvelle couche dans la base de données `[ nom_bdd1] '. Taper :

cd c :\postgresqlwin32\ data\ xxxx
shp2pgsql -s 27593 -c [nom_de_la_nouvelle_table.shp] [nom_de_la_nouvelle_table] |
psql [nom_bdd1]

3. Mettre à jour le mapfile ( c:\ms4w\apps\chameleon\map).

Editer le/les mapfile(s) (mapfilepublic.map et mapfilelimite.map) avec le bloc note.

Dans la section ` #paramètres des couches#' :

Copier un bloc `layer' (commençant par LAYER et finissant par END#LAYER) existant du même type que celui de la nouvelle couche (polygon, line, point) défini à la ligne :

TYPE POLYGON (ou LINE ou POINT)

Coller le nouveau bloc layer dans le groupe et suivant la position relative voulue (Mapserver dessine les couches dans l'ordre défini dans le mapfile).

Paramétrer le nouveau layer :

Mettre à jour avec le nom entré dans la base de données, les lignes :

NAME "xxxx"

Et :

DATA "the _geom from xxxx"

Où `xxxx' est le nom de la nouvelle couche entré dans la base de données `donnees'. Paramétrer la couleur d'affichage de la couche en modifiant les lignes suivantes surlignées:

CLASS STYLE

COLOR 0 51 255

OUTLINECOLOR 255 255 255

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

END

Personnaliser les paramètres d'étiquettage en modifiant ou ajoutant les lignes suivantes:

LABELITEM "champx"

Où `champx' correspond au nom de champ servant à l'étiquetage. Et :

LABEL

SIZE MEDIUM #taille de l'étiquette

MINFEATURESIZE AUTO #taille minimale d' affich. POSITION CC #position par rapport à l' objet COLOR 162 163 163 #couleur de la police BACKGROUNDCOLOR 207 255 255 #couleur de fond END

Sélectionner les champs interrogeables par clic en les listant dans la ligne :

HEADER "champ1^ | champ3^ | champ7^ |"

Où `champ 1' etc correspondent aux noms des champs attributaires que l'on veut rendre interrogeables par clic à partir de l'outil de navigation `informations' de l'interface web.

Sélectionner les champs interrogeables par requête attributaire en les listant dans la ligne du bloc

METADATA :

SPATIALSEARCH "champ1, champ7,champ10 "

Où `champ 1' etc correspondent aux noms des champs attributaires que l'on veut rendre interrogeables à partir du module de req uête attributaire de l'interface web.

Note : L'ensemble des paramètres du mapfile sont détaillés à l'adresse
http://fa.vdb.free.fr/MapServer/doc/mapfile-reference_fr.html .

4. Mettre à jour le fichier de légende xml ( c:\ms4w\apps\chameleon\htdocs). Editer le/les fichiers(s) de légende xml (legendepublic.xml et legendelimite.xml) avec le bloc note.

Copier un groupe (contenu dans les balises <group> et </group>) existant et le coller dans le `thème' xml (groupe de layer dans le mapfile) où la couche doit être affichée.

<group name="nom" ABSTRACT="TBA" visible="true" icon="images/ .gif"> <layer name="xxxx"/>

</group>

 

`xxxx

' correspond au nom de la table entrée dans la base de données et à la ligne `NAME' du mapfile et `nom' correspond au nom de la couche souhaité pour l'affichage dans la légende de l'interface web.

5. Vider le répertoire tmp ( c:\ms4w\tmp) en exécutant les script `del-ms_tmp.bat' et `delbuttons.bat' et en supprimant manuellement les fichiers et répertoires du type sess_xxxx contenus dans c:\ms4w\tmp.

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

6. Redémarrer Apache en exécutant le script `apache-restart.bat' dans c:\ms4w. Manipulation 3 : Changer les paramètres d'affichage d'une couche.

Voir point 3. de la manipulation 2 `Importer une nouvelle couche' et listing des paramètres du mapfile à l'adresse http://fa.vdb.free.fr/MapServer/doc/mapfile-reference_fr.html .

Manipulation 4 : Définir un nouveau login/mot de passe pour l'entrée limitée.

Accéder à l'interface d'administration de la base de données (PhpPgAdmin) en entrant l'url http://localhost/phpPgAdmi n/i ndex.php dans la barre d'adresse du navigateur ou en cliquant sur le lien `Administrer' de la section protégée du serveur cartographique.

Entrer le login [ utilisateur] et le mot de passe [passe] pour vous logger.

Cliquer sur la base de données `[ nom _bdd2]' et sur `SQL' en haut à droite de l'écran pour ouvrir une invite de commande SQL.

Importer un couple login/mot de passe dans la table `[ nom _table] ' de la base de données `[ nom _bdd2] ' en entrant la ligne suivante :

INSERT INTO [nom _table] VALUES ('[ login] ','[mdp] ');

Où [login] et [mdp] sont respectivement le login choisi et le mot de passe correspondant. Attention à conserver les guillemets.

Ou copier directement cette commande SQL à partir du fichier `SCRIPT_insert_login_et_mdp.sql' contenu sur le disque 2 (application\commandes SQL).

Cette opération doit être répétée pour chaque nouveau couple login/mot de passe souhaité. Manipulation 5 : Créer une nouvelle base de données avec champ géométrique.

Créer la base de données `xxxx' (sans accent) devant contenir des objet géographiques (nécessité de charger l'extension PostGIS et les projections).

Ouvrir l'invite de commande en tant qu'administrateur PostgreSQL :

Dans Démarrer > Exécuter :

runas /user:[ utilisateur] cmd

L'invite de commandes s'ouvre et vous demande d'entrer le mot de passe utilisateur. Entrer :

[passe]

Taper :

cd c:\postgresqlwin32
createdb xxxx
createlang plpgsql xxxx

Charger l'extension PostGIS et les projections dans PostgreSQL pour la base de données `xxxx'.

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

Taper :

psql -d xxxx -f c:\PostgreSQLWin32\share\postgresql\postgis.sql
psql -d xxxx -f c:\PostgreSQLWin32\ share\postgresql\ spatial _ref _sys . sql

Manipulation 6 : Créer une nouvelle base de données simple.

Créer la base de données `yyyy' ne devant pas contenir d'objet géographiques. Ouvrir l'invite de commande en tant qu'administrateur PostgreSQL : Dans Démarrer > Exécuter :

runas /user:[ utilisateur] cmd

L'invite de commandes s'ouvre et vous demande d'entrer le mot de passe utilisateur. Entrer :

[passe]

Taper :

cd c:\postgresqlwin32
createdb yyyy
createlang plpgsql yyyy

Manipulation 7 : Créer une nouvelle table simple.

Création de la table `nouvelle_table' composée des champs `Nom' et `Prénom', dans la base de données `yyyy'.

Accéder à l'interface d'administration de la base de données (PhpPgAdmin) en entrant l'url http://xxxx/phpPgAdmin/index.php dans la barre d'adresse du navigateur ou en cliquant sur le lien `Administrer' de la section protégée du serveur cartographique.

Entrer le login [ utilisateur] et le mot de passe [passe] pour vous logger.

Cliquer sur la base de données `yyyy' et sur `SQL' en haut à droite de l'écran pour ouvrir une invite de commande SQL.

Taper dans la fenêtre :

CREATE TABLE nouvelle _table ("Nom" character varying(20) DEFAULT ' '::character varying NOT NULL,"Prenom2" character varying(20) DEFAULT ' '::character varying);

Où `Nom' et `Prenom' sont ici de type character flottant limité à 20 caractères.

Importer un couple Nom/Prénom dans la table `nouvelle_table' de la base de données `yyyy'. Dans l'invite de commande SQL de PhpPgAdmin taper :

INSERT INTO nouvelle _table VALUES('[nom] ','[prenom] ');

Où [nom] et [Prenom] doivent être remplacés par le couple Nom/Prénom à entrer dans la table. Attention à conserver les guillemets.

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

Note : Une documentation complète du SGBD PostgreSQL est disponible à l'adresse
http://docs.postgresqlfr.org/pgsql-8.1.2-fr/index.html.

La liste des commandes SQL est également disponible à l'adresse
http://docs.postgresqlfr.org/pgsql-8.1.2-fr/sql-commands.html.

*
* *

Université d'Avignon et des Pays de Vaucluse - 2006-2007
Master 2 Professionnel Géomatique et Conduite de Projets de Développement - Julien Berron

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Soit réservé sans ostentation pour éviter de t'attirer l'incompréhension haineuse des ignorants"   Pythagore