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

- ANNEXES -

Annexe 1 Diagramme de classe PHPMapscript (Veremes & DM Solutions Group Inc.) 36

Annexe 2a Script d'authentification 38

Annexe 2b Extrait du script de mesure de surface 39

Annexe 2c Extrait du mapfile (section publique) 40

Annexe 2d Extrait du template (section publique) 41

Annexe 3 Extrait du Guide de Maintenance et Utilisation

(hors description et arborescence de l'application) 42

*

* *

Annexe 1

Diagramme de classe PHPMapscript (Veremes & DM Solutions Group Inc.)

Annexe 2a

Script d'authentification

<?php session_start();

// vérification du remplissage des inputs de la page xxxx.xxx

if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion')

{

if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

function no_cache() {

header("Pragma: no-cache");

header("Cache-Control: no-cache");

}

no_cache();

// connexion à la base de données postgresql "xxxx" en tant que superutilisateur

$connexion = pg_connect("host=xxx.xxx.xxx.xx dbname=xxxx user=xxxxxx password=xxxxxxx");

if ($connexion == 0)

{

erreur('Echec lors de la connexion',true,false);

}

// vérification de l'existence du couple login/pass dans la base de données "xxxx" et //déconnexion

$sql = "SELECT count(*) FROM xxxxxxx WHERE pseudo='".$_POST['login']."' AND passe='".$_POST['pass']."'";

$req = pg_query($sql) or die('Erreur SQL');

$data = pg_fetch_array($req);

pg_free_result($req);

pg_close();

// si le couple login/pass renseigné existe, renvoi vers l'entrée sécurisée du

// serveur cartographique

if ($data[0] == 1) {

$_SESSION['pseudo'] = $_POST['login'];

header('Location: /xxxxx/xxx.xxxxx');

exit();

}

// si le couple login/pass renseigné n'existe pas, renvoi vers une nouvelle page

// d'identification

elseif ($data[0] == 0) {

header('Location: xxxxx.xxxx');

exit();

}

}

else {

header('Location: xxxxx.xxxx');

exit();

}

}

?>

Annexe 2b

Extrait du script de mesure de surface

<?php

...

function {$szName}()

{

// cree nouveaux calques pour tracage lignes

var sId = "";

gaszAreaDivPointNames = new Array();

gaszAreaDivNodeNames = new Array();

var content = "<img src='{$szImagesURL}ruler_pix.gif' width='6' height='6'><br>";

var content2 = "<img src='{$szImagesURL}ruler_node.gif' width='7' height='7'><br>";

for (var i=1; i < {$nPoints}; i++)

{

// cree calques points

sId = 'areaPointLayer'+i;

CWCDHTML_CreateLayer(sId, 10, 10, 0, 0, false, content);

CWCDHTML_SetLayerZOrder( sId, 20 );

gaszAreaDivPointNames.push( sId );

// cree calques noeuds

sId = 'areaNodeLayer'+i;

CWCDHTML_CreateLayer(sId, 10, 10, 0, 0, false, content2);

CWCDHTML_SetLayerZOrder( sId, 20 );

gaszAreaDivNodeNames.push( sId );

}

// init objet polygone

goROIAreaObj = new CWCPolygonROI({$nPoints});

goROIAreaObj.pointImageWidth = 6;

goROIAreaObj.nodeImageWidth = 7;

goROIAreaObj.left = gMapWhspc;

goROIAreaObj.top = gMapWvspc;

goROIAreaObj.right = gMapWhspc + gMapWiWidth;

goROIAreaObj.bottom = gMapWvspc + gMapWiHeight;

goROIAreaObj.edgeColor = goCWCROIManager.szEdgeColor;

goROIAreaObj.edgeWidth = goCWCROIManager.nEdgeWidth;

goROIAreaObj.fillLayer = goCWCROIManager.bUseFill;

// ET ----------------------------------------------------------------------------------

// ATTENTION declarer meme code couler que dans ROIRenderer (lignes 94 et 139).

goROIAreaObj.fillColor = 'ffcc33';

// ET ----------------------------------------------------------------------------------

goROIAreaObj.fillOpacity = goCWCROIManager.nFillOpacity;

// affiche polygone

goROIAreaObj.Show();

}

...

?>

Annexe 2c

Extrait du mapfile (section publique)

###MAPFILE

###APPLICATION CHAMELEON/MAPSERVER SERVEUR CARTOGRAPHIQUE MAIRIE DE CREST

###################################

MAP

NAME SERVCREST

STATUS ON

SIZE 650 450

SYMBOLSET ../xxx/xxxx.sym

EXTENT 808891 269917 816398 277471

UNITS METERS

SHAPEPATH "../xxxx"

IMAGECOLOR 255 255 255

IMAGETYPE JPEG

FONTSET ../xxx/xxxx.txt

TRANSPARENT FALSE

OUTPUTFORMAT

NAME JPEG

DRIVER "GD/JPEG"

MIMETYPE "image/jpeg"

IMAGEMODE PC256

EXTENSION "jpg"

FORMATOPTION "QUALITY=80"

END

###################################

. . .

##################################

#debut parametrage des couches

###################################

#theme xml legende #Zonage PLU#

LAYER

GROUP "Zonage PLU"

NAME "[nom_table]"

METADATA

SPATIALSEARCH "gid,refzone,surface,perimetre,nbpolygone,type,stype"

SPATIALSEARCHLIST ""

END

TYPE POLYGON

LABELITEM "refzone"

STATUS OFF

HEADER "gid^|refzone^|surface^|perimetre^|type^|stype^|legende^|"

CONNECTIONTYPE postgis

CONNECTION "host=xxx port=xxxx user=xxx password=xxxxx dbname=xxxxxxx"

DATA "the_geom from [nom_table]"

CLASS

STYLE

COLOR 193 191 255

OUTLINECOLOR 100 100 100

END

LABEL

SIZE MEDIUM

POSITION CC

COLOR 255 255 255

BACKGROUNDCOLOR 193 191 255

END

TEMPLATE "ttt_query.html"

END

TOLERANCE 5

TRANSPARENCY 55

PROJECTION "init=epsg:27593"

END

END#layer

. . .

Annexe 2d

Extrait du template (section publique)

...

<!-- DEBUT DU CONTAINER CSS PRINCIPAL -fichier htdocs/style2.css- -->

<div id="Cadre">

<form method="post">

<div id="Banniere">

<img SRC="images/ban_templatepublic.jpg" WIDTH="939" BORDER="0" HEIGHT="68" USEMAP="#ban_templatepublic">

</div>

<cwc2 type="LegendTemplate" visible="false" embedded="true"

template="legend_template.html" popupstyleresource="TextButtons"

popupwidth="500" popupheight="400" status="false" menubar="false"/>

<!-- BARRE NAVIGATION CARTE -fichier htdocs/style2.css- -->

<div id="BarreNavigation" name="NavToolsLayer">

<table border="0" cellspacing="4" cellpadding="0" align="left">

<tr>

<!-- Appel de la liste des fonctionnalités disponibles dans la barre de navigation -->

[#navigation.html#]

</tr>

</table>

</div>

<!-- LIENS SORTIE -fichier htdocs/style.css- -->

<div id="Liens" align="right">

<table border="0" cellspacing="3" cellpadding="0">

<tr><td>

<cwc2 type="PrintProduction" visible="true" popupheight="500" popupwidth="600" template="legend_template.html" styleresource="TextButtons2" image="icons/icon_print.png" imagetip="Imprimer ou sauvegarder" label="Imprimer">

<image state="normal"/>

<image state="selected"/>

<image state="hover"/></cwc2>

</td></tr>

</table>

</div>

<!-- LEGENDE DONNEES -fichier htdocs/style2.css- -->

<div id="LegendLayer" name="LegendLayer">

<table width="185px" border="0" cellspacing="0" cellpadding="0">

<cwc2 type="XMLThemeLegend" popupwidth="185" popupheight="560">

<selection name="SampleLegend" template="templatepublic.html" themefile="legendepublic.xml" contextfile="mapfilepublic.map" rendererfile="renderer.html"/>

</cwc2>

</table>

<!-- BOUTON ACTUALISER CARTE -fichier htdocs/style2.css- -->

<div id="BoutonUpdate">

<table cellspacing="0" cellpadding="0">

<tr><td>

<cwc2 type="UpdateMap" styleresource="TextButtons2" visible="true" image="icons/icon_update.png" imagetip="Actualiser" label="Actualiser">

<image state="normal"/>

<image state="selected"/>

<image state="hover"/>

</cwc2>

</td></tr>

</table>

</div></div>

<!-- FENETRE CARTE MAPDHTML -fichier htdocs/style2.css- -->

<div id="Carte" name="MainMapLayer">

<cwc2 type="MapDHTML" bordercolor="#ffffff" visible="true" width="745" height="499" allowresize="false" marqueecolor="FF0000" marqueewidth="2" minscale="1"/>

</div>

...

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

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.

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

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

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

- ______''_______''_______ `setenv.bat'

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.

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 (PostgreSQLWin32/data).

4. Redémarrer Apache en exécutant le script `apache-restart.bat' dans ms4w.

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).

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 commandes.

5. Ouvrir l'invite de commande 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

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]

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/chameleon/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).

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

4. Création de la table `[nom_table]' 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 commande SQL.

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

Vérifier la présence dans la table `[nom_table]' 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 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.

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 `del-ms_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).

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

END

Personnaliser les paramètres d'étiquetage 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ù `champ1' 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ù `champ1' etc correspondent aux noms des champs attributaires que l'on veut rendre interrogeables à partir du module de requê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 `del-buttons.bat' et en supprimant manuellement les fichiers et répertoires du type sess_xxxx contenus dans c:\ms4w\tmp.

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/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 `[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'.

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.

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.

*

* *

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








"Il existe une chose plus puissante que toutes les armées du monde, c'est une idée dont l'heure est venue"   Victor Hugo