IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

Variable API google map JS avec bdd


Sujet :

APIs Google

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Variable API google map JS avec bdd
    Bonjour,

    Je récupère via un code JS les coordonnées de mon GPS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    var markersArray = [];
    var previousPosition = null;
    var init = null;
     
    window.addEventListener('load', function () {
        oMap = new google.maps.Map(document.getElementById("map_canvas"), {
            zoom: 19,
            mapTypeID: google.maps.MapTypeId.ROADMAP
        });
    }, false);
     
    navigator.geolocation.watchPosition(successCallback, errorCallback, {
        enableHighAccuracy: true,
    });
     
    function successCallback(position) {
        oCurrentCoordinates = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
     
     
        /*
         * 
         * 
         *   RECUPERATION COORDONNEES POUR LA BDD
         * 
         * 
         */
     
     
        if (!init) {
            oMap.panTo(oCurrentCoordinates);
            init = 1;
        }
     
        if (position.coords.accuracy < 100) {
            //Création d'un marqueur
                var marker = new google.maps.Marker({
                    position: oCurrentCoordinates,
                    map: oMap
                });
     
     
     
                deleteOverlays(); // Clean marqueurs de la Map 
                markersArray.push(marker); // Rajoute le dernier Marqueur
     
                if (previousPosition) {
                    //Creation d'une ligne
                    var newLineCoordinates =
                            [
                                new google.maps.LatLng(previousPosition.coords.latitude, previousPosition.coords.longitude),
                                new google.maps.LatLng(position.coords.latitude, position.coords.longitude)
                            ];
                    var newLine = new google.maps.Polyline({
                        path: newLineCoordinates,
                        strokeColor: "#FF0000",
                        strokeOpacity: 1.0,
                        strokeWeight: 2
                    });
                    newLine.setMap(oMap);
                }
     
                //Les anciennes coo sont les nouvelles ! 
                previousPosition = position;
     
        }
    }
    //Gestion des erreurs
    function errorCallback(error) {
        switch (error.code) {
            case error.PERMISSION_DENIED:
                alert("User denied the request for Geolocation.");
                break;
            case error.POSITION_UNAVAILABLE:
                alert("Location information is unavailable.");
                break;
            case error.TIMEOUT:
                alert("The request to get user location timed out.");
                break;
            case error.UNKNOWN_ERROR:
                alert("An unknown error occurred.");
                break;
        }
    }
    ;
     
    function deleteOverlays() {
        if (markersArray) {
            for (i in markersArray) {
                markersArray[i].setMap(null);
            }
            markersArray.length = 0;
        }
    }

    Et je voudrais les mettres dans ma BDD ensuite via une page PHP :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    $mysqli = new mysqli("...", "...", "...", "...");
    if ($mysqli->connect_errno) {
        echo "Echec lors de la connexion a MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }
    if (!($reponse = $mysqli->query("insert into maTable (ID , Temps, Nom, Coordonnees) values (1,1,'test',$MES_COORDONNES_EN_JS"))) {
    /*
    C'est ICI que je voudrais récupérer mes coordonnées de mon JS pour les insérer dans ma requetes du haut !! 
    */
        echo "Echec lors de la creation de la table : (" . $mysqli->errno . ") " . $mysqli->error;
    } else {
        echo 'C\'est OK !';
    	print_r($mysqli->query);
        print_r($reponse);
    	}
    ?>


    Le problème c'est que je ne comprends pas vraiment si c'est de l'AJAX, du JSON ou je sais pas quoi...

    Si quelqu'un pouvait me mettre sur la piste...

  2. #2
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!


    AJAX, c'est une "technologie", JSON, c'est un format de données.

    Tu peux utiliser AJAX pour envoyer des données à ton script PHP sans quitter ta page, si c'est ce que tu veux faire.
    Pour cela, tu peux créer deux fonctions javascript:
    - Celle qui va créer l'objet XMLHttpRequest: getXhr()
    - Une autre qui va envoyer tes données vers le script PHP et lire la réponse que ce script renvoie. Tu dois donc transmettre ces données en paramètres à cette fonction, et prévoir éventuellement un conteneur pour afficher la réponse du script PHP.

    Si on pose que:
    - la page PHP s'appelle save_data.php
    - les données à sauver dans la bdd s'appellent ltd et lng
    - que le conteneur (balise DIV, SPAN, P, etc...) qui affiche la réponse possède l'ID "message",

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    function getXhr() {
    	var xhr = null; 
    	if(window.XMLHttpRequest) // Firefox et autres
    	{
    		xhr = new XMLHttpRequest(); 
    	}
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    		try 
    		{
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} 
    		catch (e) 
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{ 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	} 
    	return xhr;
    }
     
    function save_data(ltd, lng) {
    	var xhr = getXhr();
    	xhr.onreadystatechange = function()
    	{
    		if(xhr.readyState == 4 && xhr.status == 200)
    		{
    			reponse = xhr.responseText;
    			document.getElementById("message").innerHTML = reponse;
    		}
    	}	
     
    	xhr.open("POST","save_data.php",true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.send("ltd=" + ltd + "&lng=" + lng);	
    }

    Dans la page PHP, tu récupères les données $_POST["ltd"] et $_POST["lng"].

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    D'accord je te remercie !! Ca marche très bien

    Maintenant j'ai une question, comme je fais pour le faire dans l'autre sens : Récupérer mes données dans ma Base pour les afficher via GoogleMaps !

    Je ne comprends pas vraiment comment structurer mon code pour y parvenir...

Discussions similaires

  1. Variable API google map JS avec bdd
    Par gaticho dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 26/01/2015, 14h38
  2. [Google Maps] API V3 avec jQuery
    Par omar24 dans le forum APIs Google
    Réponses: 4
    Dernier message: 29/04/2011, 13h08
  3. Rafraichir les données XML avec l'API Google Maps
    Par olaf_le_preux dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/02/2010, 20h37
  4. Affichage avec api google map
    Par S-Kayp dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/10/2008, 13h52
  5. Tester l'existence d'un point avec l'api google map
    Par numerodix dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/10/2008, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo