Utilisation API Google maps (javascript) avec des données en PHP

Résolu
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 - 2 sept. 2014 à 17:50
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 - 3 sept. 2014 à 17:05
Bonjour !

Voilà j'ai un souci que je ne vois pas trop comment résoudre...
J'ai une appli en html/php avec un peu de javascript.
J'a un formulaire de saisie d'adresse qui fait le lien avec un fichier php qui enregistre les réponses dans la base.
Ma question est : Comment faire en Javascript pour utiliser l'aPI google maps (plus précisément le service geocoder) pour, avec l'adresse, calculer les coordonnées de l'adresse et les envoyer dans mon fichier php pour les ajouter en base avec le reste des informations ?

Infos utiles : j'utiliserai le retour d'infos au format json plutôt que XML sauf si y'a un besoin particulier. J'ai ma clef d'utilisation pour l'API google. Base de données mysql (je pense pas que ça importe vu que l'accès est géré séparément mais dans le doute)

Voilà donc si qqn à un bout de code qui peut me mettre sur la voie, merci d'avance =)
A voir également:

5 réponses

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
2 sept. 2014 à 18:08
Bonjour,

Je ne suis pas sûr d'avoir compris exactement ton besoin...
Tu souhaites savoir comme utiliser google map ( et/ou geocoder) via du javascript ?

Dans ce cas.. il existe aussi des script tous fais pour manipuler les api google depuis du javascript..
par exemple une petite recherche de 5 secondes sur google me donne :
https://developers.google.com/maps/documentation/javascript/geocoding?hl=FR


.... Ou bien... ta question est : Comment depuis mon script Javascript ( Une fois que j'ai récuperé les infos dans google Map) les envoyer à ma page Php ??
=> Si c'est de cela qu'il s'agit (et je pense que oui)... la réponse est "simple".... Tu dois passer par AJAX !
( de préférence en utilisant jquery : http://api.jquery.com/jquery.ajax/ )





0
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023
3 sept. 2014 à 10:05
Merci pour ta réponse =)

Je précise. En fait je voudrais que quand je clique sur mon bouton de formulaire, j'appelle l'API de geocoding avec les infos du formulaire (adresse) pour sortir des coordonnées GPS qui correspondent puis les transférer dans mon fichier php qui les ajoutera en base.
J"ai bien vu comment marchait l'API avec des requêtes comme celle là :
https://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver&destinations=San+Francisco&mode=driving&language=fr-FR&key=ma clef d'API


Mais je sais pas comment appeler cette requête en javascript et récupérer les résultats qui m'intéressent et les envoyer avec le reste de mes données dans mon form (method post). Si j'utilise ajax je ne peut pas envoyer mes autres données si ? Enfin je suis un peu perdu...
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
3 sept. 2014 à 10:55
je sais pas comment appeler cette requête en javascript et récupérer les résultats qui m'intéressent
As tu regardé les exemples du site que je t'ai donné ??
As tu cherché sur le net d'autres exemples ? (il y en a)..

les envoyer avec le reste de mes données dans mon form (method post).

Ajax te permet (entre autres choses) d'interfacer du javascript avec du PHP principalement utilisé pour Lire/écrire/supprimer dans une BDD en arrière plan...c'est à dire... sans avoir à changer de page ou à recharger la page en cours...
Plus d'infos :http://fr.wikipedia.org/wiki/Ajax_%28informatique%29

Si j'utilise ajax je ne peut pas envoyer mes autres données si
Rien ne t'empeche de récupérer TOUT le contenu de ton formulaire et les autres variables récupérées/créés par ton code javascript... et d'envoyer le tout à un script PHP...

0
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023
3 sept. 2014 à 11:43
Salut =)

Alors premièrement pour être précis je n'utilise pas l'API google maps v3 pour mon geocodage mais l'api de géocodage seule qui est à part (donc c'est ce lien qui correspond le mieux ). C'est principalement pour économiser mon quota de requêtes sur la carte.

Ensuite j'ai continué de chercher et j'ai trouvé ce site qui détaille un peu sans donner d'exemple. J'ai aussi trouvé cette page qui détaille les valeurs de retour et comment "extraire" les données (encore un lien).

J'ai aussi lu ton site pour l'utilisation d'Ajax.

La seule chose qui me manque pour combiner le tout c'est l'appel à l'API en javascript... Je trouve pas d'exemple sur le site de google (que des exemples dans le navigateur).
Alors que ça doit pas être le plus dur ! Je dois rater un truc quelque part...
0
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023
3 sept. 2014 à 11:47
J'ai ce tuto remarque qui correspond pas mal...
http://www.wikihow.com/Geocode-an-Address-in-Google-Maps-Javascript
0
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023
3 sept. 2014 à 11:50
C'est quand on dit qu'on trouve pas qu'on trouve le plus -_-
J'ai ce tuto ultra simple pour faire ça en php. Comme ça dans le php qui gère l'ajout en base je met une fonction et c'est réglé...
T'en pense quoi ?
0
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023
3 sept. 2014 à 12:17
En y regardant de plus près le premier tuto est obsolète (API v1)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023
Modifié par Lapourax le 3/09/2014 à 17:06
Voilà la solution optimale :

<?php
// On prépare l'adresse à rechercher
$address = "1 avenue des champs elysées Paris";
 
// On prépare l'URL du géocodeur
$geocoder = "[http://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false]";
 
// Encodage UTF8
$url_address = utf8_encode($address);
 
// Penser a encoder votre adresse
$url_address = urlencode($url_address);
 
// On prépare notre requête
$query = sprintf($geocoder,$url_address);

//echo $query; Vous montrerai l'URL definitive
 
// On interroge le serveur
$resultats = file_get_contents($query);
 
// On affiche le résultat
var_dump(json_decode($resultats)->results[0]->geometry->location->lat);
var_dump(json_decode($resultats)->results[0]->geometry->location->lng);

?> 


La vie est un mystère qu'il faut vivre, et non un problème à résoudre. (Gandhi)
La meilleure manière d'atteindre le bonheur est de le donner aux autres. (Lord Baden-Powell)
0
Rejoignez-nous