#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 ![]()
Personne n'a d'idée face à ce problème ?
Je vous remercie.
Hors ligne


