Google Map : Marqueur déplaçable et récupération coordonnées GPS dans MySQL

arnaud_76
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 9 Aoû 2010

Google Map : Marqueur déplaçable et récupération coordonnées GPS dans MySQL

Message le Lun Aoû 09, 2010 10:44

Bonjour,

Dans un formulaire (ou l'internaute indique sa ville et autres........), je souhaiterais insérer une carte google map avec marqueur déplaçable. Ceci afin que l'internaute géolocalise précisément son lieux de résidence......
J'aimerais lors de l'envoi du formulaire pouvoir stocker dans une base de données MySQL les coordonnées GPS (latitude et longitude) du marqueur que l'internaute aura précisément placé.

N'ayant pas de connaissance en AJAX pour l'instant je cale......
j'ai bien trouvé un tuto pour obtenir les coordonnées GPS...... mais je ne sais pas comment les insérer dans ma base de données....
(http://www.touraineverte.com/aide-documentation-exemple-tutoriel-didac ... ostale.htm)

Merci par avance pour votre aide.
Arnaud


HawkEye
WRInaute accro
WRInaute accro
 
Messages: 17013
Inscription: 23 Fév 2004

Re: Google Map : Marqueur déplaçable et récupération coordonnées GPS dans MySQL

Message le Lun Aoû 09, 2010 11:35

Ca m'intéresse également.
L'affichage de la carte, je devrais m'en sortir, mais la détermination des coordonnées, je ne comprends pas :(


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: Google Map : Marqueur déplaçable et récupération coordonnées GPS dans MySQL

Message le Lun Aoû 09, 2010 13:08

J'ai un script (récupéré sur WRI) qui place les coordonnées dans le presse papier.
Si ça peut aider.
A priori, le plus dur doit être fait, l'insertion SQL ne devant pas être compliqué.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Google Map : Marqueur déplaçable et récupération coordonnées GPS dans MySQL

Message le Lun Aoû 09, 2010 13:15

Plus simple encore, en partant de l'exemple. Si on observe la fonction afficheCoordonnees(point), celle-ci prend en paramètre le marqueur, qui est un object constitué au moins de deux choses, sa latitude point.lat() et sa longitude point.lng().

Pas très compliqué donc, à ce niveau, d'envoyer ses deux infos à un script ajax qui sauverait en base de données ces deux informations.

arnaud_76
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 9 Aoû 2010

Re: Google Map : Marqueur déplaçable et récupération coordonnées GPS dans MySQL

Message le Lun Aoû 09, 2010 15:10

Merci beaucoup pour vos réponses.

Comme je n'y connais vraiment rien en Ajax, je vais lire "Premières applications Web avec Ajax, jQUERY et PHP" de JM Defrance.... Je l'avais acheté il y a plusieurs mois.... Cela va permettre de comprendre Ajax et de ne pas bricoler sur d'autres points de mon site.....

D'ici quelques temps (enfin quelques semaines, il fait plus de 400 pages) je vous publierais mon code google map.

Merci à vous
Arnaud


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Google Map : Marqueur déplaçable et récupération coordonnées GPS dans MySQL

Message le Lun Aoû 09, 2010 16:04

En fait je ne pense pas qu'il y ait besoin d'avoir recours à un bouquin pour comprendre le principe de la communication asynchrone.

Comme je l'ai dit dans mon précédent billet, l'objet point, qui est transmis à afficheCoordonnees() contient les infos qu'on cherche à enregistrer en base de données.

On va également supposer qu'on utilise la librairie js prototype, ce qui va permettre de simplifier les appels (notamment leur portabilité).

On part de la fonction principale
Code: Tout sélectionner
function geocodeAdresse(addresse) {
   if (geoCodeur) {
      geoCodeur.getLatLng(
         addresse,
         function(point) {
            if (!point) {
               alert("Impossible de géolocaliser cette adresse" + addresse);
            } else {
               maCarte.addControl(new google.maps.LargeMapControl());
               maCarte.addControl(new google.maps.MapTypeControl());
               maCarte.addControl(new google.maps.OverviewMapControl());
               maCarte.addControl(new google.maps.ScaleControl());
               marker = new google.maps.Marker(point, {draggable: true});
               google.maps.Event.addListener(marker, 'dragstart', function() {
                  maCarte.closeInfoWindow();
               });
               google.maps.Event.addListener(marker, 'dragend', function(point) {
                  centreCarte();
               });
               google.maps.Event.addListener(marker, "drag", function(point) {
                  afficheCoordonnees(point);
               });
               maCarte.clearOverlays();
               maCarte.addOverlay(marker);
               maCarte.setCenter(point, 15);
               afficheCoordonnees(point);

                                        //appel Ajax pour enregistrement des coordonnées en base
                                        //on passe au script PHP register.php la latitude et la longitude
                                        var urlCoords =  "http://<?php echo $_SERVER['SERVER_NAME'']; ?>register.php?latitude='+point.lat()+'&longitude='+point.long();
    var reqCoords = new Ajax.Request(urlCoords, {
        method: 'get',
        onSuccess: function(transport) {
        }
    });   

            }
         }
      );
   }
}


Et dans register.php, tu récupère donc les donnés latitude et longitude :

Code: Tout sélectionner
if (isset($_GET['latitude']) && is_numeric($_GET['latitude']))
{
     $latitude = $_GET['latitude'];
}
if (isset($_GET['longitude']) && is_numeric($_GET['longitude']))
{
     $longitude = $_GET['longitude'];
}
if (isset($longitude) && isset($latitude))
{
     $sql = "INSERT INTO table (latitude, longitude) VALUES (".$latitude.",".$longitude.")";
     $res = mysql_query($sql);
}


Bien sûr tu auras sans doute besoin de sauver d'autres infos en base avec la latitude et longitude, de manière à identifier a qui sont associées ces coordonnées. Il suffira juste de passer également ces données au script register.php.

Il faut également penser à rendre accessible, dans register.php, la connexion au serveur mysql.


spout
WRInaute accro
WRInaute accro
 
Messages: 4378
Inscription: 14 Mai 2003

Re: Google Map : Marqueur déplaçable et récupération coordonnées GPS dans MySQL

Message le Lun Aoû 09, 2010 16:13

Le tuto de touraineverte que tu nous montre est toujours avec l'API Google Maps v2 qui est dépréciée, c'est dommage de faire du nouveau avec une API dépréciée.
Voici un tuto bcp plus simple que touraineverte pour l'API v3 et avec auto-complétion:
http://tech.cibul.org/geocode-with-google-maps-api-v3/

Edit: exemples réalisés (champ lieu):
-http://iziads.be/fr/annonces/form
-http://eaupotable.info/fr/posts/form

arnaud_76
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 9 Aoû 2010

Re: Google Map : Marqueur déplaçable et récupération coordonnées GPS dans MySQL

Message le Lun Aoû 09, 2010 16:45

Merci beaucoup pour vos aides précieuses....

CyberNord
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 32
Inscription: 13 Oct 2004

Re: Google Map : Marqueur déplaçable et récupération coordonnées GPS dans MySQL

Message le Sam Jan 29, 2011 12:21



Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité