banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 11 May 2007 18:29

khikhi_sana
Juste Inscrit !
Date d'inscription: 11 May 2007
Messages: 2

Couleur différents pour 2 couches différents avec Mapfile dynamique???

Bonjour j'utilise un script php pour générer des mapfile dynamique le probléme est que j'ai voulut amélioré mon code pour créé un mapfile dynamique affichant 2 couches : region et écoles (que je passe comme paramétres), ca marche a part que les 2 couches prennent la meme couleur pour la région et les écoles et meme pour les labels, ce qui fait qu'on voit plus les écoles j'arrive pas a résoudre ca :
pour chaque couche je reécri le code suivant :

Code:

// ******************************    Ajout du layer ***** ****************************
 $layer = ms_newLayerObj($map);
// Nom du layer conforme à celui de la base de données
  $layer->set("name",$base_de_donnees);
  $layer->set("status",MS_DEFAULT);
// Connexion à la base de données PostGIS
  $layer->set("connectiontype",MS_POSTGIS);
  $layer->set("connection","user=".$utilisateur." dbname=".$base_de_donnees." host=".$hote. " password=".$mot_de_passe);
// Requête spatiale utilisée
  $layer->set("data",$colonne_geometrique." from ".$table_choisie." using unique gid");
// Précision sur le type de donnée géomatrique à prendre en compte: LINE, POINT...
  $layer->set("type",$type_donnee_geometrique_pour_mapserver);
// Nom de la colonne de données attributaires à afficher
  $layer->set("labelitem",$mapserver_labelitem);
                             // ******************************    Ajout d'1 Classe ***** ******************************  
  $class = ms_newClassObj($layer);
 // $class->set("color",color.RED);
                             // ******************************    Ajout d'1 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("position",MS_CC);
  $label->color->setRGB(128,0,0);
  $label->outlinecolor->setRGB(255,255,255);
  $label->shadowcolor->setRGB(255,255,255);
  $label->backgroundcolor->setRGB(255,255,255);
  $label->backgroundshadowcolor->setRGB(255,255,255);
 
                             // ******************************    Ajout du style ***** ******************************
  $style = ms_newStyleObj($class);
// Précision sur l'affichage des données géomatriques couleur de bourdure en code 128 0  0 pour RGB
  $style->set("size",4);
  $style->outlinecolor->setRGB(128,0,0);
  $style->color->setRGB(232,232,232);

Mais il ne prend en considération que les couleurs de la deuxiéme couche qu'il applique a toutes les 2 couches?????
Merci de votre aide.....J'éspére que j'ai posé au bon endroit....

Hors ligne

 

#2 Sat 12 May 2007 17:41

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Couleur différents pour 2 couches différents avec Mapfile dynamique???

Bonjour,
Je suppose que vous faites une boucle sur le code que vous avez donné ? Si c'est le cas, il faut remplacer 232,232,232 et/ou 128,0,0 par des variables afin de modifier ces valeurs en fonction de la couche. Sinon vous définissez deux fois le même style pour chaque couche.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Sun 13 May 2007 23:45

khikhi_sana
Juste Inscrit !
Date d'inscription: 11 May 2007
Messages: 2

Re: Couleur différents pour 2 couches différents avec Mapfile dynamique???

Vous avez vu juste, effectivement j'ai une boucle et j'avai déja modifier les couleur ca ne marcher pas, c'été surement pas les bonnes maintenant je change les lignes suivantes et ca marche :
$style->outlinecolor->setRGB(128,0,0);
  $style->color->setRGB(232,232,232);

Merci pour votre aide....

Hors ligne

 

Pied de page des forums

Powered by FluxBB