[RESOLU] Un bouton "J'y vais", géolocalisation avec un téléphone

Eléphanteau du PHP | 37 Messages

11 févr. 2016, 15:05

Bonjour,

Une question pour laquelle je ne parviens pas à trouver de réponse :
Point de départ : une liste de latitudes, longitudes (issues d'une base de données MySql), et pour chaque ligne, un lien que je nommerai "J'y vais".
L'idée est de proposer pour les téléphones, l'occasion de se rendre à un point via GoogleMap.

Mon code, qui ne fonctionne pas pour le moment :

Code : Tout sélectionner

<? function geolocaliser($geolocalisation){ ?> <script type="text/javascript"> function getPosition(position){ var infoposition = position.coords.latitude + "," + position.coords.longitude ; document.form_itineraire.saddr.value=infoposition ; //document.forms["form_itineraire"].submit(); } function myPosition(destination){ document.form_itineraire.daddr.value=destination ; navigator.geolocation.getCurrentPosition(getPosition); } </script> <form style="display:inline;" name="form_itineraire" id="form_itineraire" action="http://maps.google.com/maps" method="get" target="_blank"> <input type="hidden" name="saddr" value=""/> <input type="hidden" name="daddr" value=""/> <input type="image" src='images/geolocaliser.png' class="bouton" value="geolocaliser" onClick="javascript:myPosition('<? echo $geolocalisation ?>')"></input> </form> <? } ?> <? // ... je passe ici sur la connexion à la base de données et j'en arrive à la boucle .... while($data=mysql_fetch_array($sql)){ $latitude=$data['latitude']; $longitude=$data['longitude']; $position_cible="$latitude".","."$longitude"; $position_cible=htmlentities($position_cible); geolocaliser($position_cible); }
Cette fonction, geolocaliser(), fonctionne si je ne passe pas par une boucle. Ici, dans la boucle, les coordonnées ne passent pas.

Un formulaire n'est peut-être pas la meilleure solution. En connaissez-vous une autre ?

Merci.
-- Ecumastor

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

11 févr. 2016, 17:28

Bonjour,

Si il s'agit juste de renvoyer vers Google Maps quand ton visiteur clic sur le bouton J'y vais, alors effectivement ça ne sert à rien de faire un formulaire, tu as juste à créer un lien de la forme : https://www.google.com/maps/?q=LAT,LONG
https://www.google.com/maps/?q=48.8573561,2.2937335
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 37 Messages

11 févr. 2016, 18:23

:shock: Bon sang mais c'est bien sûr ! (aurait dit le comissaire Charolles).
Merci @rthur pour la simplicité (et efficacité) de ton exemple. Cette technique fonctionne sur un téléphone mobile. Je pourrai donc proposer à l'internaute de se rendre à tel ou tel point.

Voici ta solution dans mon code (avec Bootstrap) :

Code : Tout sélectionner

<div class="row liste"> <div class="col-lg-3"><? echo $commentaire ?></div> <div class="col-lg-3"><? echo $telephone ?></div> <div class="col-lg-3"><? echo $adresse ?></div> <div class="col-lg-3"><a href="https://www.google.com/maps/?q=<? echo $position_cible ?>" target="_blank">J'y vais</a></div> </div>
... et ça marche.

Merci.
-- Ecumastor