par
pascalibus » 15 mai 2012, 10:27
Je suis bien obligé de revenir demander un petit coup de pouce...
Le code que tu m'as fourni fonctionne parfaitement et permet la constitution du tableau de variables pour afficher le parcours et je t'en remercie mais je ne parviens pas à l'inclure proprement dans mon code
Je m'explique:
Lorsque je place ton code dans le mien, je perd l'affichage de mes marqueurs ou plus exactement il n'y a plus que le premier qui s'affiche.
J'en conclue donc que je brise sans doute la boucle qui permet de tous les afficher car sans rajouter ton code, les marqueurs sont tous bien affichés.
J'ai tout essayé en copiant/collant mais comme je ne parle pas javascript c'est un peu au hasard...
Bref je ne m'en sort pas et c'est sans doute une petite virgule, parenthèse ou accolade qui bloque tout
Je poste ci dessous l'integralité du code AVEC LE RAJOUT DE CODE QUE TU M'AS DONNÉ POUR AFFICHER LE TRACÉ ENTRE LES MARQUEURS .
Si on enlève ton code compris entre les commentaires (/////TRACAGE PARCOURS ... //FIN TRACAGE POLYLIGNES), les marqueurs apparaîssent tous sur la carte !
mais dès que je remet le code pour afficher le parcours entre les marqueurs, le tracé est bien affiché mais par contre je n'ai plus mes marqueurs (juste le premier est affiché ce qui me donne à penser que la boucle d'affichage des marqueurs est cassée)
En espérant que tu pourras m'aider ou que quelqu'un d'autre pourra y jeter un oeil.
Voici le code:
Code : Tout sélectionner
<?php
$serveur = mysql_connect("localhost","root","");
if (!$serveur)
{
die('Non connecté'. mysql_error());
}
$bd = mysql_select_db('mabasequivabien', $serveur);
if (!$bd)
{
die ('Impossible d\'utiliser la base :'. mysql_error());
}
$nomdelacarterecherchee=$_GET['CARTERECHERCHEE_FORM']; // On récupère le nom de l'objet dont on veut tracer le parcours sur une carte google maps.
// La requête quivabien et qui sort les positions successives de l'objet demandé
$sql = 'Select localisation.name, localisation.POSITION_lat, localisation.POSITION_lon, localisation.date_enreg
from localisation
where localisation.name = "'.$nomdelacarterecherchee.'"
Order by localisation.date_enreg, localisation.id_localisation';
$result=mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
// Le javascript made in google maps...
// Définition de la carte et des options d'affichage.
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(48,2);
var myOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
<?php
while ($donnees = mysql_fetch_array($result)){?>
//defintion d'un point sur la carte
var point = new google.maps.LatLng
('<?php echo $donnees['POSITION_lat']; ?>','<?php echo $donnees['POSITION_lon'] ; ?>')
var marker = new google.maps.Marker({
position: point,
icon: "full.png",
map: map
});
//Ajout d'un marqueur sur la carte
google.maps.event.addListener(marker, 'click', function() {
var infowindow = new google.maps.InfoWindow({
content: '',
size: new google.maps.Size(50,50),
position:point
});
//Ajout du contenu d'une infobulle
infowindow.open(map, this);
infowindow.setContent( '<?php echo "latitude : ".$donnees['POSITION_lon']."<br/> "."longitude :".$donnees['POSITION_lat']."" ; ?>');
});
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TRACAGE PARCOURS CODE EN DUR AVEC FONCTION GOOGLE MAPS POLYLINE()
<?PHP
echo 'var tableauPointsPolyline = [',"\n";
$donnee = mysql_fetch_array($result);
echo 'new google.maps.LatLng(',$donnee['POSITION_lat'],',',$donnee['POSITION_lon'],')'; // Ecriture de la ligne sans la virgule
while ($donnee = mysql_fetch_array($result))
{
echo ',',"\n"; // Ecriture de la virgule et du saut de ligne
echo 'new google.maps.LatLng(',$donnee['POSITION_lat'],',',$donnee['POSITION_lon'],')'; // Ecriture de la ligne sans la virgule
}
echo ' ];',"\n";
?>
// DEFINITION DES OPTIONS DE LA POLYLIGNE
var optionsPolyline = {
map: map,
path: tableauPointsPolyline
};
// TRACAGE DE LA POLYLIGNE
var maPolyline = new google.maps.Polyline(optionsPolyline);
// FIN TRACAGE POLYLIGNES ENTRE LES MARQUEURS
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<?php } ?>
} //fin initialize
</script>
</head>
<body onload="initialize()" >
<center>
<div id="map_canvas" style="width:700px; height:700px"></div>
</center>
</body>
</html>
Je suis bien obligé de revenir demander un petit coup de pouce...
Le code que tu m'as fourni fonctionne parfaitement et permet la constitution du tableau de variables pour afficher le parcours et je t'en remercie mais je ne parviens pas à l'inclure proprement dans mon code :-(
Je m'explique:
Lorsque je place ton code dans le mien, je perd l'affichage de mes marqueurs ou plus exactement il n'y a plus que le premier qui s'affiche.
J'en conclue donc que je brise sans doute la boucle qui permet de tous les afficher car sans rajouter ton code, les marqueurs sont tous bien affichés.
J'ai tout essayé en copiant/collant mais comme je ne parle pas javascript c'est un peu au hasard...
Bref je ne m'en sort pas et c'est sans doute une petite virgule, parenthèse ou accolade qui bloque tout :-(
Je poste ci dessous l'integralité du code AVEC LE RAJOUT DE CODE QUE TU M'AS DONNÉ POUR AFFICHER LE TRACÉ ENTRE LES MARQUEURS .
Si on enlève ton code compris entre les commentaires (/////TRACAGE PARCOURS ... //FIN TRACAGE POLYLIGNES), les marqueurs apparaîssent tous sur la carte !
mais dès que je remet le code pour afficher le parcours entre les marqueurs, le tracé est bien affiché mais par contre je n'ai plus mes marqueurs (juste le premier est affiché ce qui me donne à penser que la boucle d'affichage des marqueurs est cassée)
En espérant que tu pourras m'aider ou que quelqu'un d'autre pourra y jeter un oeil.
Voici le code:
[code]<?php
$serveur = mysql_connect("localhost","root","");
if (!$serveur)
{
die('Non connecté'. mysql_error());
}
$bd = mysql_select_db('mabasequivabien', $serveur);
if (!$bd)
{
die ('Impossible d\'utiliser la base :'. mysql_error());
}
$nomdelacarterecherchee=$_GET['CARTERECHERCHEE_FORM']; // On récupère le nom de l'objet dont on veut tracer le parcours sur une carte google maps.
// La requête quivabien et qui sort les positions successives de l'objet demandé
$sql = 'Select localisation.name, localisation.POSITION_lat, localisation.POSITION_lon, localisation.date_enreg
from localisation
where localisation.name = "'.$nomdelacarterecherchee.'"
Order by localisation.date_enreg, localisation.id_localisation';
$result=mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
// Le javascript made in google maps...
// Définition de la carte et des options d'affichage.
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(48,2);
var myOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
<?php
while ($donnees = mysql_fetch_array($result)){?>
//defintion d'un point sur la carte
var point = new google.maps.LatLng
('<?php echo $donnees['POSITION_lat']; ?>','<?php echo $donnees['POSITION_lon'] ; ?>')
var marker = new google.maps.Marker({
position: point,
icon: "full.png",
map: map
});
//Ajout d'un marqueur sur la carte
google.maps.event.addListener(marker, 'click', function() {
var infowindow = new google.maps.InfoWindow({
content: '',
size: new google.maps.Size(50,50),
position:point
});
//Ajout du contenu d'une infobulle
infowindow.open(map, this);
infowindow.setContent( '<?php echo "latitude : ".$donnees['POSITION_lon']."<br/> "."longitude :".$donnees['POSITION_lat']."" ; ?>');
});
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TRACAGE PARCOURS CODE EN DUR AVEC FONCTION GOOGLE MAPS POLYLINE()
<?PHP
echo 'var tableauPointsPolyline = [',"\n";
$donnee = mysql_fetch_array($result);
echo 'new google.maps.LatLng(',$donnee['POSITION_lat'],',',$donnee['POSITION_lon'],')'; // Ecriture de la ligne sans la virgule
while ($donnee = mysql_fetch_array($result))
{
echo ',',"\n"; // Ecriture de la virgule et du saut de ligne
echo 'new google.maps.LatLng(',$donnee['POSITION_lat'],',',$donnee['POSITION_lon'],')'; // Ecriture de la ligne sans la virgule
}
echo ' ];',"\n";
?>
// DEFINITION DES OPTIONS DE LA POLYLIGNE
var optionsPolyline = {
map: map,
path: tableauPointsPolyline
};
// TRACAGE DE LA POLYLIGNE
var maPolyline = new google.maps.Polyline(optionsPolyline);
// FIN TRACAGE POLYLIGNES ENTRE LES MARQUEURS
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<?php } ?>
} //fin initialize
</script>
</head>
<body onload="initialize()" >
<center>
<div id="map_canvas" style="width:700px; height:700px"></div>
</center>
</body>
</html>[/code]