probleme pour récuperer latitude/longitude d'une adresse

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

arnogef
Nouveau WRInaute
 
Messages: 5
Inscription: Jeu Mar 29, 2007 12:05

probleme pour récuperer latitude/longitude d'une adresse

Message le Jeu Mar 29, 2007 12:25

bonjour,
je cherche à récuperer la latitude et longitude d'une adresse rentrée par un utilisateur dans un formulaire.
pour cela j'utilise le geocoder de google map.
le geocoder calcule bien les coordonnées (si je fais un alert dans le script, il me les affiche) en revanche je n'arrive pas a stocker ces coordonnées dans une variables php, ou dans une base de données, ce qui est mon but.

mon code se décompose en 2 pages :
sur la premiere page (index.php) , on fournit une adresse (exemple : 75010, france). la fonction showadress calcule les coordonnées (latitude, longitude) et renvoie la valeur, qu'on transmet sur la page suivante (afficher.php) dans une variable php qu'on affiche

code de index.php :
Code: Tout sélectionner
<head>
<title>Application Google Map</title>
<script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAal_cd43vOKPQhNkPDkwHgBQSXE4ITa1YzwIbIoQt-CisjCLm8xTJhtTXHvXoMcij_eu3bNbEGnk_PA" type="text/javascript"></script>
<style type="text/css">

</style>
</head>
<body style="margin: 0px; padding: 0px;">

<form action="afficher.php" method="post" onsubmit="document.getElementById('latLngStr').value=showAddress(address_rech.value);">
<input type="text" id="address_rech" name="address_rech" value="" >
<input type=hidden id="latLngStr" name='latLngStr'>
<input type="submit" id="submit" value="Localiser" />
</form>

<div id="map" style="width: 400px; height: 300px"></div>

<script type="text/javascript">
 
    var geocoder = new GClientGeocoder();
   
   function showAddress(address) {

        if (geocoder) {
            geocoder.getLatLng(address, function(point) {
                if (!point) { /* Si les coordonnées n'ont pas été trouvés */
                    alert("Impossible de localiser l'adresse :\n\n" + address);
                } else {
      var retour= '(' + point.y + ', ' + point.x + ')';
                   return retour;
                }
            });
        }

    }

</script>
</body>
</html>


code de afficher.php

Code: Tout sélectionner
<html>
<body>
<?php

if(isset($_POST['latLngStr']))
{
        $calcul=$_POST['latLngStr'];
}
else
{
        $calcul="pas de valeur";
}

echo "$calcul<br>";

?>
</body>
</html>




le probleme c'est que la fonction showadress renvoie la valeur "undefined" ;
pourtant, si je met alert (retour) au lieu de return (retour) dans la fonction, j'ai bien une alerte javascript avec les coordonnées souhaitées...
alors ou est le pb? ca fait plus de 3 jours que je m'arrache les cheveux la dessus..
Merci pour votre aide


arnaudmn
WRInaute accro
WRInaute accro
 
Messages: 1483
Inscription: Mer Mai 11, 2005 18:20

Message le Jeu Mar 29, 2007 12:54

Dans showaddress, remplace :
return retour;
par :
latLngStr.value=retour;

Ca doit suffit non ?

arnogef
Nouveau WRInaute
 
Messages: 5
Inscription: Jeu Mar 29, 2007 12:05

Message le Jeu Mar 29, 2007 13:32

j'ai essayé ce que tu m'as dit, en mettant également dans le formulaire
onsubmit="showAddress(address_rech.value);"
mais sur la page afficher.php il n'affiche aucune valeur..


arnaudmn
WRInaute accro
WRInaute accro
 
Messages: 1483
Inscription: Mer Mai 11, 2005 18:20

Message le Jeu Mar 29, 2007 13:45

arnogef a écrit:j'ai essayé ce que tu m'as dit, en mettant également dans le formulaire
onsubmit="showAddress(address_rech.value);"
mais sur la page afficher.php il n'affiche aucune valeur..


Ben oui, mais comme tu fais, ta page afficher.php est chargée avant même que google t'envoi la position recherchée.
Faut donc faire autrement : mettre un bouton qui appel google, puis quand la valeur arrive, faire comme je t'ai dit et faire le formulaire.submit dans le code.

arnogef
Nouveau WRInaute
 
Messages: 5
Inscription: Jeu Mar 29, 2007 12:05

Message le Jeu Mar 29, 2007 14:10

je comprend le principe mais je ne vois pas bien comment faire (je suis débutant..).
peux tu m'expliquer un peu plus en détail stp?


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités