Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Tue 17 January 2017 14:57

alexyvdv
Participant occasionnel
Date d'inscription: 14 Sep 2016
Messages: 18

Mapserver point mysql symbologie

Bonjour à tous,
Je tente actuellement de générer des map sur lesquelles je positionne des pictogrammes définies par une lat/lon.

Je vais chercher les informations concernant toutes mes villes dans Mysql.

Code:

$requete= "***"
$idconnection=@mysql_connect("***","***","***");

            $etat = mysql_query($requete,$idconnection);        
                
                $i=0;
                while ($row=mysql_fetch_array($etat,MYSQL_NUM)){
                    $qresult[$i] = $row;
                    echo $qresult[$i];
                    $i++;
                }

L'echo me donne :

array(9) {
  [0] => string(4) "3544"
  [1] => string(11) "Montpellier"
  [2] => string(19) "2017-01-19 00:00:00"
  [3] => string(7) "5375970" (latitude en mètre)
  [4] => string(6) "431549" (longitude en mètre)
  [5] => string(5) "c0000" (expression associée à un logo dans le map)
}

array(9) {
  [0] => string(4) "3341"
  [1] => string(4) "Metz"
  [2] => string(19) "2017-01-19 00:00:00"
  [3] => string(7) "6262870"
  [4] => string(6) "687614"
  [5] => string(5) "c0023"
...
...
...
"


J'ajoute ensuite chacune de mes villes requêtée au sein de mon layer selon le code :

Code:

    
                $layer=$this->map->getLayerByName("carte");
            $i=0;
                foreach($qresult as $row) {
                        $point[$i] = ms_newPointObj();
                        $line[$i] = ms_newLineObj();
                        $shape[$i] = ms_newShapeObj(MS_SHAPE_POINT);
                        
                        $point[$i]->setXY($row[4],$row[3]);
                        
                        $line[$i]->add($point[$i]);
                        $shape[$i]->add($line[$i]);

                        $shape[$i]->set(index,$row[5]);    
                            
                        // Add feature to the layer 
                        $layer->addFeature($shape[$i]);
                        
                                                                        
                        $i++;
                }

Mon mapfile ressemble à cela :

Code:

LAYER
  NAME "carte"
  STATUS On 
  TYPE POINT

  PROJECTION
    "proj=merc"
  END
  TRANSPARENCY 90 
  CLASS
    EXPRESSION "n0000"
    STYLE
      SYMBOL  ../logo/jour/grand/n0000.png
    END 
  END
  CLASS
    EXPRESSION "c0000"
    STYLE
      SYMBOL  ../logo/jour/grand/c0000.png
    END 
  END
  CLASS
    EXPRESSION "c0010"
    STYLE
      SYMBOL  ../logo/jour/grand/c0010.png

....
...
....

Toutefois, impossible de tracer quoique ce soit. Une erreur m'est notifiée à l'execution du php :
"Notice: Use of undefined constant index - assumed 'index' " indiqué à la ligne                          $shape[$i]->set(index,$row[5]);   

Difficile de savoir pourquoi cela ne fonctionne pas ?
Je ne vois pas ce qui diffère de la méthode exposée dans ce livre à la page 256 :
https://issuu.com/mani2604/docs/beginni … evelopment

Je vous remercie d'avance,
N'hésitez pas à me demander plus d'informations si j'omets certaines choses.
Bon après-midi !

Hors ligne

 

#2 Wed 18 January 2017 12:41

alexyvdv
Participant occasionnel
Date d'inscription: 14 Sep 2016
Messages: 18

Re: Mapserver point mysql symbologie

Bonjour,
Je vois que mon explication déchaîne les foules tongue
Personne n'a d'idée face à ce problème ?
Je vous remercie.

Hors ligne

 

Pied de page des forums

Powered by FluxBB