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

 > 

Mise en place d'une plateforme de cartographie dynamique

( Télécharger le fichier original )
par Issa Baldé
Ecole Supérieure Polytechnique de Dakar - Ingénieur de conception en Génie Informatique 2008
  

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

INDEX

A

analyse ..6, 7, 10, 13, 16, 20, 27, 28, 29, 31, 34, 35, 37, 38, 40, 41, 49, 50, 51, 78, 83

Apache 21, 70, 73, 74, 75, 77, 78

C

cartographie 15, 20

G

GéoServer 66

I

IIS. 21, 70, 73, 74, 75

M

mapfile 67, 68

MapScript 67, 68, 76, 77, 78

MapServer 67

méthode 28

MySQL 22, 60, 61, 62, 63, 64

O

OGC 9, 10, 61, 62, 63, 64, 66, 67

Oracle 60, 61, 62, 63, 64, 65, 70

P

PHP 9, 67, 68, 71, 76, 77, 78, 85

PostgreSQL 22, 60, 61, 62, 63, 64, 65, 70, 76, 77, 78

R

rasters 15, 66

S

servlet 21, 22

SGBD 9, 26, 60, 77, 78

SGBDR 7, 20, 22, 65, 76

shapefile 67, 70

SIG 23

U

UML 33, 37

UP. 9, 31, 32, 33, 34

V

vecteurs 15

vectoriel 15, 23, 70

W

Webmapping 15, 16, 20

Z

Zeus 73, 74, 75

ANNEXES

Annexe A: Extraits du diagramme de classes de l'API mapscript

Les classes reliées à l'objet map

Les classes reliées à l'objet « layer »

Les classes reliées à l'objet shape

Annexe B : Extrait du code source de notre application

Extrait 1 : Création et affichage de la carte

/*************************************************************************************)

(**** CopyRight ltisig Juin 2008 *************)

(**** Auteur: Issa BALDE stagiaire DIC3 G.Info *************)

(************************************************************************************)*/

// on crée l'objet map

$map = ms_newMapObj($map_path . $map_file);

$map->setSymbolSet($symb_path);// definition du fichier des symbole

$layer = ms_newLayerObj($map);

// Nom du layer

$layer->set( "name",$choix_couche);

// Affichage : oui par défaut

$layer->set("status",MS_DEFAULT);

// Type de connexion = PostGIS

$layer->set("connectiontype",MS_POSTGIS);

$layer->set("connection",

"user=".$user." dbname=".$db." host=".$hote);

$layer->set("labelitem",$label);// affichage des etiquettes ou labels

// Les METADATA

$layer->setMetaData("Description",$choix_couche);

$layer->setMetaData("Result_Fields","nom");

$layer->setMetaData("Layer",$choix_couche);

//On récupere les colones géometriques

$MS_GEOM = pg_query($conn,

"SELECT f_geometry_column,type FROM

geometry_columns WHERE f_table_name

LIKE '".$choix_couche."'"

);

$colonne_geometrique = pg_result( $MS_GEOM,0,0 );

$type_geometrique = pg_result( $MS_GEOM,0,1 );

// La requete spatiale

$layer->set( "data",$colonne_geometrique." from ".$choix_couche);

switch ($type_geometrique)

{

case "POINT":

$layer->set("type",MS_LAYER_POINT);

$layer->set("status",MS_ON);

// Ajout de la class

$class = ms_newClassObj($layer);

$class->set("name",$choix_couche);

// Ajout du Label

$label = $class->label;

$label->set("size",MS_SMALL);

$label->color->setRGB("22","8","3");

// Ajout du style

$style = ms_newStyleObj($class);

// Précision sur la taille de l'objet

$style->set("size",7);

$style->set("symbolname","circle");

if(isset($R)&&($R!='')){$style->color->setRGB($R,$G,$B);}else{$style->color->setRGB("255","0","0");}

break;

case "MULTIPOLYGON":

$layer->set("type",MS_LAYER_POLYGON);

$layer->set("status",MS_ON);

$class = ms_newClassObj($layer);

$class->set("name",$choix_couche);

// Ajout du Label

$label = $class->label;

// Précision sur l'affichage de la données de type attributaire

// la couleur, la taille de la donnée ...

$label->set("size",MS_TINY);

$label->set("position",MS_CC);

$label->backgroundcolor->setRGB("0","255","0");

$label->color->setRGB("0","0","0");

$label->outlinecolor->setRGB("255","255","255");

$style = ms_newStyleObj($class);

$style->set("size",5);

if(isset($R)&&($R!='')){

$style->color->setRGB($R,$G,$B);

}else{$style->color->setRGB("255","250","250");}

$style->outlinecolor->setRGB("0","0","0");

break;

case "POLYGON":

$layer->set("type",MS_LAYER_POLYGON);

$layer->set("status",MS_ON);

$class = ms_newClassObj($layer);

$class->set("name",$choix_couche);

// Ajout du Label

$label = $class->label;

// Précision sur l'affichage de la données de type attributaire

// la couleur, la taille de la donnée ...

$label->set("size",MS_TINY);

$label->set("position",MS_CC);

$label->backgroundcolor->setRGB("0","255","0");

$label->color->setRGB("255","0","0");

$label->outlinecolor->setRGB("255","255","255");

$style = ms_newStyleObj($class);

$style->set("size",5);

if(isset($R)&&($R!='')){$style->color->setRGB($R,$G,$B);}else{$style->color->setRGB("255","250","150");}

$style->outlinecolor->setRGB("80","80","255");

break;

default: $layer->set("type",MS_LAYER_LINE );

$layer->set("status",MS_ON);

$class = ms_newClassObj($layer);

$class->set("name",$choix_couche);

// Ajout du Label

$label = $class->label;

// Ajout du style

$style = ms_newStyleObj($class);

// Précision sur l'affichage des données géométriques

// couleur de bourdure en code 128 0 0 pour RGB

$style->set("size",10);

if(isset($R)&&($R!='')){$style->outlinecolor->setRGB($R,$G,$B);}else{$style->outlinecolor->setRGB("128","0","0");}

break;

}

/*-----------------------------------------------------------

------- calcul de l'Extent pour chaque couche ----------

-------------------------------------------------------------*/

$Requete_Extent = "select

xmin(extent(".$colonne_geometrique.")),

ymin(extent(".$colonne_geometrique.")),

xmax(extent(".$colonne_geometrique.")),

ymax(extent(".$colonne_geometrique.")) from ".$choix_couche;

$Resultat_Extent = pg_query( $conn, $Requete_Extent);

while ( $Row_Extent = pg_fetch_object( $Resultat_Extent ))

{

$Xmin[] = $Row_Extent->xmin;

$Ymin[] = $Row_Extent->ymin;

$Xmax[] = $Row_Extent->xmax;

$Ymax[] = $Row_Extent->ymax;

}

}// fin du while

/* --------------------------------------------------------------------------

--------- Calcul de l'Extent générale et des dimensions de l'image -----

---------------------------------------------------------------------------- */

$xmin= min($Xmin);

$ymin= min($Ymin);

$xmax= max($Xmax);

$ymax= max($Ymax);

$longueur_image = 600;

$longueur_extent = abs($xmax-$xmin);

$hauteur_extent = abs($ymax-$ymin);

$rapport_extent = $longueur_extent / $hauteur_extent;

$hauteur_image =$longueur_image / $rapport_extent;

$map->set("width", $longueur_image);

$map->set("height", $hauteur_image);

$map->backgroundcolor->setRGB("0","200","255");

/*------------------------------------------------------------------------------

------------------------------- ajout de la barre d'echelle -----------------

--------------------------------------------------------------------------------*/

$map->scalebar->set("style", 1);

$map->scalebar->set("units", MS_KILOMETERS);

$map->scalebar->set("intervals",4);

$map->scalebar->set("transparent", MS_ON);

$map->scalebar->set("status", MS_EMBED);

$map->scalebar->set("width", 400);

$map->scalebar->color->setRGB(0,0,0);

// echelle

$scaleBar = $map->drawScaleBar();

/*------------------------------------------------------------------------------

------------------------------- ajout de la legende -----------------

--------------------------------------------------------------------------------*/

$map->legend->set("status", MS_ON);

// legende

$legend = $map->drawLegend();

$url_legende=$legend->saveImage($img_path."legende_".session_id().".png");

/*----------------------------------------------------------------------------

------------ Construction de la carte de reference ---------------------------

-----------------------------------------------------------------------------*/

$map->reference->set("image",$img_path."miniMap.png");

$map->reference->set("width",150);

$map->reference->set("height",119);

$map->reference->set("status",MS_ON);

$map->reference->extent->setextent($xmin,$ymin,$xmax,$ymax);

$map->reference->color->setRGB(-1,-1,-1);

$map->reference->outlinecolor->setRGB(255,0,0);

$image_ref=$map->drawReferenceMap();

$url_ref=$image_ref->saveImage($img_path."miniMap.png");

/*-----------------------------------------------------------------

----------- Dessin et sauvaugarde de l'image généré ----

------------------------------------------------------------------*/

$image = $map->draw();

$image->saveImage($img_path.$image_name);

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








"Ceux qui vivent sont ceux qui luttent"   Victor Hugo