Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

API GOOGLE MAPS!


Information sur le tutorial

Catégorie :Javascript / DHTML Date de création : 16/08/2008 20:32:45 Vu : 7 476 fois

Note :
Aucune note

Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note

Description

Comment mettre en place l'API GOOGLE MAPS?
À la base l'API que google propose est réalisée en JScript; donc pas interessant pour nous autres developpeurs en PHP purs et durs (^^).
Heureusement de plus en plus de classes PHP ont vusle jour pour générer le JScript de l'API GOOGLE; analysons en une:  N/X API to Google Maps

Tutorial

Préambule

Pour la classe N/X API, vous pouvez soit la télécharger ici (inscription nécessaire) soit la trouver dans le ZIP.

Note : le script original n’est pas W3C valid donc je me suis permis d’optimiser la class originale (cf fin du tutorial).

Une fois installée dans le répertoire d’exécution (ou dans n’importe quel autre sur votre serveur), nous allons nous intéresser de près à la génération du JS.

Avant toute chose il vous faut une clef (API KEY) gracieusement fournie par Google à cette adresse. Pour ce faire vous devez possédez un compte google, accepter (aveuglement ^^) la charte et indiquer le site sur lequel vous désirez installer votre API. (Si votre script est installé dans une sous répertoire n’oubliez pas de l’indiquer !). Cette clef est une sorte de HASH à la mode Google du dossier de votre site donc si vous voulez changer de place votre page PHP qui génère la MAP faite les maintenant, ou alors il vous faudra redemander une clé valide à Google.

Créons un fichier PHP basique :

Ouvrer une de vos pages modèles si vous en avez et définissons :

<?php

define(GoogleMapsKey, '<GoogleAPIKey>');
require "nxgooglemapsapi.php"; // Include de la classe
$api = new NXGoogleMapsAPI(); // instanciation de la classe
$api -> setHeight(600); // hauteur de la map
$api -> setWidth(800); // largeur de la map
$onLoad = $api->getOnLoadCode();
$contenuMAP = $api-> getBodyCode ();

?>



<html>
<head>
<?php echo $api->getHeadCode(); ?>
</head>
<body onLoad="<?php echo $onLoad;?>">
<?php echo $contenuMAP; ?>
</body>
</html>

Et voilà, ce n’était pas si compliqué ^^


Quelques fonctions encore intéressantes :


$api->addControl(GLargeMapControl); Boutons de contrôle


$api->addControl(GMapTypeControl); // Menus de choix de type de carte (map, satellite, mixte)


$api->setZoomFactor(16); // Définition du zoom d’affichage initial


$api->addControl(GOverviewMapControl); // Petite carte en bas à droite


$api->addAddress("adresse, pays", "Texte de la bulle (TXT/HTML)", (true/false)); // Créer une bulle par rapport à une adresse ; la troisième valeur définit si la bulle doit représenter le centre de la carte. (Si plusieurs true, le dernier fait foi)

$api-> setCenter ((int) $long, (int) $lat)) // Positionne la carte p/r aux coordonnées


Finalement quelques améliorations du script (W3C valid) :

Ligne 202 : remplacer par :

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key='.$this->apiKey.'" type="text/javascript"></script>';

Le probleme est que les symboles ET (“&”) ne sont pas valides donc on les remplaces par “&amp;”

Ligne 104 : remplacer par :

$ar = array(addSlashes($address), str_replace("</","<\/",addSlashes($htmlinfo)), $setCenter);

Comme l’indique la doc du W3C (ici) , il faut utiliser une barre oblique inverse pour empêcher que la chaîne soit interprétée comme du balisage JS.

16 août 2008 20:58:34 :
Erreur de lien
signaler à un administrateur
Commentaire de christophe_be2 le 29/08/2008 10:20:41

Salut GillesWebmaster,

Je viens de tomber sur le tutoriel "API GOOGLE MAPS!" qui me semble plus qu'intéressant et en plus valide W3C.
Tu dis : "Pour la classe N/X API, vous pouvez soit la télécharger ici (inscription nécessaire) soit la trouver dans le ZIP".
Peux tu me dire où je peux trouver le zip car je ne le vois pas sur la page.

Bonne journée et merci pour ce tutoriel.

Christophe_be2

signaler à un administrateur
Commentaire de GillesWebmaster le 29/08/2008 17:08:12

Oui désolé voici l'URL:
http://www.phpcs.com/codes/API-GOOGLE-MAPS-DEPUIS-PHP-VALID-W3C_47802.aspx
@++

signaler à un administrateur
Commentaire de GillesWebmaster le 29/08/2008 17:28:14

S'il te plait ce tutoriel, tu peux le noter! :)

signaler à un administrateur
Commentaire de PCPT le 30/08/2008 22:14:04 administrateur CS

quelques refontes, la notation des tutos est inactive pour le moment

signaler à un administrateur
Commentaire de christophe_be2 le 31/08/2008 17:17:59

Je mettrai la note mais ça fonctionne toujours pas donc ... je la mettrai quand ce sera à nouveau possible ...

Par contre, quand j'essaie d'ajouter plusieurs adresses (plus de 10), j'ai une "alert" comme quoi il ne trouve pas certaines de ces adresses. Aurais-tu une idée sur comment résoudre ce problème?

Une autre petite chose, sais tu si il est possible, comme sur le site Googlemaps, d'avoir dans l'info bulle, un lien qui permettrait de calculer son itinéraire à partir et vers ce lieux?

Merci d'avance.

signaler à un administrateur
Commentaire de GillesWebmaster le 31/08/2008 17:20:40

itch alors pour les dix adresses je vais voir...
pour le calcul d'itinéraires, google se réserve cette fonctionnalité, dsl pas accessible en JS/PHP!

signaler à un administrateur
Commentaire de christophe_be2 le 15/09/2008 09:52:35

Voilà qui est fait (pour la note).

As tu eu le temps de regarder au problème des + de 10 adresses? Pour ce qui est du calcul d'itinéraire, j'ai un peu regardé, et maintenant Google permet cette fonctionnalité, ..., je regarderai ça de plus près bientôt.

signaler à un administrateur
Commentaire de dunbar le 17/09/2008 17:16:58

Bonjour,
Merci pour le tuto qui est trés bien fait, mais il me reste une question comment es t'il possible de faire en sorte que le marker soit de couleur differente suivant un critere precis ??
D'avance merci

signaler à un administrateur
Commentaire de GillesWebmaster le 17/09/2008 18:25:49

Bonjour alors je vais regarder ces petites question et je vous redis...

signaler à un administrateur
Commentaire de dunbar le 17/09/2008 18:55:49

Merci

signaler à un administrateur
Commentaire de dunbar le 19/09/2008 11:59:20

Aucune idée ?

signaler à un administrateur
Commentaire de GillesWebmaster le 20/09/2008 16:06:05

Bonjour à tous!
Malheureusement je ne reviens pas avec de bonnes nouvelles; En effet l'erreur de la "Location not found" est, à mon sens, imputable au JS! Existerai-t-il une limite d'élément dans un tableau en JS? (var addresses = new Array(...) )
Concernant la couleur, dsl je sais que c'est faisable en JScript! Si tu me donne le code JS, je te l'implémenterai dans la class PHP!

signaler à un administrateur
Commentaire de bobatheboss le 30/09/2008 23:46:28

Merci pour ce tuto et les liens qui vont bien avec.

signaler à un administrateur
Commentaire de GillesWebmaster le 01/10/2008 19:13:46

Pas de soucis...
Par contre je ne vois toujours pas de note!

signaler à un administrateur
Commentaire de Scratyx le 09/10/2008 14:11:10

Pour ce qui est de l'erreur de location...

Après avoir utilisé les divers API Google Map, il s'avèrerait que la recherche de plus de 10 (une dizaine d'adresse en fait) pose problème au Géocoder de Google (ce n'est pas un problème de Javascript). En effet le Géocoder à besoin de temps pour s'exécuter; et s'il reçoit trop d'adresses d'un coup, ça plante.

A mon avis, le mieux serait de placer vos points grâce à leur Latitude et Longitude, donc s'en passer par le Géocoder.

La solution que j'ai déployée sur divers sites est de passer votre "point de recherche" au géocoder, d'obtenir les points, de les stocker en base de donnée et ensuite pouvoir faire votre recherche google map avec les points. Et je vous garanti que pour plus de 10 point ça fonctionnera.

signaler à un administrateur
Commentaire de GillesWebmaster le 09/10/2008 17:29:57

bonne idée!

signaler à un administrateur
Commentaire de christophe_be2 le 15/10/2008 01:23:13

Oups, la note n'a pas été prise en compte. La voici donc ...

signaler à un administrateur
Commentaire de GillesWebmaster le 15/10/2008 12:50:15

je ne la vois pas?!

signaler à un administrateur
Commentaire de momo1972 le 28/11/2008 07:33:03

Bonjour Gilleswebmaster,
Merci pour ce tuto qui m'a permit de mieux comprendre les choses. Pour ma part, je lui donnerait une note de 7,5/10.
Je rencontre le meme pb que vous alors que j'aurais besoin d'afficher une centaine de d'adresses. Il me faut donc toutes les geocoder en un bloc avant de les afficherpar leur geopoints.
Je voudrais transformer un tableau contenant plusieurs adresses en un tableau contenant les geocoordonnées correspondants. Par exemple, j'ai le tableau addresses qui est de la forme suivante var addresses = new Array( new Array("Moscou, Russia", "La place rouge ou le Kremlin <br>Chez Poutine ", true), new Array("Santiago Chili", " Palais del revolutione <br>Tel 23450987765 ", true)) et je voudrais obtenir le tableau geopoints de la forme suivante var geopoints = new Array( new Array(23,54, "La place rouge ou le Kremlin <br>Chez Poutine ", true), new Array(21,9, " Palais del revolutione <br>Tel 23450987765 <br>", true)) et je n'arrive pas à mettre en place un code javascript qui me fait le travail.
Voici ce que j'avais pensé faire:
function conversion(){
var geopoints = new array;
for (i=0; i< addresses.length;i++){
if (geocoder){
                                  geocoder.getLatLng(addressses[i][0],function(point) {
if (!point){
alert("Location not found:" + adressesi0);
}else {

marker= new GMarker(center);
var tpoint= marker.getPoint();
                                                                                                 geopoints[i][0]=tpoint.lat();
                                                                                                 geopoints[i][1]=tpoint.lng();
                                                                                                 geopoints[i][2]=addresses[i][1];
                                                                                                 geopoints[i][3]=addresses[i][2];
}

} )
}
}
return geopoints;
}

puis ensuite appeler la fonction conversion:@@ var geopoints = conversion();

@@
, puis ensuite appliquer la fonction showGeopoints(), mais aucun points ne s'affiche, il n'y a que le map. J'ai vraiment besoin de votre soutient car je dois livrer le client très bientot.Merci d'avance.

signaler à un administrateur
Commentaire de fabvincent le 01/12/2008 16:45:09

Bonjour,
je suis le tuto depuis un petit moment et ca marche bien sauf que cela me fait crasher safari systematiquement a caus e du code php dans le head du html?
des suggestions?

signaler à un administrateur
Commentaire de giloubidou le 09/12/2008 17:11:09

Hello,
je crois savoir qu'il faut une API Key, généré par l'inscription du nom de domaine/site qui utilise google maps.

signaler à un administrateur
Commentaire de stooff le 12/02/2009 22:55:13

Bonjour,

Juste un petit commentaire pour noter et féliciter le concepteur de ce script : 8/10.
S'intègre facilement et réagit correctement quand tous les champs nécessaires sont renseignés.

Je relance le débat concernant la limitation du nombres d'adresses à importer environ une quinzaines(qui vient bien de google, je rereconfirme) alors que j'ai 93 adresses à importer, en augmentation (géolocalisation de clients simplifiant la gestion de ma zone de chalandise).
Je n'ai pas réussi à implémenter correctement un script de génération des points de géolocalisation.

momo1972 : j'ai adapté ton script mais sans grand succès comme à ton instar.
Quelqu'un aurait-il trouvé une piste ou créé un script pour ce faire.

signaler à un administrateur
Commentaire de stooff le 12/02/2009 22:59:45

Toujours pas de note on dirait, hummm...

dsl GillesWebmaster, ct pourtant de bon coeur ;)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.