Problème api google map v3
eric204044
Messages postés
35
Statut
Membre
-
eric204044 Messages postés 35 Statut Membre -
eric204044 Messages postés 35 Statut Membre -
Bonjour à tous
Voilà j'ai un problème, en fait j'utilise l'api google map v3 et j'ai une table sql contenant 2 champs : longitude et latitude.
j'aimerais récupérer chacun de ces couples longitude-latitude et placer un marqueur sur ma carte à l'endroit.
je n'arrive pas à récupérer les valeurs de ma table ni à effectuer la boucle sur le marqueur.
Est ce que vous pourriez m'aider s'il vous plait?je suis à court d'idées.
je m'inspire du code http://code.google.com/intl/fr/apis/ma [...] t/events.html
et j'ai réussi à créer une carte à partir d'un couple bien précis de longitude_latitude,que je passe en paramètre d'une fonction,mais avec la base de données je n'y arrive plus du tout.
Voilà j'ai un problème, en fait j'utilise l'api google map v3 et j'ai une table sql contenant 2 champs : longitude et latitude.
j'aimerais récupérer chacun de ces couples longitude-latitude et placer un marqueur sur ma carte à l'endroit.
je n'arrive pas à récupérer les valeurs de ma table ni à effectuer la boucle sur le marqueur.
Est ce que vous pourriez m'aider s'il vous plait?je suis à court d'idées.
je m'inspire du code http://code.google.com/intl/fr/apis/ma [...] t/events.html
et j'ai réussi à créer une carte à partir d'un couple bien précis de longitude_latitude,que je passe en paramètre d'une fonction,mais avec la base de données je n'y arrive plus du tout.
A voir également:
- Problème api google map v3
- Google maps satellite - Guide
- Google photo - Télécharger - Albums photo
- Dns google - Guide
- Google map ma position - Guide
- Créer un compte google - Guide
10 réponses
Salut.
Il faut générer le Javascript en PHP.
Par exemple :
J'ai codé directement dans le formulaire, il y a peut-être des erreurs de syntaxe.
Il faut générer le Javascript en PHP.
Par exemple :
$sql = 'SELECT * FROM table';
$req = $pdo->query($sql);
while($coords = $req->fetch()) {
$lng = $coords['lng'];
$lat = $coords['lat'];
// Création du point
echo 'point = new google.maps.LatLng('.$lat.','.$lng.');'."\n";
// Création du marqueur
echo 'coords = new google.maps.marker({'."\n"
. 'position: point,'."\n"
. 'map: map,'."\n"
. 'title: "Titre du marqueur"'."\n"
.'});'."\n\n";
}
J'ai codé directement dans le formulaire, il y a peut-être des erreurs de syntaxe.
J'ai écris ça comme code,mais ça affiche une erreur comme quoi longitude_user et latitude_user n'existent pas,alors que ma table existe bien.
Si tu as une idée,
merci par avance
<?php
$serveur = mysql_connect("localhost","root","");
if (!$serveur)
{
die('Non connecté'. mysql_error());
}
$bd = mysql_select_db('mabase', $serveur);
if (!$bd)
{
die ('Impossible d\'utiliser la base :'. mysql_error());
}
$sql = 'SELECT longitude_user,latitude_user FROM table';
$result=mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
while($coords = mysql_fetch_array($result, MYSQL_NUM) ) {
$lng = $coords['longitude_user'];
$lat = $coords['latitude_user'];
// Création du point
//echo 'point = new google.maps.LatLng('.$lat.','.$lng.');'."\n";
// Création du marqueur
/*echo 'coords = new google.maps.marker({'."\n"
. 'position: point,'."\n"
. 'map: map,'."\n"
. 'title: "Titre du marqueur"'."\n"
.'});'."\n\n"; */
}
?>
Si tu as une idée,
merci par avance
<?php
$serveur = mysql_connect("localhost","root","");
if (!$serveur)
{
die('Non connecté'. mysql_error());
}
$bd = mysql_select_db('mabase', $serveur);
if (!$bd)
{
die ('Impossible d\'utiliser la base :'. mysql_error());
}
$sql = 'SELECT longitude_user,latitude_user FROM table';
$result=mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
while($coords = mysql_fetch_array($result, MYSQL_NUM) ) {
$lng = $coords['longitude_user'];
$lat = $coords['latitude_user'];
// Création du point
//echo 'point = new google.maps.LatLng('.$lat.','.$lng.');'."\n";
// Création du marqueur
/*echo 'coords = new google.maps.marker({'."\n"
. 'position: point,'."\n"
. 'map: map,'."\n"
. 'title: "Titre du marqueur"'."\n"
.'});'."\n\n"; */
}
?>
Fais un copier/coller de l'erreur.
Deux remarques au passage :
- À la ligne « . 'map: map'."\n" », remplace le second "map" par la variable représentant la carte (créée avec « new google.maps.Map »)
- Si tu ne souhaites afficher qu'un point de ta table (la position d'un membre par exemple), inutile d'utiliser une boucle
Deux remarques au passage :
- À la ligne « . 'map: map'."\n" », remplace le second "map" par la variable représentant la carte (créée avec « new google.maps.Map »)
- Si tu ne souhaites afficher qu'un point de ta table (la position d'un membre par exemple), inutile d'utiliser une boucle
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
J'ai réussi à avoir accès à tous les éléments de mes tableaux lng et lat,mais je ne sais pas comment avoir accès à chacun des éléments pour initialiser chacun des points.
Le problème est que la création doit se faire normalement si j'ai bien compris dans la fonction initialize,donc je ne sais pas du tout comment faire.
Voici mon code :
<?php
$serveur = mysql_connect("localhost","root","");
if (!$serveur)
{
die('Non connecté'. mysql_error());
}
$bd = mysql_select_db('mabase', $serveur);
if (!$bd)
{
die ('Impossible d\'utiliser la base :'. mysql_error());
}
$sql = 'SELECT longitude_user,latitude_user FROM table';
$result=mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
$i=0;
while($coords = mysql_fetch_array($result, MYSQL_NUM) ) {
$lng[$i] = $coords[0];
$lat[$i] = $coords[1];
echo "latitude_user:".$lat[$i]." longitude_user :".$lng[$i]."<br/>";
$i++;
}
?>
<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">
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var myOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var longitude=<?php echo $lng[0]; ?>;
var latitude= <?php echo $lat[0]; ?>;
var compteur= <?php echo $i; ?>;
alert(compteur);
for (var j = 0; j < compteur; j++) {
//alert(longitude);
//alert(latitude);
var location = new google.maps.LatLng(longitude,latitude);
var marker = new google.maps.Marker({
position: location,
map: map
});
}
}
le problème est pour avoir accès à lng[$i] dans la variable location à chaque tour de boucle.
j'avoue que là je suis perdu, si tu vois comment faire.
J'ai réussi à avoir accès à tous les éléments de mes tableaux lng et lat,mais je ne sais pas comment avoir accès à chacun des éléments pour initialiser chacun des points.
Le problème est que la création doit se faire normalement si j'ai bien compris dans la fonction initialize,donc je ne sais pas du tout comment faire.
Voici mon code :
<?php
$serveur = mysql_connect("localhost","root","");
if (!$serveur)
{
die('Non connecté'. mysql_error());
}
$bd = mysql_select_db('mabase', $serveur);
if (!$bd)
{
die ('Impossible d\'utiliser la base :'. mysql_error());
}
$sql = 'SELECT longitude_user,latitude_user FROM table';
$result=mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
$i=0;
while($coords = mysql_fetch_array($result, MYSQL_NUM) ) {
$lng[$i] = $coords[0];
$lat[$i] = $coords[1];
echo "latitude_user:".$lat[$i]." longitude_user :".$lng[$i]."<br/>";
$i++;
}
?>
<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">
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var myOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var longitude=<?php echo $lng[0]; ?>;
var latitude= <?php echo $lat[0]; ?>;
var compteur= <?php echo $i; ?>;
alert(compteur);
for (var j = 0; j < compteur; j++) {
//alert(longitude);
//alert(latitude);
var location = new google.maps.LatLng(longitude,latitude);
var marker = new google.maps.Marker({
position: location,
map: map
});
}
}
le problème est pour avoir accès à lng[$i] dans la variable location à chaque tour de boucle.
j'avoue que là je suis perdu, si tu vois comment faire.
Comment veux-tu que je t'aide avec un code pareil ?
Si tu n'utilises pas la balise "code" de CCM, l'indentation est perdue !
L'ajout des marqueurs doit se faire à la place de ta boucle for.
Il suffit de placer le script que je t'ai donné à la place de celle-ci.
Si tu n'utilises pas la balise "code" de CCM, l'indentation est perdue !
L'ajout des marqueurs doit se faire à la place de ta boucle for.
Il suffit de placer le script que je t'ai donné à la place de celle-ci.
Salut,
Je te remercie tout d'abord pour toutes les fois où tu m'as répondu,et je suis désolé pour le code,je pensais qu'il était lisible.
J'ai réussi à trouver mon erreur,mais maintenant j'ai un autre problème, je dois mettre tout ça dans une fonction, c'est à dire déclarer une variable de la forme :
$variable=""; puis $variable=''; avec à l'intérieur tout mon code,puis en retour de la fonction avoir uniquement return $variable.
Mais je ne sais pas pourquoi je n'y arrive pas.
je te copie mon code, j'espère que c'est lisible maintenant.
Je te remercie tout d'abord pour toutes les fois où tu m'as répondu,et je suis désolé pour le code,je pensais qu'il était lisible.
J'ai réussi à trouver mon erreur,mais maintenant j'ai un autre problème, je dois mettre tout ça dans une fonction, c'est à dire déclarer une variable de la forme :
$variable=""; puis $variable=''; avec à l'intérieur tout mon code,puis en retour de la fonction avoir uniquement return $variable.
Mais je ne sais pas pourquoi je n'y arrive pas.
je te copie mon code, j'espère que c'est lisible maintenant.
<?php
$serveur = mysql_connect("localhost","root","");
if (!$serveur)
{
die('Non connecté'. mysql_error());
}
$bd = mysql_select_db('mabase', $serveur);
if (!$bd)
{
die ('Impossible d\'utiliser la base :'. mysql_error());
}
$sql = 'SELECT id_obs,longitude,latitudeFROM table';
$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">
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)){?>
var point = new google.maps.LatLng
('<?php echo $donnees['latitude_user']; ?>','<?php echo $donnees['longitude_user'] ; ?>')
var marker = new google.maps.Marker({
position: point,
map: map
}); //fin marker
google.maps.event.addListener(marker, 'click', function() {
var infowindow = new google.maps.InfoWindow({
content: '',
size: new google.maps.Size(50,50),
position:point
});
//infowindow.open(map, marker);
infowindow.open(map, this);
infowindow.setContent( '<?php echo "latitude : ".$donnees['latitude']."<br/> "."longitude :".$donnees['longitude']."" ; ?>');
});
<?php } ?>
} //fin initialize
</script>
</head>
<body onload="initialize()" >
<center>
<div id="map_canvas" style="width:700px; height:700px"></div>
</center>
</body>
</html>
Comme ceci ?
<?php
function creerMarqueurs() {
$sql = 'SELECT * FROM table';
$req = $pdo->query($sql);
$source = '';
while($coords = $req->fetch()) {
$lng = $coords['lng'];
$lat = $coords['lat'];
// Création du point
echo 'point = new google.maps.LatLng('.$lat.','.$lng.');'."\n";
// Création du marqueur
$source .= 'coords = new google.maps.marker({'."\n"
. 'position: point,'."\n"
. 'map: map,'."\n"
. 'title: "Titre du marqueur"'."\n"
.'});'."\n\n";
}
return $source;
}
$marqueurs = creerMarqueurs();
echo $marqueurs;
?>
ben en fait,j'aimerais que tout mon code soit dans une fonction,je vais essayer de m'en inspirer,mais franchement là je désespère car rien de ce que je fais ne provoque l'affichage.
je vais essayer de m'inspirer de ta fonction.
merci,je te tiens au courant :-)
je vais essayer de m'inspirer de ta fonction.
merci,je te tiens au courant :-)
voici mon code, il n'y a pas d'erreur mais rien ne s'affiche,c'est bizarre, non?
alors que en dehors de la fonction cela fonctionne, je suis obligée d'écrire une fonction ou du moins mettre tout dans une variable d'affichage, car je travaille avec typo3 et donc je peux pas mettre du code comme ça directement...
si tu vois mon erreur,ça serait super sympa de m'en faire part
alors que en dehors de la fonction cela fonctionne, je suis obligée d'écrire une fonction ou du moins mettre tout dans une variable d'affichage, car je travaille avec typo3 et donc je peux pas mettre du code comme ça directement...
si tu vois mon erreur,ça serait super sympa de m'en faire part
<?php
function affichage() {
$serveur = mysql_connect("localhost","root","");
if (!$serveur)
{
die('Non connecté'. mysql_error());
}
$bd = mysql_select_db('mabase', $serveur);
if (!$bd)
{
die ('Impossible d\'utiliser la base :'. mysql_error());
}
$sql = 'SELECT id_obs,longitude_user,latitude_user FROM table group by id_obs';
$result=mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
$content = "";
$content='<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">
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); ';
while ($donnees = mysql_fetch_array($result)){
$long=$donnees['longitude_user'];
$lat=$donnees['latitude_user'];
$id_obs=$donnees['id_obs'];
$content.='var point = new google.maps.LatLng('.$lat.','.$long.');';
$content.='var marker = new google.maps.Marker({
position: point,
map: map
});
google.maps.event.addListener(marker, \'click\', function() {
var infowindow = new google.maps.InfoWindow({
content: \'\',
size: new google.maps.Size(50,50),
position:point
});
//infowindow.open(map, marker);
infowindow.open(map, this);
infowindow.setContent( "".'.$id_obs.'.'.$lat.'.'.$long.');
});';
}
$content.='</script>
</head>
<body onload="initialize()" >
<center>
<div id="map_canvas" style="width:600px; height:700px"></div>
</center>
</body>
</html>';
return $content;
}
echo affichage();
?>