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

Printemps des cartes 2024

#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