#1 Mon 26 May 2014 12:57
- abdelbasset
- Participant occasionnel
- Date d'inscription: 14 May 2014
- Messages: 11
Phpmapscript
Excusez-moi mon francais est pas bien :d
Bonjours
encours en stage en géomatique ,mon encadrement me demande de créer une application WEB qui permet d'afficher une carte dynamique grace à serveur carthographique (MAPSERVER et le sgbd POSTGRESQL et l'extention POSTGIS )
j'ai créer mon mapfile .il fonctionne bien
j'ai modifier mon mapfile àl'aide du PHPMAPSCRIPT ,il fonctionne bien
le probléme c'est quand je modifier mon MAPFILE avec PHPMAPSCRIPT et j'ajoute une class à mon mapfile ... la premiére class reste ,
je veux supprimer la premiére classe
Voila mon Code :
<?php
define( "MAPFILE", "C:/ms4w/apps/gmap/htdocs/gmap75.map" );
define( "MODULE", "php_mapscript.dll" );
// load the mapscript module
if (!extension_loaded("MapScript")) dl(MODULE);
//
// Paramètres pour le serveur PostgreSQL
//
$hote = "localhost";
$base_de_donnees = "APIWHCE";
$utilisateur = "postgres";
$mot_de_passe = "whitehouse@2014";
$table_choisie = $_POST['table'];
$critere = $_POST['cr'];
$label = $_POST['label'];
//Paramettre pour mapfile
//nomMApfile
$Nom_Mapfile ="C:/ms4w/Apache/htdocs/test/mapfile/continent.map";
$longueur_image_mapfile = "500";
$mapserver_imagepath = str_replace("\\","/",getcwd())."/";
$mapserver_imageurl = "/img/";
$mapserver_labelitem = "area";
echo "Image path : " .$mapserver_imagepath;
echo "<br /><br />";
echo "Image Url :" .$mapserver_imageurl;
echo "<br /><br />";
$var = ms_TokenizeMap($Nom_Mapfile);
echo "<pre>" ;
print_r($var);
echo "</pre>";
echo "<br /><br />";
//
// Connexion au serveur PostgreSQL
//
$db_handle = pg_connect("host=".$hote." dbname=".$base_de_donnees." user=".$utilisateur." password=".$mot_de_passe."");
// Grab POST parameters
$layerString ='Continent';
// Separate layers on comma
$layers = explode(",", $layerString);
// Load MapServer .map file
$map = ms_newMapObj($Nom_Mapfile);
// Update map file with each layer
for ($i = 0; $i < sizeof($layers); ++$i) {
$layerPrefix = explode(",", $layers[$i]);
$layer = $map->getLayerByName($layerPrefix[0]);
// Change DATA parameter for layer
$class = ms_newClassObj($layer);
$style = ms_newStyleObj( $class );
$style->color->setRGB( 0, 0, 0 );
$style->outlinecolor->setRGB(0, 0, 0 );
$layer->set("name", "$table_choisie");
$layer->set("data", "the_geom FROM \"$table_choisie\" USING UNIQUE gid USING srid=-1");
$layer->setFilter("gid=$critere");
// Calcul de l'extent pour MapServer
// et de la hauteur de l'image
//
$pgsql_extent = "select
xmin(extent(the_geom)),
ymin(extent(the_geom)),
xmax(extent(the_geom)),
ymax(extent(the_geom)) from \"$table_choisie\" where gid=$critere";
$resultat_extent = pg_exec($db_handle,$pgsql_extent);
$xmin = pg_result($resultat_extent,0,0);
$ymin = pg_result($resultat_extent,0,1);
$xmax = pg_result($resultat_extent,0,2);
$ymax = pg_result($resultat_extent,0,3);
echo "Extention : ".$xmin."::".$ymin."::".$xmax."::".$ymax;
$longueur_extent = abs($xmax-$xmin);
$hauteur_extent = abs($ymax-$ymin);
$rapport_extent = $longueur_extent / $hauteur_extent;
$hauteur_image_mapfile = $longueur_image_mapfile / $rapport_extent;
echo "<br />" ;
echo 'longueur : ' .$longueur_extent;echo "<br />" ;
echo 'hauteur : '.$longueur_extent;echo "<br />" ;
echo 'Raport : ' .$longueur_extent;echo "<br />" ;
echo 'hauteur image mapfile : ' .$longueur_extent;echo "<br />" ;
//
// Commençons par déterminer le nom de la colonne
// géométrique associée à la table choisie
//
$pgsql_colonne_geometrique = "select the_geom from \"$table_choisie\" where gid=$critere";
$pgsql_resultat = pg_exec($db_handle,$pgsql_colonne_geometrique);
$colonne_geometrique = pg_result($pgsql_resultat,0,0);
print_r($colonne_geometrique);
// $type_donnee_geometrique_pour_mapserver = str_replace("MULTILINESTRING",MS_LAYER_LINE);
// echo $type_donnee_geometrique_pour_mapserver;
//
$layer = $map->setextent($xmin,$ymin,$xmax,$ymax);
$map->web->set("imagepath",$mapserver_imagepath);
$map->web->set("imageurl",$mapserver_imageurl);
$map->set("width",$longueur_image_mapfile);
$map->set("height",$hauteur_image_mapfile);
// echo $image_url;
pg_close($db_handle);
}
// Finished editing, save .map file
$map->save("C:/ms4w/Apache/htdocs/test/mapfile/nx.map");
$var = ms_TokenizeMap($Nom_Mapfile);
echo "<pre>" ;
print_r($var);
echo "</pre>";
echo "<br /><br />";
echo $var;
?>
Hors ligne