Table des matieres

Chut, ca charge ...

Tutoriel application Google Map avec PHP


Me voila de retour avec un nouveau super tutoriel ;) Aujourd’hui nous allons apprendre comment créer une application Google Map (histoire d’être bien tendance) sans utiliser la moindre ligne de code Javascript, uniquement du PHP. (on a assez fait avec le tutoriel sur Mootools, n’est ce pas ?)

Bon on se lance un peu de musique et gogogo !

Si tu ne trouves pas ton bonheur ici ou si tu recherches des fonctions plus avancées, je te conseille ce site qui regorge de tutos du plus simple au plus avancé sur Google map. Par contre c’est en anglais, mais va falloir te forcer un peu hein ;)

Pourquoi Google Map ?

Faisons un petit tour rapide de ce qui ce fait en ce moment .Il existe trois acteurs majeurs pour générer des cartes en ligne:

  • Yahoo! Maps
    Propose une API (=Application Program Interface) très puissante, permet même de faire des maps en Flash avec Javascript ou en AJAX. La liberté de personnalisation est incredible incroyable, notamment cet exemple.Documentation soignée et claire comme toujours chez Yahoo!. Vous pouvez voir des exemples d’applications réalisées avec Yahoo! Maps.
  • Google Map
    Documentation très claire également. Simple d’utilisation et plus diffusé et connu pour les utilisateurs de bases. Nous allons l’explorer plus en détails dans la suite. Vous trouverez ici un wiki comportant de nombreuses ressources et exemples.
  • Virtual Earth
    C’est le petit nouveau de la bande, celui du grand Microsoft qui veut pas rester � la traine. Je n’ai pas vraiment eu le temps de tester et leur API en est � ses balbutiements. Laissons lui le temps de grandir un peu car pour l’instant il a beaucoup de retard, surtout niveau documentation et exemples.

Pour ce tutoriel, nous prendrons Google car il existe une classe PHP qui permet de pouvoir l’utiliser sans faire de Javascript. trop de Javascript tue le Javascript ;)

GoogleMapAPI.class.php

Nous utiliserons pour ce tutoriel , cette excellente classe que je vous laisse télécharger. Sinon vous pouvez directement la télécharger ici. (renommer ensuite de .txt � .php)

Utilisation de la classe

Nous allons pour commencer créer notre petit fichier tutoriel_google_map.php dans le même repertoire que notre classe.

On commence par ajouter notre petit code PHP, les commentaires sont suffisamment explicite je pense. Il te faudra une clé Google.

//on inclus le fichier necessaire
require('GoogleMapAPI.class.php');
//on crée notre carte
$map = new GoogleMapAPI('map','tutoriel_map');
// permet de mettre en cache afin d'eviter des requetes inutiles ds le futur
//on ne l'utilisera pas dans notre cas , car il faut installer PEAR et c'est chiant
//mais il faudrait le faire dans une utilisation réelle
//$map->setDSN('mysql://root:yr@localhost/GEOCODES');
// METTEZ ICI VOTRE CLE GOOGLE
$map->setAPIKey('ICI TU MET TA CLE');
//taille de la map
$map->setHeight("500");
$map->setWidth("650");
//on desactive la barre de coté?
//$map->disableSidebar();
//DesActive les  boutons(map/satellite/hybrid).
$map->disableTypeControls();
//Quel est le type de carte par defaut ? (map/satellite/hybrid)
$map->setMapType('map'); // default
//On déssactive les boutons pour afficher la direction d'un point a l'autre
$map->disableDirections();
// Permet de definir le zoom automatiquement afin de voir tous les marqueurs d'un coup.
$map->enableZoomEncompass();
//Active la mini map en bas a droite
$map->enableOverviewControl();
//permet de définir l'icone sur la map, nous on change pas
//$map->setMarkerIcon('http://www.canadianwinter.ca/uploads/icon/marker_cw.png','http://www.canadianwinter.ca/uploads/icon/marker_cw_shadow.png',6,20,10,1);

//CREATION DES MARQUEURS
//on peut egalement utiliser addMarkerByCoords() si on a déj�  la latitude et longitude des points
//Exemple basique
$map->addMarkerByAddress('16 Boulevard Winston CHURCHILL, 25000','IDfr (ex simple)','IDfr c'est bien. blog.idfr.net');
//exemple avec du HTML
$map->addMarkerByAddress('4 rue de l'ermitage, Besançon, 25000','Vt-design (ex HTML)','
<h1>Vt-Design</h1>
4 rue de l'ermitage, Besançon, 25000
<strong>gras</strong>
<em>italique</em>
<a href="http://vt-design.com">Vt-design.com</a>');
//exemple avec onglet
$map->addMarkerByAddress('1336 Notre Dame West, Montreal, QC H3C1K7 ','Griffintown Media (ex onglet)',array('Contact'=>'1336 Notre Dame West, Montreal, QC H3C1K7
', 'Description'=>'Agence de communication plutot spécialisée dans le print'));
//Ex avec beaucoup de contenu
$map->addMarkerByAddress('9 rue de la grande planche,Saint-vit, 25410','Ma maison (ex bcp texte)','
Beaucoup de contenu
Beaucoup de contenu
Beaucoup de contenu
Oh nan mon dieu ca va dépasser !
Beaucoup de contenu
Beaucoup de contenu
Beaucoup de contenu
Beaucoup de contenu
Beaucoup de contenu
Et voila ca dépasse je vous avais prévenu !
');
?>

A la suite, le code HTML et CSS de base pour afficher notre carte et la barre de navigation.


<script src="mootools.release.83.js" type="text/javascript"></script>
printHeaderJS(); ?>
printMapJS(); ?>

<script src="../js/slimbox.js" type="text/javascript"></script>

 

<!-- necessaire pour google pour tracer les polylines -->
<!--    v:* {     behavior:url(#default#VML);   }   /*pour les infobulles de la carte*/   #gmapmarker {    	font: normal small verdana, arial, helvetica, sans-serif;   	font-size: 10pt;   	margin: 0px;   	width: 350px;   	height: 150px;   	overflow:auto;   }

#gmapmarker p{    	margin : 0;   	padding : 2px 0 2px 0;   }

#gmapmarker a {text-decoration: none; color: #0066CC; background-color: transparent;}

#gmapmarker a:hover {color: #F60; background-color: transparent;}

#gmapmarker h1 {   	font-weight: bold;    	font-size: 13px;    	color: #369;    	border-bottom: 2px solid #369;   	padding : 2px;   	margin : 0;   }

/*div qui contient la carte*/   #map {   	float : left;   }  -->
<h1>Tutoriel Google Map API avec PHP (http://fardeen.biz)</h1>
<table border="1">
<tbody>
<tr>
<td>printMap(); //on affiche la map ?></td>
<td>printSidebar(); //on affiche la barre de nav?></td>
</tr>
</tbody></table>

On obtient ce magnifique résultat final.

Il existe de nombreuses autres fonctions que je te laisse découvrir sur la page de la classe (en bas de la page, après Base Class Methods)

Exemple d’application plus avancée

Bon l’exemple précédent n’a pour but de vraiment montrer la facilité avec laquelle on peut intégrer google Map.

Avec ce que nous avons vu dans le précedent tutoriel sur Mootools, avec l’ajout d’une interaction avec une basé de donnée, et ce que vous venez d’apprendre dans ce tutorel il est possible d’obtenir une application (que j’ai réalisée en anglais) comme celle ci (cliquez sur l’image)

Cliquer sur le lien

Cette application est gérée grâce à une interface d’administration, mais cela fera l’objet d’un prochain tutoriel (edit : maintenant disponible). J’ai également intégré ce prototype Javascript qui permet d’ouvrir des fenètres dans la page plutôt qu’une popup.

Conclusion

J’espère que ce tuto vous a plu et comme d’hab hésitez pas à poser des questions, ou à me corriger si j’ai dit une connerie ;)

Voila tu es maintenant prêt à faire une application de tueur toi aussi !

Prochain tuto : Faire une administration de fou très rapidement et simplement. Pour rester informé, inscris toi au flux RSS.

233 réponses à “Tutoriel application Google Map avec PHP”

Tutoriel application Google Map avec PHP…

Apprendre comment crer une application Google Map (histoire d’tre bien tendance) sans utiliser la moindre ligne de code Javascript, uniquement du PHP. Et c’est facile en plus !…

Anonymous le 17 November 2006 19:29 |

Tuto sympa, rien à redire.
Je voulais juste souligner le fait que le rendu de ton site fonctionne mal sous IE. Pour quelqu’un qui prone les standards, il faut penser à tout le monde !

LockS le 20 November 2006 07:31 |

Merci de le signaler, c’est vrai que j’ai pas trop le temps de régler les ptits bugs d’IE (et la flemme aussi) , surtt que 85% des visiteurs ici ont firefox , j’me presse moins … Promis j’le fais bientot :)

Et j’ai jamais dit que je pronais les standards, on est pas chez Alsacreation ici ;)
Les standards oui mais ds une certaine limite, y a pas d’icone W3C valide ici :D Parcque j’prefere faire des tutos que du code valide , c’est plus fun :)

Fardeen le 20 November 2006 10:54 |

Bravo,
mais comment changer les icones et cela d’une façon dynamique (lien avec une base)

de toute façon encore bravo

Bruno le 22 November 2006 17:54 |

Merci,

pour changer de facon dynamique , normalement il suffit de décommenter cette ligne :

$map->setMarkerIcon(…)

S’il faut un marqueur different par element sur la carte, il suffit de reappler cette ligne avant chaque $map->addMarkerByAddress(…) . Je n’ai pas eu ce besoin spécifique mais en tout cas cela devrait marcher.

N’hésite pas a confirmer si cela fonctionne comme cela.

Fardeen le 22 November 2006 18:30 |

>S’il faut un marqueur different par element sur la carte, il suffit de reappler cette ligne >avant chaque $map->addMarkerByAddress(…) . Je n’ai pas eu ce besoin spécifique mais >en tout cas cela devrait marcher.

Je confirme ça fonctionne

Vincent le 5 December 2006 02:41 |

Merci pour ce super tuto :D

En plus c’est en PHP donc j’ai piger directe et ca marche …

Merci bcp

jarodxxx le 12 December 2006 12:17 |

Merci Super le tuto
j’ai juste un petit probleme pour que l’info bulle apparaisse plus haute.
Comment faire ??
j ai essaye de chercher dans GoogleMapAPI.class.php mais je n’ai pas trouvé.
Merci d’avance.

karl le 19 December 2006 20:44 |

Salut,

Quand si je comprend bien ton besoin, il faut définir un icone avec

[php]
$map->setMarkerIcon(’http://www.canadianwinter.ca/uploads/icon/marker_cw.png’,'http://www.canadianwinter.ca/uploads/icon/marker_cw_shadow.png’,6,20,10,1);
[/php]

En modifiant les dernières valeurs des arguments qui correspondent à la position d’accroche de la bulle par rapport au marqueur.

Voila j’espère que ca repondra à ta question ;)

Fardeen le 20 December 2006 10:59 |

Merci Fardeen pour ta réponse rapide
mais je me suis mal exprimé.
En fait je veux mettre des videos dans les infos bulles.
et comme la video est plus grande, des ascenseur apapraissent. Mais c’est pas trés cool pour regarder une video …
en fait c’est pour avoir une info-bulle plus grande.
voici ce que j’ai fait pour mes manip.
cf : http://1866.free.fr/dotclear/exemple/googlemapapiclass.php
voir le marqueur cathedrale de florence.
je voudrai plutot quelquechose comme ici :
http://homepage.ntlworld.com/keir.clarke/Iguazu.htm
et merci beaucoup.
ton script php pour google map est super.

karl le 20 December 2006 12:14 |

Sur cette page http://www.econym.demon.co.uk/googlemaps/maxurl.htm tu a un tutoriel pour apprendre a maximiser une infobulle à l’aide d’un icone ;)

Tu peux egalement définir la taille de l’infobulle avec les CSS.

[css]
#
/*pour les infobulles de la carte*/
#
#gmapmarker {
#
font: normal small verdana, arial, helvetica, sans-serif;
#
font-size: 10pt;
#
margin: 0px;
#
width: 350px;
#
height: 150px; //change ta hauteur ici
#
overflow:auto; //cette propriété indique que si le contenu est tro grand, il y aura une scrollbar
#
}
[/css]

Fardeen le 20 December 2006 12:21 |

super fardeen.
merci.
j’avais regardé “partout” sauf dans le css …
merci pour la reponse ultra rapide :)

karl le 20 December 2006 13:02 |

me revoila avec un dernier Pb
j ai mis une video de youtube pour tester, elle apparait dans l’infobulle.
mais impossible de cliquer sur lecture pour lancer la video.

voila ce que j’ai mis :
$map->addMarkerByCoords(’11.256287′,’43.773279′,’Cathédrale de Florence (ex longitude latitude)’,”);

toujours visitable sur le lien mis au dessus
merci pour tout
karl

karl le 20 December 2006 18:22 |

Je viens de tester avec IE6 et Firefox2 et j’arrive bien à cliquer sur la vidéo.

Fardeen le 20 December 2006 20:18 |

ah oui j essayai avec firefox1.5 et ca marchait pas bizarre
merci beaucoup
Du coup je met à jour firefox lol

karl le 20 December 2006 22:31 |

juste pour signaler que je suis tombé sur une appli qui permet de générer ENCORE plus facilement des google maps: mapbuilder
pas une seule ligne de code a pondre… donc pour les vraiment fleimards …

daweed le 3 January 2007 11:14 |

Je met même l’adresse pour les super flemmards ;)

http://www.mapbuilder.net/

Mais si vous savez programmez , même un tout petit peu, je vous conseille de faire votre map vous même ;)

Fardeen le 3 January 2007 11:21 |

Bonjour,

Je souhaiterais developper une application “cartographier des membres” j’ai donc besoin de google map avec un ebase de données, (en php c supper)
bref, comment je peux utiliser google map en localhoste chez moi, pas de net donc la clé pourra pas être verifié

jean paul le 9 January 2007 17:27 |

Désolé pour la réponse tardive, mais il suffit de mettre localhost dans le nom de domaine et tu as ta clé :)

Fardeen le 18 January 2007 15:53 |

Bonsoir, je suis novice en php et avec l’API Google Maps et je ne comprends pas du tout à quoi servent ces deux instructions :
printHeaderJS(); ?>
printMapJS(); ?>
Pourriez-vous éclairer ma lanterne merci.

Thierry le 21 January 2007 17:50 |

Salut thierry,

ces 2 lignes permettent d’ecrire le code Javascript nécessaire à l’API Google map.

Il faut bien comprendre que l’API Google map est uniquement en javascript. Ce tuto traite une classe PHP qui permet de ne pas avoir a coder en Javascript.

J’espere avoir été suffisament clair sinon n’hésite pas à préciser davantage ta question.

Fardeen le 21 January 2007 21:31 |

Merci de m’avoir répondu j’ai bien compris à quoi servait ces 2 lignes encore merci pour l’info.

Thierry le 22 January 2007 00:43 |

Bonsoir, j’ai un gros problème. Je voulais savoir si il était possible d’utiliser la classe pour créer une carte à partir d’une page HTML qui contient des input, text pour la latitude, la longitude et des checkbox pour d’autres options. Cette page envoie les paramètres à une page TraiteInfos.php qui doit récupérer ses paramètres et afficher la carte en fonction des paramètres. Dans ce fichier j’ai un include de la classe GoogleMapAPI. La carte ne s’affiche pas. Pourriez-vous m’aider ?

Thierry le 25 January 2007 02:07 |

C’est bon j’ai trouvé la solution à mon problème. Par contre, est-ce que vous connaissez d’autres icônes pour les marqueurs à part les deux qui sont données dans votre tutorial ? Car je n’en trouve pas d’autre.

Thierry le 25 January 2007 18:16 |

Voila une generateur de marqueur Google Map :)

http://www.gmaplive.com/marker_maker.php#

Fardeen le 25 January 2007 18:55 |

Merci, il est génial c’est justement ce dont j’avais besoin :)

Thierry le 25 January 2007 20:04 |

Bonjour, voilà je voudrais mettre en cache les requêtes envoyées au serveur mais je ne comprend pas trè bien le fonctionnement. J’ai installé PEAR et si je comprends bien il faut créer une base de données? Ensuite je ne vois pas trop comment s’utilise la commande :
$map->setDSN(’mysql://USER:PASS@localhost/GEOCODES’);
setDSN($dsn)
Pourriez-vous m’aider?

Thierry le 28 January 2007 03:49 |

Bonjour à tous peut etre avez vous deja tarités mon pb

Je souhaite localiser sur une carte mes membre (qui son dans une base de donneés)

pouvez vous me fournir le code php pour faire une telle operation ?

merci pour votre aide

b

BDUR le 30 January 2007 18:01 |

Salut,

j’ai justement developpé une application de localisation de balise GPS . J’en parlerai bientot sur le blog.

Pour ce qui est du code que tu demandes, il suffit de regarder le tutoriel et de le tranposer a ta base de donnees.

Fardeen le 30 January 2007 18:06 |

je me sert de votre tuto que je trouve tres sympa mais je bloque sur la requet pour constituer les diferentes adresses.

je pense faire un wilde mais pour la suite ??? as tu une adresse mail sinom passe par mon site. Peux tu me contacter ?
merci pour le coup de main

BDUR le 30 January 2007 18:44 |

Je mettrais en ligne bientot un tuto sur comment lier la classe Google Map a une base de donnée :) Cela répondra à ta question.

Fardeen le 31 January 2007 01:21 |

Bonjour et bravo pour le tuto !!!
Juste une ch’tite question ou plutôt 3, si je peux :
1- dans ta démo il n’y a que 2 marker qui s’affichent (en tt cas chez moi avec FF2.0, il s’agit de celui de l’adresse au Canada, et celui de ta maison, j’ai beau m’écarquiller les yeux, je ne vois pas pkoi ?
2 - J’ai essayé de rajouter l’adresse / le marker ci-dessous :
$map->addMarkerByAddress(’1 bis rue du Printemps, 78230′,’chez moi (ex simple)’,'zoulou’);
et là, elle n’est même pas prise en compte, ni dans la table sur le coté, ni sur le plan… et pourtant, Google Earth, par exemple, la reconnait bien…

3 - Une alternative à entrer l’adresse / les ccordonnées (long / lat, qui ne sont pas connues à priori…!) ou la récupere par le biais d’une BD serais de situer “l’endroit ‘ sur une carte et d’en récupere alors les coordonnées, cela est il possible via l’API Google ?

Merci bcp pour ton aide,
Cordialement,
JM
NB : désolé pour le code qui est mal indiqué, j’ai pas trouvé les balises, genre BBCode…

Jean Marc le 31 January 2007 18:51 |

Hum !

J’ai compris !
pour les pb de marker, il manquait lles viles !!!
pour ma question 3, par contre , là je sèches…
Merci et désolé pour le temsp perdu !

Jean Marc le 31 January 2007 19:04 |

Salut et merci :)

Alors pour répondre rapidement à tes question :
1) Je suis sous Firefox 2.0 j’ai bien les 4 marqueurs.
2)Ton adresse ne doit surement pas etre assez precise. Google earth corrige automatiquement l’adresse, pas la classe.
3)Un prochain tuto sur comment lier cette classe avec la BDD sera prochainement en ligne

Voila ;)

Fardeen le 1 February 2007 02:59 |

Pas mal du tout le tuto, mais, j’ai un petit souci.

Voila, quand je commente la ligne : $map->disableDirections(); donc autrement dit quand j’active les boutons to et from, je n’arrive plus à afficher les info des marker quand ces info sont organisées en onglet…

J’suis je le seul a avoir ce problème ?

Antoine le 7 February 2007 14:56 |

Je viens de taper une longue reponse et Firefox vient de planter alors t’auras le droit qu’ aune reponse plus courte desole .

Regarde le code de la fonction disableDirections(); dans la classe PHP et tu verra que c’est pas tres complique.

Et le code de direction , tu peux l’inclure toi meme sinon dans les infos de ton marker. Rien de bien complique encore une fois.

Fardeen le 7 February 2007 15:12 |

Et au fait l’exemple de CanadianWinter remarche enfin :)

Fardeen le 7 February 2007 15:56 |

Est -il possible de récupérer la longitude et la latitude à partir d’une adresse que l’on donne?

Spoltix le 7 February 2007 16:34 |

En temps reel ?

Ou tu as deja les adresses stockees dans une base ?

Fardeen le 7 February 2007 16:38 |

Je souhaite à partir d’un formulaire, inscrire l’adresse, code postal, ville, pays, et lors de la validation, récupérer la longitude et latitude et tout ceci l’enregistrer ds une base. Donc, mon probleme est lors de la validation du formulaire faire appel à l’API pour récupérer ces 2 données(lat,long), et donc savoir si c’est possible!

Spoltix le 8 February 2007 11:35 |

$map->geoGetCoords($adress);

Voila ;)

Fardeen le 8 February 2007 15:32 |

Bonjour
Merci pour ce tuto qui est le plus clair que j’ai trouvé !
J’ai réussi à faire mon beurre avec, et pour creer les lieux, j’ai customisé la ligne pour que ça colle avec ma base de donnée :

[php]
$map->addMarkerByAddress(”.$adresse.’ ‘.$arr.”,”.$nom.”,array(’Description’=>”.$nom.”.$adresse.’ ‘.$arr.’Genre : ‘.$genre.’ ‘.$description.”, ‘Les avis’=>’Ici, afficher les commentaires’));
[/php]

Bon, c’est pas très clair posé comme ça, mais j’espère que vous comprendrez.
Le problème c’est que certains lieu s’affiche très bien, mais il en manque. Pourtant, je suis certain que l’adresse est complète. Donc j’ai pensé à une erreur de htmlentities, d’accent, etc, mais je trouve pas.

Par exemple, si je met l’adresse en dur, ça marche, mais si je passe la même adresse variable, ça ne marche pas. C’est vraiment étrange…

Auriez-vous une idée ?

Merci

Damien le 8 February 2007 22:33 |

Bonjour,
je cherche à recréer la mini fenêtre de zoom située en bas à droite de la carte sur Canadianwinter !! Une piste ???

ptilu le 27 February 2007 09:52 |

Salut Ptilu :

Il suffit de lire le tuto ;)

[php]
//Active la mini map en bas a droite
$map->enableOverviewControl()
[/php]

Fardeen le 27 February 2007 15:15 |

Slt, je viens de tester le script, c’est assez imppressionnant, je suis un newbie en code web alors j’ai un peu de mal mais je voudrai réussir à integrer ce style :

“http://www.ip-adress.com/details.php?c=RlI6ODIuMjM3LjE1Mi42Ojo0OS4wMDAwOjIuMzY2NzpSbEk9OlVHbGpZWEprYVdVPTpVMkZwYm5RdFFuSnBZMlV0YzI5MWN5MUdiM0xxZEE9PQ==”

sur une de mes pages sur mon site, en gros celui qui va sur la page voit sa ville avec un zoom correct dessus, si ils l’ont fait, j’image que c’est possible et ca doit pas être très loin du script ci-dessus, alors si une ame charitable peut me donner le script ou la maniere de procéder, je sais que ca à pas l’air évident mais quand je vois votre niveau je me dit pourquoi pas….

Rootsprod le 11 March 2007 09:23 |

Salut rootsprod :)

Bon alors si t’es un noob ca va pas etre facile facile mais bon on va tenter quand meme :)

Alors le site utilise cette API : http://www.maxmind.com/app/city (payante cette api, il faut probablement en trouver une gratuite, j’en ai deja vu mais je retrouve pas l’adresse)

Pour ton truc le plus simple ce serait d’utiliser la version Javascript de l’API : http://www.maxmind.com/app/javascript_city (tu as un exemple)

Au lieu de faire des document.write il faut utiliser les valeurs pour creer le marqueur.

Sinon tu peux toujours utiliser ca :

http://www.geoiptool.com/fr/webtools/

:)

Fardeen le 11 March 2007 16:53 |

Déja merci pour ta réponse rapide, c’est là qu’on voit la passion et la pédagogie qui va avec, j’essaye tout ça et je posterai le résultat.

Rootsprod le 12 March 2007 13:29 |

Merci pour ce tutoriel, il me sera d’une tres grande aide ;)

Carles Campi le 18 March 2007 14:35 |

Salut, c’est vraiment un super tuto que tu nous propose là. J’adore, c’est très simple et bien expliqué.

Par contre j’ai une question sur la modifications des marqueurs. La solution que tu donnes dans un des commenttaires ne fonctionne pas chez moi. Tous les marqueurs prennent l’apparence du dernier marqueur déclaré.

Par exemple, mon code php est le suivant :

[php]
$map->setMarkerIcon(’http://www.canadianwinter.ca/uploads/icon/marker_cw.png’,'http://www.canadianwinter.ca/uploads/icon/marker_cw_shadow.png’,6,20,10,1);
$map->addMarkerByAddress(’Le mont-dore, france ‘,’Depart’,array(’Informations’=>’Depart de la course le 17 Avril 2007′, ‘Equipes’=>’En cours de construction’, ‘Articles’=>’Liste des articles…’));

$map->setMarkerIcon(’http://www.gmaplive.com/marker_hex.php?n=22&hex=EE4488′,’http://www.gmaplive.com/pin_shadow.png’,6,20,10,1);
$map->addMarkerByAddress(’riom es montagnes, france ‘,’Etape1′,array(’Informations’=>’Etape 1′, ‘Classements’=>’En cours de construction’, ‘Articles’=>’Liste des articles…’));
[/php]

Tous les marqueurs ont la forme du marqueur “http://www.gmaplive.com/marker_hex.php?n=22&hex=EE4488″

As tu une idée du problème ?

Merci encore et bravo pour tous ces tutos
Ben

Benoit le 24 March 2007 12:33 |

Salut,

Je n’ai pas testé personnelement mais apparement comme tu l’a vu ds les commentaires , c’est censé marcher.
Pour ton deuxieme marqueur , as tu essayé avec une image directement ? Car je ne sais pas si Google apprecie les images généré en PHP a la volée.

Essaye avec des vrais images et tiens moi au courant.

Fardeen le 24 March 2007 15:07 |

Salut Fardeen,
Merci de ta réponse. En fait, après avoir posté mon commentaire,je me suis fait la même remarque que toi par rapport à l’image généré à la volée.
J’ai donc essayé avec une image normale hébergé en dur, mais c’est le même résultat: c’est toujours le dernier marqueur déclaré qui s’affiche sur toutre la carte…
Je ne sais pas comment faire, ça fait deux jours que je cherche une solution…
Bon, ben si quelqu’un a une idée… je suis preneur.
Merci a Plus

Benoit le 25 March 2007 23:22 |

Bonjour,

j’ai un petit problème, le navigateur me marque cette erreur:

————————————————————————————————
Notice: Undefined variable: exist_icn in c:\archivos de programa\easyphp\www\web config\googlemap\GoogleMapAPI.class.php on line 907

Notice: Undefined offset: 1 in c:\archivos de programa\easyphp\www\web config\googlemap\GoogleMapAPI.class.php on line 901
————————————————————————————————
et les lignes concernées sont:
————————————————————————————————
if(!empty($this->_icons)) { - 901
$_output .= ‘var icon = [];’ . “\n”;
for($i = 0; $this->_icons[$i]; $i++) {
$info = $this->_icons[$i];

// hash the icon data to see if we’ve already got this one; if so, save some javascript

$icon_key = md5(serialize($info));
if(!is_numeric($exist_icn[$icon_key])) { - 907
$exist_icn[$icon_key] = $i;
$_output .= “icon[$i] = new GIcon();\n”;

————————————————————————————————

et c’est arrivé au moment où j’ai ajouté un “addMarkerIcon”.
J’ai bien essayer de combler les erreurs, mais sans résultat.

Je demande au Forum un petit coup de pouce,

Merci

Carles Campi le 27 March 2007 18:05 |

Ce sont juste des notices, donc pas des veritables “erreurs” .

Soit tu modifies la classe pour regler le pb (en ajoutant des isset) ,soit tu change ton php.ini pour ne plus voir ces erreur , ou le plus simple tu met error_reporting(0) pour ne plus voir ces vilains avertissements.

Fardeen le 27 March 2007 19:04 |

Bonjour,

Merci pour cette rapidité de réponse. Je te felicite Fardeen pour ce Forum complet et efficace ;) 20/20

bye

Carles Campi le 28 March 2007 10:36 |

Salut,
Un grand bravo pour tous c’est tutos, beau boulot.
Je suis un peu à la rue, je veux créer un max URL mais je ne comprens pas la marches à suivre sur ce site -> http://www.econym.demon.co.uk/googlemaps/maxurl.htm
Je me sert de la fenêtre Infosbulles et les textes sont assez grand, du coup même en mettant la bulle très gandes, on est obliger de faire l’ascenseur pour lire le texte.
Avec le maxurl, j’aurai le texte qui masquerai la carte le temps de la lecture avec une meilleure présentation.
Merci de me filer la main je suis un noob !

max le 28 March 2007 14:08 |

@merci carles

@max
sur ce site ou il y a absolument tout ce dont on peut avoir besoin . Pour ton besoin il suffit de cliquer sur le premier exemple et de regarder les sources. c’est toujours assez documente, enfin en general ;)

Il ne peut y avoir qu’une infobulle ouverte a la fois, et voila les commandes pour l’agrandir ou la ramener a sa taille normale :

[js]
map.getInfoWindow().maximize(); //agrandir
map.getInfoWindow().restore(); //taille normale
[/js]

Et sinon voila le code pour integrer directement dans le comportement de l’infobulle

[js]
function createMarker(point,html,infoUrl) {
var marker = new GMarker(point);
//definit comportement au click sur le marquer
GEvent.addListener(marker, “click”, function() {
//1er argument html = contenu infobulle taille normale
//2er argument {maxUrl:infoUrl} = adresse du fichier html a ouvrir quand c maximiser (ex: page.html ou contenu.php?id=9)
marker.openInfoWindowHtml(html, {maxUrl:infoUrl});
});
return marker;
}
[/js]

Bon courage ami noob ;)

Fardeen le 28 March 2007 14:35 |

lol Gros Noob surtout.
Le hic j’intègre ses codes dans quel feuille du site ? je suis sous xoops est dans le modules googlemap, j’ai la feuille de style “googlemaps.css” et “index.php”
Pour modifier l’infos bulle comme tu la dit plus haut je me sert de la feuille de style mais pour intégrer ce script ?(je dpois crérer une nouvelle feuille ?)
désolé.
Merci beaucoup.
mon site AccroVTT.com, il n’y pas encore la google map ouverte au plublic “lol”.

max le 28 March 2007 14:48 |

J’ai ce template en html ->

[js]
// ======== A function to adjust the positioning of the overview ========
function positionOverview(x,y) {
var omap=document.getElementById(”map_overview”);
omap.style.left = x+”px”;
omap.style.top = y+”px”;

// == restyling ==
omap.firstChild.style.border = “1px solid gray”;

omap.firstChild.firstChild.style.left=”6px”;
omap.firstChild.firstChild.style.top=”6px”;
omap.firstChild.firstChild.style.width=”190px”;
omap.firstChild.firstChild.style.height=”190px”;
}

function onLoad() {
if (GBrowserIsCompatible()) {

// this variable will collect the html which will eventually be placed in the sidebar
//var sidebar_html = new Array();

// arrays to hold copies of the markers and html used by the sidebar
// because the function closure trick doesnt work there
var i = 0;
var k = 0;
var l = 0;

// A function to create the marker and set up the event window
function createMarker(point,name,html1,html2,label1,label2,id) {

// creation marker
var marker = new GMarker(point);

// The info window version with the “to here” form open

html2 = “/modules/googlemaps/images/meet.png’”+
“width=’24′ height=’24′> ” +
“” +
“” +
“‘ TYPE=’SUBMIT’>” +
“”;

// The new marker “mouseover” listener
GEvent.addListener(marker,”mouseover”, function() {
marker.openInfoWindowTabsHtml([new GInfoWindowTab(label1,html1), new GInfoWindowTab(label2,html2)]);
});

GEvent.addListener(marker,”click”, function() {
map.closeInfoWindow();
});

// save the info we need to use later for the sidebar
gmarkers[i] = marker;
htmls[i] = html1;
htmld[i] = html2;

i++;
return marker;
}
[/js]

Je pense que c’est la que je dois faire la modif non ? je le fait mais plus de carte à l’écran. Désolé de pourrirt ce tuto, je pense que tu pourra supprimer ce long messa après.
Merci

max le 28 March 2007 15:08 |

Le code me semble suffisament bien documente. Il faut que tu comprennes le code si tu veux esperer pouvoir le modifier.

Je peux te debloquer ou donner un coup de pouce mais je n’ai pas le temps de faire le script pour toi desole .

Ajoute un lien dans le contenu de l infobulle genre
[html]
Agrandir
[/html]

Et ca te permettra de l’agrandir, sinon regarde la doc de openInfoWindowTabsHtml.

Bon courage.

Fardeen le 28 March 2007 15:21 |

Salut,
Merci, mais je ne suis arrivé à rien, je ne fais pas des codes pour le plaisir, je voulai jsute m’en servir pour un site de VTT qui marche pas mal.
Faudrait que j’apprene tout depuis le début !
Merci quand même et bonne continuation !

max le 29 March 2007 12:48 |

Bonjour,
Bravo, pour ce tutorial bien fait.

J’ai fait une petite application ou l’on tape le nom d’une ville ou alors l’on saisit ces coordonnées, et localise cette ville sur la map.

Le problème est le suivant : lorsque je recherche une ville par son nom, certains noms de ville ne fonctionnent pas alors que pour d’autres il n’y a aucun problème. De plus lorsque je recherche cette même ville avec ces coordonnées géographiques, là encore pas de soucis.

Ce que je voulais savoir c’est si le problème pouvait venir de mon code où alors si d’autres personnes aurait rencontré le même genre de soucis et si je peux y remèdier.

Merci.

Alain le 4 April 2007 13:28 |

bon allors pour ton probleme de geolocalisation c est simple :p

si la carte et ou l adresse ne s affiche pas assez simple

il suffit de mieux cible la carte pour mon cas la belgique j ai remplacer

google.maps.com par maps.google.be

et la ca marche nickel :p

gfpl le 27 April 2007 08:26 |

Bon j’attend avec impatience le tuto avec alimention des adresses par un DB.
D’ailleurs j’attends tellement que je l’ai fait, pas le tuto, le lien avec la db mais en java.

En fait ça marche bien en théorie. le java affiche la carte et (devrait) se sert des var créé par un php mysql….si je sépare les 2 actions cela marche bien, requête mysql puis le script java…mais l’un dans l’autre, le java n’attend pas les données du php….du coup j’ai une belle carte, mais pas de marker dessus…..je suis malheureux….

Maitre fardeen……un miracle, un de plus, s’il vous plaît.

Vortex le 10 May 2007 16:03 |

Bonsoir,

Appliquer des points a travers une db je l’ai fait en php (je ne sais pas comment fonctionne le Pearl…), visitez le site, et jugez (www.immoac.com)

J’ai cree un formulaire pour trouver la latitude et la longitude des points, et ensuite pour les afficher, j’ai demandé a travers une requette SQL.
S’il y a plusieurs reponses, a travers un “while” on cherche tous les points, et on les affiche.

j’ignore si c’est la meilleure façon, mais pour mon cas, ca marche. Si vous croyez qu’il y a d’autres façons plus efficaces, faite le moi savoir.

En changeant de sujet, je voulais vous demander, s’il y a la possibilité faire apparaitre un popup a la place de la fenetre, ou a travers un link dans la fenetre (je ne suis pas tres doué en Javascript), toutes les techniques que j’ai essayé n’ont pas fonctionné…

Merci pour tout,

Carles Campi le 15 May 2007 22:40 |

Bonjour,

c’est vraiment agréable de trouver des tutos de cette qualité, encore bravo.

J’affiche la google map en fonction de villes et code postaux de France. Or pour certaine ville, la localisation se retrouve dans un pays autre que la France.
J’ai tenté de changer map.google.com par map.google.fr mais ce la ne règle pas le pb.
J’ai ensuite rajouté le département + la région + “france” dans la localisation mais j’arrive en Australie au lieu de ma ville en France.

Dernier point, si je test en live sur http://maps.google.com ou http://maps.google.fr, Google m’affiche bien la localisation en France…

Peut on forcer les recherches en France uniquement ?
par quel moyen ?

Merci pour votre aide.

Frank le 18 May 2007 14:41 |

Salut,

le format d ‘adresse

c’est par ex : 9 rue de la grande planche, 25410 Saint-Vit, France (ou FR)

L’adresse google.com ou .fr ne change absolument rien.

Le moteur de recherche d’adresse de google map est plus puissant que les fonctions offertes par leur API j’ai l’impression. J’ai codé un truc qui renvoie les adresses les plus proches si celle indiquée n’est pas trouvé.
Un genre de “Essayer avec cette orthographe” de google.

Pour forcer les recherches , ajoute “,france” a la requete de recherche. Ou verifie que les latitudes et longitudes renvoyés correspondent bien a une position francaise.

Bon courage en tout cas :)

Fardeen le 18 May 2007 15:33 |

Dans mon cas concret :
http://www.communes.com/ville-728-sissonne.html

je passe comme argument : “02150 sissonne, France” et il me renvoit en Australie.

Pourtant en direct sur le site maps.google.fr il me positionne correctement, donc il a bien cette info dans la base.
N’y a t’il aucun moyen de lui faire faire une recherche dans un code pays bien précis ?

J’ai lu à un endroit que quelqu’un disait d’utiliser result.Placemark[i].AddressDetails.Country.CountryNameCode ou getLocations() mais je ne vois pas comment l’utiliser.

Merci pour tes lumières ;-)

Frank le 18 May 2007 16:26 |

Bonjour,

Tout d’abord je m’excuse, parceque dans mon ancien post, j’ai mal détaillé le problème, donc pas facile a résoudre.

Je me réexplique, j’ai crée a travers la api de google une sorte de recherche, où chaque point est trouvé a travers une requette sql, ceci correspond a une même recherche qui existe sur le site (mais sans l’Api). Pour garder la coherence du site, il faudrait qu’a travers la fenêtre de google map, je puisse appliquer un link qui s’ouvre en Popup (pour voir le problème, allez dans la cathegorie “Busqueda/Per Mapa”, du menu de ce site http://www.immoac.com)

Je vous écris le code qui crée problème, (c’est normal qu’il y ait conflict, pq les variables php et java Script sont confondues), mais mon niveau ne me permet pas d’aller plus loins
————————————————————————————————–
$map->addMarkerByCoords($data['adr_long'],$data['adr_lat'],”,’ javascript:popUp(”)

Carles Campi le 19 May 2007 10:39 |

Salut, super tuto…

J’aurai 2 petites questions.

Est til possible d’activer une option pour permettre le zoom lors du double click comme google maps le site ?

J’ai activé en mouseover le déclenchement des bulles des marqueurs, mais est t’il possible qu’elle se ferme toute seule dès que on est pas dessus. ?.

Merci

Nicolas le 24 May 2007 07:56 |

Désolé pour le délai de réponses les amigos :)

@franck

Non tu ne pexu pas viser une ville ou un pays (en tout cas moi j’ai pas reussi) . Ou Google mettrait le marqueur pou rparis par ex ? au centre ? Il ne peux le deviner tout seul alors il ne met rien.

Mais personnelement j’ai fais ma propre base de données pr placer le marqueur si on donne juste le nnom d’une province au canada par ex.

Si lorsque la personne entre une adresse, Google me renvoit adresse non trouvee, alors je cherche dans l’adresse le nom d une province et si je trouve alors je recupere les coordonnees du marqueurs ds ma base. Voila pr l’idée en gros, a toi d’adapter a ton probleme ;)

@carles campi : La librairire PHP permet plutot de faire des maps statiques, avec autant traitement en tps reel. Toi tu veux qu’en fonction d’une action d’un user sur la carte , un marqueur soit ajouté. Tu dois utiliser l’api Javascript directement (pleins de tutos ici : http://www.econym.demon.co.uk/googlemaps/ ).

Je suis vrmt desolé de pas avoir davantage de temps pour t’en dire plus mais disons que j’ai un tuto sur le feu depuis plus de 3 mois que je n’ai pas le temps de finaliser qui traite justement davantage de L’API Javascript de GOOGle. (mais j’ai enormement appris du lien que je t’ai donné)

@nicolas
Personnelement j’ai essayé le double click ms ca ne marche pas sur ts les navigateurs. Ca a peut etre changé depuis ? Il faut le faire en javascript :
enableDoubleClickZoom() Enables double click to zoom in and out (disabled by default). (Since 2.58) (http://www.google.com/apis/maps/documentation/reference.html#GMap2 )

Pour ta deuxieme question , au on mouseover sur un marqueur , je ferais un infobulle.clear() . (je ne suis plus sur de la syntaxe exact mais l’idée est la et il te suffit de regarder la doc ;) )

Bon courage :)

Fardeen le 24 May 2007 13:37 |

Salut, …

PROB idem vu plus haut acces base MySql !!!

$map->addMarkerByAddress(”.$adresse.’ ‘.$arr.”,”.$nom.”,array(’Description’=>”.$nom.”.$adresse.’ ‘.$arr.’Genre : ‘.$genre.’ ‘.$description.”, ‘Les avis’=>’Ici, afficher les commentaires’));

Par exemple, si je met l’adresse en dur, ça marche, mais si je passe la même adresse variable, ça ne marche pas.

Auriez-vous une idée ?

Merci pour votre aide.

Cordialement

venezia le 26 May 2007 10:46 |

Je ne vois pas ma réponse précédemment posé, bug ou pas si besoin delete celle ci..

Pour ce qui est du doucle click, nickel jai reussi a en faire une methode sur la class.
si besoin je peux fournir ma modif..

pour le clear bulle, j’ai rien trouvé ..

Sinon j’ai une nouvelle question, j’ai un bug majeur, (sous entendu qui plante la map completement) lorsque je fou du html dans le add marker.
exemple

[code]
$tableau = ‘

‘.$lien_logo.’
‘.$titre.’

‘.$rue.’
‘.$codepostal.’ ’.$ville.’

‘;

$map->addMarkerByAddress($adresse_complete,$titre,$tableau.”.$lien_fiche.’ - ‘.$lien_itineraire);

[/code]

avec l’erreur suivante dans la console javascript..

Erreur : unterminated string literal
Fichier source : http://www2.artisans-commerces.fr/
Ligne : 65, Colonne : 47
Code source :
var marker = createMarker(point,”Aktif Europe”,”

Merci d’avance ;)

Nicolas le 26 May 2007 14:20 |

Euh.. ca a déconné le texte collé O_o .

en fait la variable $tableau ben contient une tableau html et qui passe pas…

Dsl double post..

Nicolas le 26 May 2007 14:23 |

Difficile de t’aider sans debugger directement l’application (je n’ai pas le tps de le faire de toute facon)

Une chose est sure, si ca marche pas, c’est que tu t’es planté quelque part :D Plus serieusement , fais un echo de tes variables que tu passes en parametre pour bien verifier qu’elles sont correctes.

Fardeen le 26 May 2007 17:46 |

Merci pour la réponse, je vais essayer de comprendre a travers le link que tu viens de me passer.

je te re-felicite pour ce super tuto et site ;)

Carles Campi le 27 May 2007 00:03 |

Salut,
Avant tout merci Fardeen pour le tuto (simple, propre et très bien expliqué) ;-)
J’ai un petit souci, j’utilise de l’ajax sur mon site c’est à dire que j’appel une page avec des infos et lorsque je clique sur un lien sur cette page je ne recharge pas la page et j’affiche certaines infos et notamment la maps de google. Malheureusement elle ne s’affiche pas. Aurais-tu une idée s’il te plait. Merci d’avance et à bientôt.

Anouar le 30 May 2007 17:32 |

salut, merci pr la leche , ca fait tjrs plaisir :D

Pr ton pb , il faut bien comprendre que la classe PHP ecrit juste du Javascript. Donc quand tu appelle ta page php qui est censé générer la map, en fait cette page va ecrire du javascript (en plus du HTML bien entendu), mais ce javascript fraichement ecrit, il faut bien pensé a l’executer !
Il est donc bien important d’executer ton code javascript une fois la page chargé.

Pour ce faire il faut mettre le param evalScript a true dans ta fonction Ajax.

Enfin voila c’est une idée mais c’est une erreur qui revient souvent, les gens pensant qu’en loadant des données dans un div avec ajax , celles ci sont interpretées par défaut.

Good luck my friend ;)

Fardeen le 30 May 2007 18:30 |

Merci d’avoir répondu rapidement Farden, ton conseil était le bon. En effet ca fonctionne mieux, par contre je n’ai pas utilisé le param evalScript parce que je n’ai pas trouvé grand chose sur se sujet.
Pour ceux qui rencontreront le problème voilà ce que j’ai fait.
J’ai créé une fonction testMap que j’ai inséré dans le javascript

function testMap(){
if(document.getElementById(’map’))
load();
}

J’appel ensuite cette fonction lorsque j’affiche les données pour permettre à javascript de lancer la map.
setTimeout(”testMap()”,100);

Merci le conseil ;-)

Anouar le 7 June 2007 19:39 |

Re Fardeen,

Comme tu es de bon conseil, j’aimerai avoir ton avis sur un point qui pourrait éventuellement intéresser pas mal de monde dans l’avenir.
Je m’explique j’ai vu un site sympas qui utilise la googlemaps (il s’agit du lien qui se situe à coter de mon prénom). Le site permet de faire une recherche de magasin IKEA par rapport à un point donné et un rayon kilométrique. Exemple rechercher sur Nantes tous les IKEA dans un rayon de 50 km.
Je me demande comment ca peut fonctionner. J’immagine que les coordonnées des magasins ikea sont enregistrés dans une BDD (adresses ou coordonnées GPS). Mais comment faire pour rechercher dans la BDD tous les ikea possible autour de ce fameux rayon de 50 km.
J’espère que je me suis fait comprendre.

A Bientôt.

Anouar le 7 June 2007 20:23 |

@Anouar :

Je pense que tu devrai utiliser

[code]
geoGetDistance($lat1,$lon1,$lat2,$lon2,$unit)
———————————————

This gets the distance between too coorinate points using the great
circle formula. $unit can be M (miles),K (kilometers),N (nautical
miles),I (inches), or F (feet). Default is M.

Example:

$distance = $map->geoGetDistance($lat1,$lon1,$lat2,$lon2,$unit);
[/code]

En ayant chaque “IKEA” en coordonnées, puis tu boucle en testant dans un perimetre choisi, puis tu sort les resultats..

Je n’ai pas testé personnellement, alors c’est peut etre différent, mais je pense que c’est tout de même une piste à suivre.
Bonne chance.

@ Fardeen :
J’ai pu lire que une nouveeauté était présente dans la google map API, les Manager Marker, de ton coté, en a tu déja pris conaissance et serai tu techniquement coment l’intégrer dans cette classe PHP ?

Pour info, cette nouvelle fonction permet de limiter un certain nombre de marqueurs par zoom, ca evite de charger des marqueurs “hors de la carte” que tu a en visuel.

Nicolas le 8 June 2007 10:55 |

Je ne l’ai pas utilisé, mais les dernière appli que j’ai fait en Google map (géolocalisation de balise GPS en temps reel, avec possibilité de tracer les trajets, de verifier qu’une balise ne sort pas d’une zone de sécurité…) , je n’ai pas utilisé la classe PHP.

Juste du javascript et Mootools, ca permet plus de liberté, le PHP n’étant la que pour les petites applis.

Google Map API est en Javascript, il est donc plus logique d’utiliser le JS quand vous avez des besoins très spécifiques.

Le marker manager,pas si nouveau que ca, puisqu’il existait deja avant mais pas de facon officielle ne sert que si tu veux afficher plus de 500 marqueurs à la fois, sinon c’est pas vraiment utile.

Fardeen le 8 June 2007 13:23 |

@anouar : Il faut utiliser la fonction que nicolas t’a donné. Elle est incluse dans la classe GoogleMap PHP.

Fardeen le 8 June 2007 13:25 |

Bonjour,
je pensais pouvoir inclure un badge Flickr dans l’HTML des infobulles, mais l’inclusion d’une balise semble faire planter le javascript généré. Si je ne ferme pas par , l’infobulle ‘éclate’ en une page vierge.
quelqu’un a-t-il réussi à inclure un badge Flickr les infobulles ?
Merci Fardeen pour les tutoriaux…

Jerome.

jerome le 9 June 2007 22:10 |

Merci les gars d’avoir répondu rapidement.

J’ai pas très bien saisie votre solution avec la fonction geoGetDistance($lat1,$lon1,$lat2,$lon2,$unit) si vous pouviez m’en dire un peu plus avec un exemple (Je comprendrai peut etre un peu plus).

Sinon j’ai trouvé une solution de mon coté, je vous la propose.

LATpt - d/111

Anouar le 12 June 2007 16:06 |

Fardeen, je sais pas pourquoi mon texte a été tronqué (j’ai une copie de mon texte si tu veux le modifier, tu m’envoies un petit mail)

J’ai une question :
Je souhaite récupérer les points gps sur une carte par rapport à une adresse.
J’ai actuellement plusieurs adresses et je souhaiterais récupérer les coordonnées gps pour les insérer dans une BDD.
Je souhaite effectuer une boucle pour enregistrer les points dans la BDD

ex :
10 rue corot, bordeaux
25 rue watteau, brest
12 rue jean jaures, nantes
71 rue manon cormier, rennes
etc…

j’effectue ma boucle, et je récupère à chaque fois les points gps que j’enregistre dans ma BDD.

Est-ce possible.

Si c’est le cas pouvez vous me montrer un exemple.

Merci

Anouar le 12 June 2007 16:18 |

J’ai justement fait ceci pour mon appli, perso j’ai fait ça..

[code]
setAPIKey(’ABQIAAAAb32BdEZVm0nu1VPutcjPLBQkl94qcMA9BVKJwN8zuo5Yz5jxexQN6rSKJnidwJKi4Nr–omgBJIhiw’); //offline
}
else {
$map->setAPIKey(’ABQIAAAAU-wvHy5gWR7S4myXGvRI9xRiwKdDvebBxB5JunwuPNiuxD0RJhSESSVKB_qU7fDYWTzxYl9hgCPA0g’); //online
}
$geocode = $map->geoGetCoords($adresse_complete);

$lat = protect_sql($geocode['lat']);
$long = protect_sql($geocode['lon']);

$req = “UPDATE client SET long_client=$long, lat_client=$lat WHERE id_client=”.$ligne['id_client'];
echo $req.”;
send_sql($req,’Update cat metier’);
}
mysql_close($lk);

?>
[/code]

Nicolas le 12 June 2007 17:00 |

Tronquage egalement …
je colle un lien du code que j’avais fait..

http://rafb.net/p/K0SymJ52.html

Nicolas le 12 June 2007 17:02 |

salut

j’ai un souci, j’ai fait un copier coller de ton code. ça, pas de probleme.
seulement quand j’execute la page, et bien, la carte n’apparait pas.

j’ai supprimer tout ce qu’il ne me servait pas, et toujours le meme resultat, j’ai le titre, le tableau, mais pas la carte. que dois je rajouté?

pourrais tu realiser un fichier php (sans js inutile) que l’on puisse telecharger tout simplement.

merci d’avance.

bubu le 13 June 2007 09:33 |

probleme résolu, j’ai telechargé la derniere version de googleApi, et c’est bon!

merci pour ce jolie script

bubu le 13 June 2007 13:16 |

@anouar le code de nico devrait t’aider ;)

Fardeen le 13 June 2007 13:19 |

Merci Nicolas, en effet c’est ce que je recherchais.

Ps : Merci également à Fardeen ;-)

Anouar le 13 June 2007 22:32 |

Bonjour à tous,

encore une question n’un noob en javascript (personne n’est parfait…).
Déjà, un grand merci pour ce tuto !
Je voudrais intégrer à la carte la possibilité de zoomer avec la molette de la souris. J’ai essayé plein de choses, de bricoler dans le javascript de GoogleMapAPI.class.php et dans mon fichier, rien n’y fait.
J’ai tenté ca qui ne marche pas :

GoogleMapAPI.class.php :

/**
* mouse wheel zoom
*
* @var none
*/
var $scroll_wheel_zoom = true;

/**
* enable zoom mouse wheel
*/
function enableScrollWheelZoom() {
$this->scroll_wheel_zoom = true;
}

/**
* disable zoom mouse wheel
*/
function disableScrollWheelZoom() {
$this->scroll_wheel_zoom = false;
}

// Mouse wheel zoom
if($this->scroll_wheel_zoom) {
$_output .= ‘map.enableScrollWheelZoom();’ . “\n”;
}

et dans mon carte.php :

//Active le zoom avec la souris
$map->enableScrollWheelZoom();

Ca doit bien entendu être un truc tout simple, mais bon voilà, j’apprends au fur et à mesure.

Merci

Jerem le 21 June 2007 14:35 |

Ton code me parait correct et l’appel JS aussi (http://www.google.com/apis/maps/documentation/reference.html)

Il faudrait une URL pour checker ce qui deconne.

Et un noob qui sait aller ajouter des methodes ds une classe PHP pour ses besoins, c’est plus un noob. Ne te fais pas plus petit que tu n’es reelement ;) C’est une insulte aux vrais noob, ceux qui seraient pas arrivé a trouver la bonne fonction dans la doc (c’est quoi une doc ? :D )

Good luck my friend.

Fardeen le 21 June 2007 21:09 |

En fait j’ai trouvé en bidouillant.
$map->enableScrollWheelZoom(); etait mal placé dans le fichier…

Du coup cela m’amène à une deuxième question (promis la dernière).

Je voudrais avoir un classement des points que j’ai ajouté, classement que je pourrais faire à la main sans rentrer dans une programmation trop complexe.

Faut-il jouer avec sidebar_id ou map_id ? Si oui comment le paramétrer ? Des lignes de codes à ajouter dans GoogleMapAPI.class.php ? dans mon fichier carte.php ?

L’idée, c’est d’avoir un classement en colonne agrace aux balises et , pour avoir qqch qui à l’écran ressemblerait à :

description 1 description 2 description 3
—— ——— ———
point 1.1 point 2.1 point 3.1
point 1.2 point 2.2 point 3.2
etc…

et ma map google en dessous.

Merci !!

Jerem le 21 June 2007 21:31 |

grace aux balises et .
et le pseudo schéma ressemble juste à rien… j’espère que quelqu’un aura compris.

Merci pour ton message Fardeen, je me debrouille vaguement en php, j’ai copier-coller la logique pour bidouiller le javascript. Mais j’y connais vraiment rien.

Jerem le 21 June 2007 21:36 |

grrrrrr UL et LI / U L et L I … (désolé pour le flood…)

Jerem le 21 June 2007 21:39 |

Clair et concis (très bon tuto).
Question…
J’ai créée une map dans Google Map directement.
Je souhaiterais insérer cette map sur mon site car j’y ai créer des polygones.
Comment puis-je m’y prendre en php ?

Merci d’avance
:-)

Patrick le 26 June 2007 09:42 |

Du coup personne pour ma question ?
Trop galère ou trop simple ?

Jérémie

Jerem le 26 June 2007 16:12 |

Salut, et bien PHP genere du HTML.

Et le code que te fournit Google Map te permet d’integrer directement la map dans ta page HTML.

Alors pour répondre a ta question, que je ne suis pas sur de bien saisir, il suffit de copier coller le code fourni par google dans ta page php…

Fardeen le 26 June 2007 23:20 |

Hello Fardeen,

Tout d’abord merci pour ce super tuto.
Qu’en est-il de la suite ? Interaction avec base de données :)

On l’attend avec tellement d’impatience :)

Benjamin le 28 June 2007 08:39 |

Je viens de tester sur un site perso c’est top !!
Je ne suis pas un pro et je ne parviens pas à modifier le style du menu de droite.
(trop d’espaces si je pouvais remplacer le par un simple )
Par avance merci
Xibe

XIBE le 28 June 2007 13:42 |

tout d’abord, bravo sur ce Tuto très bien fait, j’ai réussi à faire une petite appli bien sympa très rapidemment (affichage d’info venant d’une base mysql, ça marche nickel chrome :
à voir sur : http://2008.goulier.net/index_g.php?page=general_nouvelles.php&menu=menu_general
(c’est un maquette)

J’ai un seul probleme que je n’arrive pas à résoudre, c’est la sidebar. Je n’arrive pas à trouver les points d’entrée pour la travailler (changer le style…)

une petit coup de pouce?? Merci :-)

BrunoG le 19 July 2007 12:31 |

Bonjour,
Je reviens sur le sujet de base: faire un tuto en php sans javascript.
Question peut-être philosophique: quel est l’intérêt d’une solution par rapport à l’autre ?

phicarre le 20 July 2007 17:02 |

@bruno : ouvre le fichier de la classe . La sidebarre est pas vraiment faite pr etre customisé . Sinon utilise les CSS.

@phicarre : Les maps Gooogle se font uniquement en Javascript. Cette classe PHP permet uniquement aux developpeur qui ont la flemme d’apprendre l’API de travailler directement en PHP sans avoir a se taper la doc . Evidemment , travailler directement en JS offrent bien plus de fonctionnalités et une plus grande souplesse.
J’espere avoir été suffisament clair ;)

Fardeen le 21 July 2007 18:47 |

Bonjour,

Ca a l’air tellement facile que j’ose à peine demander de l’aide. J’ai tout bien fait, dans le sens où dans le même rep l’exemple par defaut de google map fonctionne. Par contre, ni ton API ni celle fournie sur phpinsider ne fonctionne: je vois tout le html, mais pas de carte. J’ai testé en ajoutant un écho dans la classe, le lien se fait bien.

Bigre. Il y aurait un soucis de compat sur mon serveur?

gortzen le 25 July 2007 12:25 |

Bonjour,

Merci pour ce superbe tuto qui m a été d un grand secours.
Cependant, je n’arrive absolument pas a afficher des markers avec des icones differentes.
J ai l impression que la classe php qui genere le javascript ne prend en compte que le dernier $map->setMarkerIcon

Qqun a t il reussit ?

Merci a vous

Dimzo le 26 July 2007 23:02 |

Dimzo : C’est normal, la fonction setMarkerIcon est faite pour donner la même icone à tous tes points. Mets un // devant ton $map->setMarkerIcon et utilise la fonction $map->addMarkerIcon avant chaque $map->addMarkerByAddress ou $map->addMarkerByCoords que tu rentres. Tu arriveras comme ça à avoir un marqueur bien défini pour chaque lieu sur ta carte.

Jerem le 29 July 2007 01:30 |

Hello,

un petit souci que je n’ai pas vu évoqué ici et qui n’est pas dans ta page exemple.
Lorsque je crée un point (que ce soit avec l’adresse ou avec les coordonnées long/lat), il est effectivement bien placé quand je suis à fond de zoom. Mais dès que le premier zoom arrière, le point se décalle vers le bas, et de plus en plus à chaque zoom arrière.
Un paramètre à changer dans le fichier GoogleMapAPI.class.php ? (J’utilise la derniere version 2.4 récupérée sur phpinsider)

Merci.

Jerem le 5 August 2007 02:26 |

Salut !

Je suis ennuyé, visiblement tout ce passe bien pour vous tandis que moi visiblement google me refuse l’accès à son service :

“Warning: file_get_contents() [function.file-get-contents]: HTTP request failed! HTTP/1.0 401 Authorization Required in /var/www/geo/GoogleMapAPI.class.php on line 1345″

Donc j’ai refais une clef … mais rien à faire toujours la même chose …
Si vous avez une idée je suis preneur !

@+

thegritch le 6 August 2007 08:07 |

Salut thegritch, je ne sais pas ce qu’est exactement ton pb, mais une chose est sur ca ne vient pas de la cle google. Sinon tu aurais un message approprié.

Le function file_gets_contents ne marche pas sur ts les serveurs. Notamment les serveurs Dreamhost tres a cheval sur la sécurité.

Il faut donc remplacer la fonction avec CURL (rien de bien compliqué, cf ce lien http://wiki.ittoolbox.com/index.php/Switch_from_file_get_contents_to_curl)

Bonne chance ;)

Fardeen le 6 August 2007 22:35 |

c’est inssuportable cette table des matières qui nous suit partout et pas possible de la fermer

eee le 9 August 2007 04:14 |

Bonjour !

je n’arrive tout simplement pas à modifier l’icone avec :
$map->addMarkerIcon(’logo.png’,'logo_ombre.png’,0,0,10,10);

j’obtient :

GoogleMapAPI:createMarkerIcon: Error reading image: logo.png

PS : j’ai mis 0,0,10,10 un peu au hazard !!!

le debutant le 13 August 2007 11:24 |

Essaye de mettre une url absolue , ca devrait marcher. (genre http://monsite.com/images/logo.png)

Fardeen le 13 August 2007 14:29 |

Tout à fait cela fonctionne !

Merci

ledebutant le 14 August 2007 06:16 |

Salut,

Trés beau boulot cette classe php!

Par contre j’ai le même probleme que Benoit : “c’est toujours le dernier marqueur qui s’affiche”.

Si quelqu’un trouve la solution à ce problème prévenez moi vite SVP!

PS : je ne génère pas l’icone en php.

Merci

Fruz le 21 August 2007 22:34 |

PS PS : j’utilise bien un $map->addMarkerIcon avant chaque $map->addMarkerByCoords.

Fruz le 21 August 2007 22:40 |

Salut!
Bon, j’ai finalement trouvé, en plaçant systématiquement $map->addMarkerIcon avant chaque $map->addMarkerByCoords directement dans la boucle corresondant à la requette et non uniquement avant cette boucle.

Maintenant je cherche à obtenir les coordonnées d’un point en cliquant sur la carte, comme geoGetCoords($address) mais avec la latitude et la longitude générée lors du clic, de façon semblable à :

http://www.google.com/apis/maps/documentation/polylineutility.html

si vous pouviez m’éclairer, au moins pour savoir par où débuter, merci.

Fruz le 24 August 2007 08:49 |

Salut,

ca prend environ 5 sec en recherchant dans l’API Google map.

http://www.google.com/apis/maps/documentation/index.html#Click_Handling

Tu trouveras tout ce dont tu auras besoin sur cette page.

:)

Fardeen le 24 August 2007 13:02 |

bonjour,
Je recherche des icones pour remplacer les markers standards. Il y a bien un ou deux sites qui en proposent mais peu de choix.
Je recherche des objets genre voiture, camion, animal, bonhomme, maison, avion, etc.
Des idées ? Peut-on utiliser une icone classique en respectant des criteres ?
Merci pour une reponse et pour ce tuto instructif.

phicarre le 27 August 2007 08:58 |

Bonjour,
ton tutorial est pas mal fait ! Je vais m’y pencher + sérieusement dans qques temps.

Ce qui me pose aujourd’hui un problème c’est justement la fonction target=”_blank” que tu as enlevé (ou pas mis pour d’autres raisons, j’ai vu que GoogleMap refusait la balise Target).
Je suis bien embêté parceque je ne peux utiliser cette carte sans cette fonction automatique _blank. Mon but n’est pas de laisser la possibilité aux internautes de choisir, mais de leur imposer l’action (quel être diabolique je fais !)

Comme j’utilise une iFrame, les liens s’ouvrent dans l’iFrame. C’est aussi simple que ça.

Enfin bref y’a-t-il moyen d’utiliser la balise target avec Google Map API, ou ce n’est pas possible ?

stève le 27 August 2007 09:24 |

@phicarre : Tu trouveras plein de set d’icone la : http://mapki.com/wiki/Icon_Image_Sets ;)
Tu peux egalement les creer de toute piece comme un grand ;)

@oui tu peux utiliser le target _blank . Tu peux egalement changer la classe Google map directement pr l integrer a chaque lien. Tu peux egalement ajouter le target _blank en javascript avec Mootools.

Balancer des liens de vos réas un peu la, qu’on voit le niveau un peu :D

Fardeen le 28 August 2007 14:20 |

Merci.
En fait c’est loin d’être agréable pour moi qui ne suit pas un grand amoureux des lignes de programmations. J’ai envie de me laisse séduire par http://www.mapbuilder.net

Ca à l’avantage d’offrire une interface de création et de faciliter les modifications.

J’ai un autre soucis. A quoi sert la Google Map Key présente dans le code source ? J’ai fais des essais et avec ou sans Google Map Key j’ai le même résultat à l’écran (en passant par mapbuilder).
Pourrais-tu m’en dire plus à propos de cette GMAPKEY ?

stève le 28 August 2007 15:37 |

le GMAPKEY, c’est la clé Google map qui est associé a ton domaine. Si tu test en local, tu verra pas de difference. Quand tu mettra en ligne ca ne marchera plus.

Pour ce qui est de mapbuilder, il n’y a plus d’interet a l’utiliser puisque Google map permet dorenavant de créer ses map directement avec leur appli et de l’embedder sur n’importe quel site.

Voila ;)

Fardeen le 28 August 2007 18:57 |

Merci. Je connaissais deja ce site.
Je n’y ai pas trouve mon bonheur. Donc, comme tu dis, je dois les faire moi-même.

phicarre le 28 August 2007 23:10 |

En fait si je voulais passer par mapbuilder ce n’était pas par choix, mais sous Google MAP je n’arrive pas à faire une fonction target=”_blank”

J’ai lu quelque part qu’il refusait cette balise. En-effet dès que je sauvegarde, cette balise disparaît. Or sous mapbuilder il la garde bien.

Une explication doc’ ? :)

stève le 29 August 2007 07:59 |

Hello,

un léger problème sur ton exemple http://fardeen.biz/wp-content/uploads/tutoriel/GoogleMap/tutoriel_google_map_php.php

si tu affiches la boite de contenu après le clic et que tu fais scoller la carte, la boite de contenu reste affichée et passe au dessus du tableau …

phil le 30 August 2007 09:43 |

D’abord merci pour votre aide, tout marche a merveille ;)
J’ai cependant une ou deux question.
Y’a t il des fonctions prevues dans la classe pour importer des .kml (ici le tracé des departements francais)
J’ai erré un bon moment sur le web et je tatonne toujours … c’est horrible ^^

Merci bcp

Dimzo le 30 August 2007 17:07 |

un complément au problème que j’ai vu. En fait je ne l’ai que sous firefox et j’ai réussi à le faire disparaître en shuntant l’overflow dans #gmapmarker {…

phil le 30 August 2007 19:04 |

Pour commencer tres bon tutorial!!!
Actuellement sur mon site j’affiche un carte + un tableau de resultat avec les elements contenu dans ma carte. Je souhaiterais savoir comment faire pour faire en sorte que des que je clic sur un un element dans le tableau du resultat sa m’ouvre le bon marker.Et comment ouvrir une info bulle par defaut sur une carte avec la lib GoogleMapAPI.

Merci d’avance

kim le 31 August 2007 12:14 |
Fardeen le 31 August 2007 16:26 |

Bonjour,
Peux tu expliquer comment activer le pear ? généralement je travaille sur des hébergements mutualisé chez ovh. Sais tu comment faire ?
Merci pour ton aide.

Philippe.

Philippe le 6 September 2007 19:41 |

Je n’ai jamais utilisé Pear , je ne peux pas vraiment t’aider désolé.

En l’occurence, la classe GoogleMap.php n’utilise le Framework PEAR uniquement pour effectuer une requete et faire la mise en cache. C’est plus rapide de changer la ligne qui fait appel a PEAR dans la classe par un simple mysql_query que de se taper toute l’install et la config de PEAR.

Voila ;)

Fardeen le 6 September 2007 20:16 |

oui tu as raison, je crois que je vais faire cette modif dans la classe.
Mais si cette classe est mise à jour, je perd mes modifs. Je vais faire une classe qui héritera de la classe googleMap.

Merci pour ta réponse.

Philippe.

Philippe le 6 September 2007 20:38 |

Concernant la lib pear il suffit de faire un phpinfo sur le serveur est verfifier si elle figure dans la listing des packages installé sur le serveur (chez ovh elle y est par defaut), sinon telecharger la lib PEAR (http://pear.php.net/package/PEAR) et l’inclure via la méthode set_include_path.

kim le 7 September 2007 08:19 |

Rien à voir avec les échanges même si le tutoriel est bien car très simple et donc acessible au débutant. Juste pour préciser, Fardeen, que IDfr a déménagé 17F, rue Savary. Bon d’accord, c’est à peine à 200m du p’tit dep mais c’est juste pour que tu ne te trompes pas d’adresse si un jour tu passais nous voir, ce qui nous ferais plaisir ;-)

Laurent le 7 September 2007 12:08 |

Bonjour Fardeen,

merci pour ton tuto très intéressant.

J’ai constaté un bug du script prototype window, lorsque tu veux ouvrir une seconde fois ta fenêtre contenant ta map une alerte javascript apparait : “Window interactive_map is already register is the DOM! be sure to use setDestroyOnClose()”

A tu une pour corriger ce bug ?

Merci

Nicolas le 13 September 2007 06:29 |

@nico

Comme indiqué , il suffit d’indiquer a la fenetre prototype setDestroyOnClose.

fenetre.setDestroyOnClose. ;

Voila :)

Fardeen le 13 September 2007 21:36 |

excuses moi peux tu être plus précis et à la limite peux tu le corriger sur ton application ici : http://canadianwinter.ca/index.php?page=your_map afin que je pompe honteusement sur toi ^_^

Nicolas le 14 September 2007 05:43 |

ok il faut juste ajouter destroyOnClose: true :)

Nicolas le 14 September 2007 10:31 |

Bonjour,
j’ai un petit problème avec la map, je voulais l’intégré dans mon site (dans un tableau de 216px/232px) mais mon soussi c’est que le texte : “Données Cartographiques @2007 …” sorte du carré! pas moyen de le faire plus petit!
j’ai trouvé un site qui on réussi, mais je n’arrive pas a faire comme eu! http://www.geoiptool.com/fr/webtools/

si quelqu’un peut m’aider ce serai cool!
merci d’avance

dj-neo le 18 September 2007 12:03 |

Bonjour,

Je commencerai par super travaille ton tutorial, bravo.

Je suis un vrai noob, donc ma question va surement te semblé bête mais bon je me lance.

Je doit faire une cartographie d’entreprise, mais mon problème c’est que les entreprises sont sur un réseau privée donc pas de connexions internet :( .
Sur le réseau privée , il y a un serveur apache, php , mysql sous fedora 7.

Ainsi, j’ai récupéré grâce au logiciel GMDL les cartes de googles map que j’integrerai dans un répertoire map sur le réseau privée (cartes avec les zooms x64 à x1).

Comment je doit faire maintenant pour intégrer mes entreprises afin d’avoir les marqueur et les fiches techniques de mes entreprises?

J’espère avoir été assez dans ma demande.

Merci d’avance
Cordialement Eric

Eric le 7 October 2007 07:54 |

Bonjour,

Comme tous les autres avant moi je te dis bravo pour ce tuto qui m’a vraiment aidé a mettre en relation une map google et une base de donnée. Aujourd’hui j’ai une question dont je n’ai pas vu la réponse dans les commentaires.
Je voudrais pouvoir afficher les infos contenues dans le marker dans une fenetre à droite lorsque je clique soit directement sur le marqueur soit lorsque je clique sur un lien “detail” dans le marker. Il me semble que sur la copie d’écran de ton appli pour canadian winter il y avait un lien “show details” et je ne le retrouve plus dans ton appli…
Merci d’avance si tu as la réponse ou au moins une piste de réflexion…

kiapp le 10 October 2007 07:20 |

Bonjour,
Je teste avec bonheur cette appli depuis quelques semaines: Merci Fardeen pour ce travail mis à notre disposition.
Je viens toutefois de rencontrer un pb..bug peut-être, je ne trouve pas la solution en tout cas.
Alors que l’affichage des marqueurs est bien sur enable…1 marqueur reste hors de la carte, donc n’est pas affiché. Et je n’en trouve pas la cause.
C’est ici:
http://www.collie-online.com/studdog/
Le dernier lien de la liste à droite de la carte, Woodland Collies, a son marqueur hors de la carte (Danemark).
Pour essai, j’en ai mis un autre sur Oslo: la carte s’adapte bien et affiche tous les marqueurs.
Je ne comprends pas bien..pas du tout même. Si quelqu’un a une idée…

Patrick le 2 November 2007 11:57 |

Je viens de regarder rapidement Patrick et je ne vois pas de quoi ca vient… Désolé,

Au pire force le zoom toi meme.

Fardeen le 2 November 2007 18:06 |

Merci Fardeen….solution immédiate mais un peu “bourrin”..j’ai augmenté la hauteur de la carte: 500 px –> 600px
Je regarde plus en détail dès que j’ai le temps.

Patrick le 2 November 2007 22:58 |

Bonjour, j’ai créé une carte google maps avec un remplissage dynamique depuis une base de données, l’ajout des lieux se passe bien mais les marqueurs sont tous identiques (dernier prit en compte) alors qu’ils devraient etre différents, voila le bout de code concerné, voyez vous ou se trouve mon erreur ?

[php]
while($donnees=mysql_fetch_array($carte)){
$map->setMarkerIcon(’http://monsite.free.fr/images/illustration/marqueurs/’.$donnees["icone"],’http://monsite.free.fr/images/illustration/marqueurs/’.$donnees["icone"],6,20,10,1);
$map->addMarkerByAddress($donnees['adresse'],$donnees['adresse'].”.$donnees['texte']);
}
[/php]

Antoine le 3 November 2007 13:37 |

Si tu fais un echo de $donnee[icone] , les url des icones sont correctes ? Parcque ton code me parait correct sinon …

Fardeen le 3 November 2007 14:24 |

oui c’est ce que j’ai essayé en premier, mon echo m’affiche bien le nom de l’image du markeur voulu … :(

Antoine le 3 November 2007 15:44 |

Je n’ai toujours pas réussi quelqu’un aurait t’il une autre idée ?

Merci :)

Antoine le 6 November 2007 23:07 |

Je Desespere la .. c’est le dernier truc qui ne marche pas lol, quelq’un n’aurait pas un source similaire sur lekel ca marche pour que je compare ?

Antoine le 8 November 2007 11:40 |

Est-il possible d’ouvrir une bulle d’un lieu par defaut au chargement de la map pour ne pas a avoir a cliquer dessus ?

Antoine le 9 November 2007 21:43 |

Salut, j”ai un problème avec ce tuto, il y a une erreur :
document.getElementById(”sidebar_map”) has no properties (vue par firefox)

Autre problème, cela ne s’affiche pas sur IE7. D’où cela peut-il bien venir ?

Merci pour votre travail

GGPT le 17 November 2007 21:54 |

Bonjour et merci pour le tuto !

je me demandai si l’on pouvez créer un marqueur uniquement avec le département (sans la ville et sans l’adresse) ?

en bornant la carte à la France …

voila si vous avez une idée merci d’avance
Thankol

Thankol le 19 November 2007 22:09 |

@antoine : un peu tard mais oui tu peux . regarde l’api google map.

@ggpt : je ne sais pas, met une URL en ex et je regarderais

@thankol : oui tu peux, mais tu devra le faire a la main ou trouver la liste de ts les departements avec leurs coordonnées. En considerant qu’on peut symboliser un departement par un marquer … a ta place j’utiliserai des polygones. Tu devrais pouvoir trouver un .kml qui contient tout ca.

Fardeen le 20 November 2007 01:35 |

en fait dans ma base chaque utilisateur renseigne uniquement son département.

Donc j’ai plus qu’a faire une table contenant le nom de la ville chef lieu avec son code postal,

et faire correspondre le département utilisateur avec l’adresse du chef lieu (hors numéro et rue) et je peux ainsi créer mon marqueur à la volée pour situer le département sur la carte.

et sinon utiliser les polygonne et .kml pour une meilleure vision du département, c’est bien ca ?

bon je vais voir tout ca ! merci pour l’info, et si d’autre idées illuminent vos cervaux bien affutés (le mien n’étant pas tres véloce) n’hésitez pas je suis preneur.

Merci pour tout
thankol

Thankol le 20 November 2007 08:01 |

Salut
J’ai un petit probléme avec une adresse d’un trou perdu et je voudrai savoir si google map renvoie quelque chose quand elle ne trouve pas l’adresse pour pouvoir relancer une recherche qu’avec la ville et le code postale ???
Merci d’avance
cdlt

Mr.patate le 6 December 2007 14:02 |

@mr patate : http://econym.googlepages.com/didyoumean.htm , regarde les sources tout y est expliqué . In english of course ;)

Fardeen le 6 December 2007 20:54 |

Bonjour,

Merci pour ce tuto très bien fait. Comment puis-je faire pour faire un zoom sur une adresse dont je connais la longitude, laltitude? Je dois utiliser la fonction openwindowhtml. A vrai dire, je n’arrive pas à l’implémenter. En fait, ma question est comment à partir du code javascript que tu as indiqué sur http://econym.googlepages.com/didyoumean.htm l’intégrer dans la classe.
Je suis plus que novice.
Merci d’avance

vansco le 15 December 2007 14:37 |

oops,
Je voulais écrire openinfowindowhtml.

vansco le 15 December 2007 14:44 |

Bonjour,

merci pour le tuto…

J’ai fait le test avec une base de 250 adresses et le temps de chargement est horriblement long !
Y a t’il une solution pour limiter ce temps de chargement ?

merci
dzigue

dzigue le 19 December 2007 15:46 |

Bonjour, je tente sans succes d’afficher une carte avec une unique adresse mais le zoom est alors top important, je ne sais que faire pour imposer un niveau de zoom moins important
Merci d’avance

XIBE le 27 December 2007 22:43 |

@vansco : Si tu es plus que novice, cela va etre difficile pour moi de t’aider puisque pour faire ce que tu souhaites, va falloir mettre un peu les mains ds le cambouis et si tu n’as pas les bases, ce n’est pas possible. Commence par faire simple, et améliore ensuite. Le didyoumean n’est pas indispensable au début.

@dzigue : si c’est long c’est parcque tu n’a pas activer le cache. Ce qui est long c’est les requetes que tu fais a google pour avoir les adresses en lat-lon . Personnelement , je creer une table avec tous mes MARQUEURS, composé d’un id, nom, description, latitute, longitude, et adresse. Ensuite je parcours tous mes marqueurs en PHP avec un simple SELECT et si les champs lat et long sont vides alors je fais un addMarker by adress et j’en profite pour remplir les champs vides dans ma base de données. Sinon j’affiche directement le marqueurs avec leur coordoonnées et la c’est tres rapide. Au dela de 1000 marqueurs je te conseille de regarder l’API de google map, car il y a d’autre méthode plus poussé pour optimiser tes cartes. (comme les marker manager ou le cryptage des coordonnées)

@XIBE :
enableZoomEncompass()
———————
Met le zoom de facon automatique pour englober ts les marqueurs

setBoundsFudge($val)
——————
ex : $map->setBoundsFudge(0.01); Change la valeur 0.01 pour que le zoom automatique soit plus ou moins eloigné tout en englobant les marqueurs de la carte.

Voila :)

Fardeen le 28 December 2007 11:42 |

Merci mon pote pour ton tuto. Mais je cherche un truc qui donne la posibilité de tracer sur des zone de l’image voir même permetre d’écrir sur l’image. Ensuite les informations relatives à chaques zonz seront envoyés dans une base de données Mysql via PHP bien sur. Merci et je compte sur votre Aide. Mon mail : voilafola@yahoo.fr

Georges le 4 January 2008 09:43 |

Bonjour, merci pour ce tuto formidablement bien réaliser. Je rencontre toutefois un petit problème lors de la création des itinéraires : en effet à la fin de mes coordonnées il ya des paraenthese ajoutées qui font que google ne trouve pas cette adresse ex : 44.832359,-0.562839().
Je cherche depuis plusieurs jours sans succès peut être existe-t-il une solution à mon problème ?
Merci d’avance
Cordialement

jmh le 11 January 2008 22:54 |

Salut,
j’ai utiliser ton tuto qui est il faut le dire… super!
Cependant, je cherche a afficher des lieu a partir d’un tableau.

pour l’instnant j’ai ca:

$tablo[0] = “‘Chambery, France’,'Evenement 1′,’Evenement1′”;
$tablo[1] = “‘Chambery, France’,'Evenement 2′,’Evenement2′”;
$tablo[2] = “‘Paris, France’,'Evenement 3′,’Evenement3′”;
$tablo[3] = “‘Reims, France’,'Evenement 4′,’Evenement4′”;

for($i=0; $iaddMarkerByAddress($tablo[$i]);
}

C’est juste un teste avant de remplir mon tableau dynamiquement…
Mon pb c’est que rien ne s’affihce, ma carte est grise.

Qqun à une idée??
Merci d’avance

diocey le 16 January 2008 17:00 |

Merci pour ce tuto,
J’ai cependant un oetit probleme.
J’ai voulu ajouter le script sur une page deja existante et j’ai cette erreur javascript:

invalid XML attribute value
<div id=

à la ligne 2 qui correspond à

Merci d’avance pour votre aide.

Gwen le 16 January 2008 21:20 |

Bonjour,
Tout d’abord, merci pour le tuto… top!!

Je souhaiterai ajouter des services autour des destinations trouvées (comme école, restaurant). Comment est ce possible.

Sur le site google map, il suffit de faire une recherche a proximité.. mais est ce qu’on peut le faire avec l’api en question

cedulux le 29 January 2008 15:55 |

Avec l’api javascript de Google tu peux le faire facilement. Celle en PHP ne contient pas tout.

Fardeen le 29 January 2008 16:17 |

Merci pour ta réponse ultra rapide.

Puisque ce n’est pas possible avec l’api php. Aurais-tu un tutoriel sur l’api javascript pour que je puisse obtenir le résultat escompté?

Merci d’avance.

cedulux le 29 January 2008 16:34 |

Salut fardeen, bon déjà comme tout le monde bravo et merci pour ton site et tes tutos c’est du bon boulot.

Maintenant une petite question, dans l’API google map vers la ligne 903 on a ce code ci:

for($i = 0; $this->_icons[$i]; $i++) {

Ma question ce porte sur l’argument central du for() qui ne comprend qu’une variable au lieu d’un test logique, s’agit-il d’une erreur ou d’un fonctionnement qui m’était inconnu? le cas échéant pourrais-tu expliquer comment celà est sensé fonctionner car ça cause des affichages d’erreur.

Merci d’avance!

Kyaan

Kyaan le 4 February 2008 09:15 |

Bon j’ai corrigé les erreurs pour qu’il n’y ait pas de notice d’erreur, voilà ce que ça donne:

Ligne 913 à 937:

[php]
for($i = 0; $i _icons); $i )
{
$info = $this->_icons[$i];

// hash the icon data to see if we’ve already got this one; if so, save some javascript
$icon_key = md5(serialize($info));
if( !isset($exist_icn[$icon_key]) || !is_numeric($exist_icn[$icon_key]) )
{
$exist_icn[$icon_key] = $i;
$_output .= “icon[$i] = new GIcon();\n”;
$_output .= sprintf(’icon[%s].image = “%s”;’,$i,$info['image']) . “\n”;
if( isset($info['shadow']) )
{
$_output .= sprintf(’icon[%s].shadow = “%s”;’,$i,$info['shadow']) . “\n”;
$_output .= sprintf(’icon[%s].shadowSize = new GSize(%s,%s);’,$i,$info['shadowWidth'],$info['shadowHeight']) . “\n”;
}
$_output .= sprintf(’icon[%s].iconSize = new GSize(%s,%s);’,$i,$info['iconWidth'],$info['iconHeight']) . “\n”;
$_output .= sprintf(’icon[%s].iconAnchor = new GPoint(%s,%s);’,$i,$info['iconAnchorX'],$info['iconAnchorY']) . “\n”;
$_output .= sprintf(’icon[%s].infoWindowAnchor = new GPoint(%s,%s);’,$i,$info['infoWindowAnchorX'],$info['infoWindowAnchorY']) . “\n”;
}
else
{
$_output .= “icon[$i] = icon[$exist_icn[$icon_key]];\n”;
}
}
[/php]

Kyaan le 4 February 2008 09:33 |

Hmm étrange comme bug il manque un bout de la première ligne du code que j’ai posté, la voici:

for($i = 0; $i _icons); $i++)

Kyaan le 4 February 2008 11:29 |

fardeen ya un bug dans le système qui gère tes commentaires, pour une raison qui m’échappe il retire un bout du code à chaque fois… normalement il y a un count() dans le 2e argument du for.

Kyaan le 4 February 2008 11:56 |

Super tuto ! Il va bien me servir pour mon site de braderies.

Merci.

PS : Par contre, le menu qui suit est un peu emmerdant !!

THEO le 4 February 2008 21:10 |

Hi fardeen ! Avant tout, je ne peux m’empêcher de te féliciter pour MTL12, de la balle ! À challenger pour le top10 des meilleurs sites Flash de l’année, j’espère que tu t’y es inscrit, sinon cours vite !!!

Autrement, j’ai découvert il y a peu ton site et des tuto extraordinaires qui sont à partager c’est clair, j’ai visité plusieurs sites de cracks en API google et honnêtement ce n’est pas tout d’être un dév d’enfer, encore faut-il avoir la passion et la qualité d”expliquer sa science, mission réussie !
Je travaille actuellement sur un projet web avec une carte de France et des points de ventes et j’ai une question concernant la création des marqueurs en PHP : est-il possible d’y intégrer le fameux [ onClick="javascript: pageTracker._trackPageview('/downloads/brochure2008'); " ] de Google Analytics dans un href de la bulle ?

J’ai essayé de plusieurs façon de placer le string mais soit c’est un bad string, soit ça passe mais c’est comme si le tracking n’était pas déclaré… mystère…

As-tu déjà eu cette question ou bien le cas ?

Patrice le 6 February 2008 00:16 |

@theo : le menu est draggable, suffit de le degaget a la main mais j’avoue que je devrais faire kke chose :)

@patrice : merci , pour ton besoin , l’api PHP devrait suffit, fais juste bien attention avec les ” et ‘ dans tes expressions . Et vérifie bien que les différents fichiers javascript n’interfere pas entre eux (surtout au onLoad). Installe firebug et verifie si l’appel a ta fonction javascript est bien fait. Fais un eval et lance la commande a la main ds firebug pour voir si urchin est bien chargé.

Enfin je le repete encore, mais l’API PHP n’est qu’une surcouche par dessus celle Javascript. Pour des demandes avancés, je conseillerai toujours de travailler directement en Javascript, c’est bien plus simple.

Bon courage.

Fardeen le 6 February 2008 14:03 |

Bonjour, j’utilise ce tuto Google map. J’ai une requete qui me renvoit des villes et je calcul la distance entre une ville par defaut et chaque ville de la requete. J’affiche ensutie selon une distance minimum la marqueur de la ville. Le problème est que j’ai l’impression que les requetes Google Map marchent pas a tous les coups et que les résultats sont jamais les même ( un rafraichissement le prouve )
Qu’est ce que je peux faire???

http://www.planete-tennis.fr/code/recherche
teste avec 50km et ville SENS
———————————————–
[php]
echo ” Recherche des tournois a “.$rech_distance.” km de “.$rech_ville.”";

$geocode = $map->getGeocode($rech_ville);
/* echo “Coordonnées de “.$rech_ville.”";
echo $geocode['lat'];echo “”;
echo $geocode['lon'];echo “”;echo “”;

*/

$map->addMarkerByAddress($rech_ville,$rech_ville,$rech_ville);

$sql1=’SELECT (PTTournoi.idT) as id, (PTClub.ville) as villetournoi, (PTClub.cp) as cptournoi,(PTTournoi.dateDeb) as debut,(PTTournoi.dateFin) as fin, (PTTournoi.nomeng) as engnom, (PTTournoi.adresse) as engadresse, (PTTournoi.cp) as engcp, (PTTournoi.ville) as engville, (PTTournoi.tel1) as engtel1, (PTTournoi.tel2) as engtel2, (PTTournoi.mail) as engmail,(PTClub.adresse) as insadresse, (PTClub.cp) as inscp, (PTClub.ville) as insville, (PTTournoi.renscompl) as rens FROM PTClub,PTTournoi WHERE PTClub.email=PTTournoi.mailClub ‘;

$result1 = null;

$result1 = $dbh->query($sql1);

$datatour = null;

$buf.=’Liste des tournois de tennis ‘;

while($datatour = $result1->fetch())

{
$buf.=”;

$geocode1 = $map->getGeocode($datatour['villetournoi']);
/*echo “Coordonnées de “.$datatour['villetournoi'].”";
echo $geocode1['lat'];echo “”;
echo $geocode1['lon'];echo “”;echo “”;*/
$distance2 = $map->geoGetDistance($geocode['lat'],$geocode['lon'],$geocode1['lat'],$geocode1['lon'],’K');
echo $distance2.”;echo $datatour['villetournoi'].’ ‘;
if ($distance2< $rech_distance){
$buf.="Tournoi de ".$datatour['villetournoi']." : ";

$buf.= round($distance2,1);
$buf.= " km ";

$sql3='SELECT * FROM PTEpreuve WHERE idTournoi="'.$datatour['id'].'"';

$result3 = null;

$result3 = $dbh->query($sql3);

$data3 = null;
$bufE=”";

$testnature=’false’;
$testcategorie=’false’;
$testclst=’false’;

if($rech_nature==’Toutes’) $testnature=’true’;
if($rech_categorie==’Toutes’) $testcategorie=’true’;
if($rech_clst==’Tous’) $testclst=’true’;

while($data3 = $result3->fetch())

{
if($data3['nature']==$rech_nature) $testnature=’true’;
if($data3['categorie']==$rech_categorie) $testcategorie=’true’;
$bufE.=$data3['nature'];
$bufE.=’ ‘;
$bufE.=$data3['categorie'];
$bufE.=’ ‘;
$bufE.=$data3['clstmin'];
$bufE.=’ ‘;
$bufE.=$data3['clstmax'];
$bufE.=”;
}

if($testnature==’true’ && $testcategorie==’true’){
//insertion du marqueur avec les infosbulles
echo $datatour['villetournoi'].’ ‘;
$map->addMarkerByAddress($datatour['villetournoi'],$datatour['villetournoi'].’ ‘.round($distance2,1).’ km’,array(’Dates ‘=>’du ‘.$datatour['debut'].’ au ‘.$datatour['fin'].”.$bufE,’Engagement’=>$datatour['engnom'].’ ‘.$datatour['engadresse'].”.$datatour['engcp'].’ ‘.$datatour['engville'].’ ‘.$datatour['engtel1'].’ ‘.$datatour['engtel2'].’ ‘.$datatour['engmail'],’Installations’=>$datatour['insadresse'].”.$datatour['inscp'].’ ‘.$datatour['insville'],’ ‘=>$datatour['renscompl']));
}

}
}
[/php]

Cyril le 13 February 2008 17:28 |

@cyril : désolé pas le temps de regarder ca en détail.

Fardeen le 14 February 2008 12:11 |

Hello tout le monde !
Je trouve le nouvel affichage en relief de Gmap très intéressant, est-ce que qqn sait-il comment utiliser celle-ci avec la class Gmap API ??? J’ai essayé “relief” ou “3d” mais niet….

Patrice le 18 February 2008 00:04 |

Bonjour à tous et merci à Fardeen pour le tuto mais aussi pour toutes les réponses qu’il a données et qui aident des fois tout autant que le tuto de base.

Pour ma part, j’affiche une carte en allant interroger des adresses (CP-Ville) dans ma BDD. Cela fonctionne mais à moitié je dirais.
En fait, certaines adresses apparaisssent et d’autres manquent, et en faisant actualiser, d’autres adresses sont marquées et d’autres qui étaient marquées n’apparaissent plus. Cela semble être complètement aléatoire mais en tout cas, je n’arrive jamais à afficher correctement les marqueurs de toutes mes adresses en même temps.

Une idée ?

Merci !

Jérôme le 20 February 2008 15:33 |

Salut !

Tout d’abord bravo pour le tut’, très pratique :p

J’aimerais savoir s’il est possible d’initialiser la map sur une localisation précise avec un zoom précis. La classe nxgooglemapsapi propose ses fonctions, et elle est beaucoup moins développée que celle-ci, mais là, je ne trouve pas =/

Merci pour votre aide @+

Castor le 21 February 2008 15:09 |

Salut !

Tout d’abord bravo pour le tut’ ^^ J’aimerais savoir s’il est possible que lors de son affichage, la carte soit centrée sur un lieu précis avec un zoom précis. J’ai un peu cherché et j’ai rien trouvé =/

Merci pour votre aide =)

Castor le 21 February 2008 15:13 |

C’est bon j’avais trouvé en fait. C’est mon navigateur qui voulait pas appliquer les changements =/

Encore merci pour ce tuto ;)

++

Castor le 23 February 2008 17:12 |

Est-ce que l’un d’entre vous a eu des soucis de “stack overflow” et de carte qui s’affiche pas (seulement les marqueurs) sous IE (versions 6,7) ?
CEci m’est arrivé depuis que j’ai transféré de domaine… et le pire c’est que sur l’ancien ça marche très bien, sur le nouveau avec le même code ça fait le problème, j’ai pourtant vérifié tous mes [osties] de liens… ah Internet Explor….

Merci pour votre aide !

Patrice le 2 March 2008 21:04 |

Si ça peut sauver des cheveux et surtout du temps, j’ai pu trouvé d’où venait mon stack overflow, tout simplement à cause d’une règle de style CSS :

img {
behavior:url(../images/pngbehavior.htc);
}

Du coup, j’ai créé un fichier exluant cette règle pour la page avec le Gmap et le tour est joué !

Patrice le 3 March 2008 20:29 |

Voila j’utilise l’ap i google map et tout amrchait bien sauf depuis 4heures ou la carte ne s’affiche plus. Je ne comprend pas pourquoi. Le problème vient surment de chez Google car rien n’a était touchait.Google n’execute pas les requete sgeocode apparament vu mes tests? Est ce que c’est courant? est ce que cela peut etre autre chose ? Cest assez urgent c pour un projet etudiant donc si quelque’un peut me répondre très vite car il s’agit qd même de l’outils principal de mon projet MERCI D AVANCE CYRIL

URGENT URGENT

Cyril le 4 March 2008 22:42 |

Même probleme … j’attend une reponse.

Campi le 5 March 2008 15:51 |

je veux afficher mes données de mysql sur google map mais en testant avec le web local de easy-php the map ne saffiche pas. je c pas comment je dois faire.

si vous voulez voir le code je vais vous lenvoyer.
Merci.

islem le 8 March 2008 13:32 |

j’ai oubliée de vous dire que je travaille avec API google map mais vrment jsuis blockée. comment je peux afficher les données sur la map et comment je vais tester le resultat.
j’attends une reponse svp. Merciiiiiiiiiiiiiiiiiiiiiiii

islem le 8 March 2008 13:49 |

je sais pas pourquoi toujours il ma’apparait des erreurs au niveau de declaration de point dans echo.

<?php

$link = mysql_connect(”localhost”,”root”,”") or die(”Erreur de connexion: ” .mysql.error());
mysql_select_db(”suivmap”,$link);
$reqt=”select * from vehicule”;
$result=mysql_query($reqt,$link);
if(! $result)
{ echo “no result”;
}

while($lign = mysql_fetch_array($result)

{
echo ” var point = new GLatLng(” . $lign[latitude] . “,” . $lign[longtitude] . “);\n”;
echo ” \n ” ;
echo ” var marker = createMarker( point, ‘ “.addslashes($lign[description].” ‘);\n”;
echo ” \n “;
echo ” map.addOverlay(marker);\n”;
echo ” \n “;
echo “”;

} */

mysql_close($link);

?>

islem le 12 March 2008 17:00 |

svp c urgent

islem le 12 March 2008 17:01 |

@islem : il ne fauit pas faire de echo dans ton while.

a la place ds ton while
[php]
$lon = $lign[latitude];
etc pr les autre variable…

$map->addMarkerByCoords($lon,$lat,$title = ”,$html = ”)
[/php]

Fardeen le 12 March 2008 21:04 |

Merciiiiiiiiiiiiiiii bien Fardeen
cava ça marche.
Merci encore une fois.

islem le 16 March 2008 10:40 |

Bonjour,
j’ai besoin de votre aide svp Fardeen.
je veux ceer un polygone dans la carte mais en selectionnant son limite avec la souris cad en clickant avec la souris les point sont choisis.

Merci d’avance.

islem le 16 March 2008 10:46 |

@islem : J’aimerai avoir le temps de t’aider plus en détails mais malheureusement je ne l’ai pas. Par contre tu trouveras ton bonheur là, c’est en anglais mais j’y ai toujours tout trouvé.
http://econym.googlepages.com/index.htm
Bon courage.

Fardeen le 16 March 2008 14:19 |

Merci bien Fardeen c très gentil de votre part je vais visiter le site que vous m’avez envoyé donner.

islem le 16 March 2008 19:11 |

Bonjour,
desolé si je vous derange tjr mais j’ai un autre probleme.
dans la page .html il ya pas aucun probleme avec le code javascript ci dessous mais je veux changer la page en .php alors error se peoduit au niveau de ce ligne mais je ne sais pas pourquoi.
Merci d’avance pour tout Fardeen.

[js]
var header = “\n ”
“\n”
“Your name of documentYour description\n”
“\n” lineWeight “\n”
kmlFillColor “\n\n”;
[/js]

islem le 17 March 2008 13:51 |

@islem : dsl mais je n’ai pas le temps de faire du debuggage perso pour tout le monde. Surtout avec si peu d’information. Bon courage pour la suite.

Fardeen le 17 March 2008 17:56 |

bravo pour le tuto…

est ce que cé facile de faire maps avec php5 ou avec javascript(ajax)?????

happy le 17 March 2008 22:37 |

salut je sais pas comment le dire mais j’ai une probleme au niveau de deplacement des donnee selectionnee d’une liste deroulante charger a partir de base de donnee sur le map.tu peux m’aider j’espere ,merci j’attend une reponse.

sonia le 18 March 2008 14:05 |

Bonsoir, je suis novice en php et avec l’API Google Maps et j’essaie de récupérer le code du google map à travers une adresse donnée.
Mon objectif est de saisir une adresse lors l’inscription au site, je récupère ce champs et je recupère le code “…” du l’adresse respective et le sauvgarder dans une base.
J’ai déja ajouter la classe et j’ai crée la table “GEOCODES” et ensuite j’ai ajouter les lignes suivants pour récupérer le code.
//————————————————————
// Google Map
//————————————————————
$map = new GoogleMapAPI(’map’,'tutoriel_map’);
$map->setDSN(’mysql://USER:PASS@localhost/GEOCODES’);
$map->setAPIKey(’ABQIAAAAUqhDZ075PwNV7TiFaemY_xQAg__z2cD3CrLCASZ5EL2HIG6SvxQwTtSllZuFAEguftVxkhV_rbAacQ’);
$map->setHeight(”350″);
$map->setWidth(”425″);
$map->setMapType(’map’); // default
$map->disableDirections();
$map->enableZoomEncompass();
$map->enableOverviewControl();
$map_boutique=$map->addMarkerByAddress($_POST['TR_adresse_de_la_boutique'],$_POST['TR_nom_de_la_boutique'],’‘.$_POST['TR_nom_de_la_boutique'].’‘);

et j’obtient un erreur “GoogleMapAPI::require_once(DB.php) [function.GoogleMapAPI-require-once]: failed to open stream”
Où puis-je trouver cette page.
Pourriez-vous éclairer ma lanterne merci.

Happymido le 19 March 2008 16:01 |

@happy mido : cette erreur provient du fait que pour utiliser setDSN, il faut installer PEAR qui est un framework PHP.
Perso ,je te conseille plutôt d’utiliser la méthode d’islem (cf commentaire précedent).

Fardeen le 19 March 2008 21:04 |

Est-ce que cela fonctionne off-line?

JC le 27 March 2008 01:26 |

@JC : non, il faut bien recevoir les cartes de Google.

Fardeen le 27 March 2008 03:51 |

Salut,
j’ai besoin d’aide une autre fois :)
je veux afficher le trajet entre deux point dans la map
MERCIIIIIIIIIIIIIII
j’attends votre reponse et merci.

islem le 31 March 2008 17:45 |

Bonjour,

J’ai le même problème que deux utilisateurs dont Antoine, impossible de modifier les marqueurs alors que l’adresse source de déstination (une URL) est correcte.

J’ai une adresse ou j’ai mon setmarkericon devant puis une boucle qui me liste deux ou tros adresse et je remet un setmarkericon devant ou dans la boucle rien n’y fait.

Quelqu’un a-til déjà réussi à mettre deux marker diffrénts ?
Quelqu’un peut-il m’aider ?

Merci d’avance !

Damien le 1 April 2008 15:03 |

C’est bon j’ai mis cela pour les nouveaux marqueurs : $map->addMarkerIcon

Et cela fonctionne…

Damien le 2 April 2008 07:13 |

bonjour,
c excellent ce tuto,
je veus savoir comment afficher plusieur icone de different forme. par exemple
une type d’icone pr les ville et un autre pr les station..
merci d’avance
bravo pr ce tuto

Ayman le 12 April 2008 07:02 |

Bonjour,

Est-ce que quelqu’un pourrait m’envoyer les fichiers de mootools car au niveau du site quand je veux télécharger, il me met tout dans un fichier texte donc pas très pratique.

Au niveau des fonctions

printHeaderJS();
printMapJS();

j’ai du ajouter $map-> devant pour ne plus avoir de problème.

Je n’arrive pas afficher ma carte. J’ai un fond gris au lieu d’avoir la map avec le curseur.

Merci d’avance de votre aide

Benjamin le 22 May 2008 07:22 |

Bonjour,

Tout d’abord merci pour tout ce travail.
Je suis novice en php et j’ai un problème pour l’affichage de la carte.
Après avoir enregistré dans un dossier le fichier GoogleMapAPI.class.php puis tutoriel_google_map.php - comprenant les 2 morceaux de codes comme indiqué dans le tuto -, j’ai un résultat d’erreur qui est le suivant : “Fatal error: Call to undefined function printHeaderJS() in …”. Les fonctions printMap() et printSidebar() ne sont pas trouvées.
Après avoir ajouté la variable $map-> devant les fonctions, il n’y a comme résultat qu’un cadre vide.
Aurais tu une idée de l’origine de l’erreur ?
Merci beaucoup pour ton aide.

GoftheWood le 30 May 2008 13:48 |

Bonjour,

Lors de mon test, si tu a un fond gris, j’ai compris par la suite que c’est parce que l’adresse n’avait pas été trouvé. Essais avec une autre adresse ou au niveau de google map rentre ton adresse pour voir si il la trouve.
Voili voilou

Benjamin le 2 June 2008 07:12 |

Bonjour,

J’utilise cette classe (agréable) depuis quelques temps et ne parviens pas à détecter “certaines” adresses postales de type :
“Centre Commercial BIDULE saint malo 35400″

Il faut à priori préciser l’adresse très exacte du Centre commercial (numéro de rue etc…) car le centre commercial BIDULE n’est pas “reconnu” (biensur je parle ici d’un magasin connu que je laisse sous l’anonymat de BIDULE ^^).

Or, cette même recherche dans google Maps est positive. Je ne dispose et ne disposerai pas des geocodes (latitude longitude) car ce sont des données qui me sont fournies par un client.

Existe-t-il des moyens pour optimiser les recherches ? Les étendre ?

Merci beaucoup

zeojex le 3 June 2008 09:40 |

@zeogex : Je suis quasiment sur que les recherches sur Google sont plus puissantes que celle offerte par l’API. Enfin de mes tests personnels, j’étais arrivé à cette conclusion.

A mon avis c’est la stratégie de Google afin d’inciter les gens à s’inscrire directement sur Google Map plutot que sur d’autre mashup.

Fardeen le 3 June 2008 22:19 |

Je partage ton avis, d’après mes derniers tests j’en arrive à la même conclusion peu importe les serveurs de géolocalisation (.fr, .com …) testés ou filtres utilisés.

Dommage, il va falloir travailler les adresses postales.

a+

zeojex le 4 June 2008 08:07 |

Super tuto, merci!

Par contre ya un truc ou deux que je comprends pas, excusez de mon ignorance mais, dans la partie du code html, les script JS appelés: il viennent d’ou??

Je n’arrive pas a afficher la map, j’ai une erreur:

“Call to undefined function printHeaderJS()”

quelqu’un pourrait m’éclairer??

Merci

Ygalr22 le 5 June 2008 12:41 |

Bonjour à tous,

merci pour ce tuto que j’avais déjà utilisé pour l’un de mes précédents site.

Malheureusement je tombe également sur une carte grise :(

Quelqu’un à til eu ce problème et saurait-il proposer une soluce ?
(pas moyen de trouver d’ou peut venir le bug :()

Merci d’avance Manu

infirmier le 27 June 2008 10:13 |

Désolé pour le bruit après quelques heures et plusieurs tests, le problème venait de mon adresse …

(j’ai mis les coordonnées que j’utilise sur mes autres sites et la carte s’affichait bien :()

infirmier le 27 June 2008 15:21 |

Bonjour à tous,

Après avoir effectuer les modifications mentionnées par GoftheWood, j’obtiens un cadre vide (fond blanc).

Avez vous une solution?

Par avance merci,

Malia.

Malia le 30 June 2008 03:30 |

Salut tout le monde !

J’ai découvert cet excellent tutoriel récemment, mais je rencontre un problème. Je récupère mes adresses dans une base de données afin de les afficher sur la carte. Seulement, à chaque rafraichissement de pages, ce ne sont pas les même points qui sont affichés. Sur 20, il en apparait de 5 à 15, et ce ne sont jamais les mêmes.

Auriez-vous une idée afin de m’aider à progresser ?

Merci Beaucoup pour vos réponses.

Stif

Stif le 8 July 2008 19:30 |

Hello !
Le temps passe, mais les bits restent … Du coup, je me rend bien compte que j’arrive un peu 2 ans après ton tuto (au passage, merci pour ton boulot :) ), et forcement, comme tout le monde, si je poste, c’est que j’ai un problème :(

Alors, est ce que c’est ma version de FF qui est trop récente, ou le code qui s’est abimé avec l’âge? je ne sais pas, toujours est-il qu’on dirait que je suis le seul à voir qu’il manque “<?” dans certaines lignes, dont:
printMap(); //on affiche la map ?>

Mais même en corrigeant deux trois fautes de frappes, j’ai une belle page blanche.
Alors évidement je ne demande pas qu’on me résolve le problème, mais j’aimerai savoir si faire du copier/coller bête et méchant, comme écrit dans le tuto, suffit, ou s’il me manque des choses?

C’est comme:
Je ne comprend pas cet appel au fichier slimbox.css, puisqu’il n’est pas indiqué dans le tuto^^

Je suis noob comme ça se voit, so, excuse ma barbarie, et si tu avais une lanterne à me prêter, je t’en serais gré :)

PS, “j’adore c’que vous faites! “

Grune le 19 November 2008 16:07 |

comment fais ton pour modifier les image de google map?
s’il vous plais

gosti le 29 November 2008 14:34 |

Bonjour

charolais le 18 January 2009 12:52 |

Merci pour l’info! Et très drôle de voir notre premier tutoriel sur le Web «featuring» Tourisme Mauricie. Je viens d’en prendre connaissance aujourd’hui.

Gabriel de Tourisme Mauricie
http://twitter.com/mauricie

Gabriel de Tourisme Mauricie le 16 March 2009 13:14 |

Bonjour, je débute sur les API googlemap et suis bloqué.
En fait je cherche à placer sur une carte des marqueurs récupérés dans une base mysql.
Certains ont seulement une adresse donc ‘geocoder.getLatLng’, pas de souci. Mais d’autres point ont en plus des coordonnées (lat, lng).
Pour un souci de rapidité, je souhaiterais qu’il se base sur (lat, lng) pour ceux qui en ont et (adresse) pour ceux qui n’en n’ont pas. J’espère que c’est pas trop confu. Voici mon code et merci de votre aide.

[code='js']
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById(”map”));
geocoder = new GClientGeocoder();

function createMarkersEtbl(i) {
var coordonees = etbl[i][4];
if (coordonees) {
var point = new GLatLng(coordonees);
alert(point);
var marker=(new GMarker(point));
batchEtbl.push(marker);
var infoTabs = [
new GInfoWindowTab("Adresse", (''+etbl[i][3]+”+etbl[i][1]+’<? echo “” ?>’+etbl[i][1]+”)),
];
GEvent.addListener(marker, “mouseover”, function() {
marker.openInfoWindowTabsHtml(infoTabs);
});
GEvent.addListener(marker, “click”, function() {
window.location.href = etbl[i][2];
});
if (i+1<etbl.length) {
createMarkersEtbl(i+1);
} else {
mgr.addMarkers(batchEtbl, 5);
mgr.refresh();
}
} else {
if (geocoder) {
geocoder.getLatLng(etbl[i][0], function(point) {
if (point) {
var marker=new GMarker(point);
batchEtbl.push(marker);
var infoTabs = [
new GInfoWindowTab("Adresse", (''+etbl[i][3]+”+etbl[i][1]+’<? echo “
” ?>’+etbl[i][1]+”)),
];
GEvent.addListener(marker, “mouseover”, function() {
marker.openInfoWindowTabsHtml(infoTabs);
});
GEvent.addListener(marker, “click”, function() {
window.location.href = etbl[i][2];
});
}
if (i+1<etbl.length) {
createMarkersEtbl(i+1);
} else {
mgr.addMarkers(batchEtbl, 5);
mgr.refresh();
}
});
}
}
}

map.setCenter(new GLatLng(48.9, 2.3), 5);
map.addControl(new GMapTypeControl());
map.addControl(new GSmallMapControl());
map.enableScrollWheelZoom();
map.addControl(new GOverviewMapControl());
map.addControl(new GScaleControl());
centrecarte(address);
createMarkersEtbl(0);//lancement de la fonction permettant de créer les markers des pays
mgr = new GMarkerManager(map);//on créer un marker manager//création d’un manager de marker
}
}
[/code]

gus_air le 20 March 2009 09:43 |

Vraiment bien comme tuto!!

Ça m’intéresse vraiment car je cherche un moyen pour récupérer les coordonnées longitude/latitude via un simple formulaire d’adresse, que celles-ci soient enregistrées dans la base, puis récupérées sur la map.

En somme:

Utilisateur: POST “23, rue du Pingouin, 75020, Paris”=> GET “longitude/latitude” => MySQL

Carte: elle fait juste que récupérer les infos et les afficher…

Je sens que ça va être un casse tête (mes connaissance sont niveau Site du Zero en PHP….) car je ne vois pas via un formulaire comment récupérer les coordonnées en tapant simplement l’adresse… (je ne vais pas demander la latitude et la longitude à celui qui utilise le formulaire…. quand même…)

Bref, je vais continuer mes recherche.

En tout cas merci beaucoup, ton tuto m’a beaucoup éclairé

Bonne continuation

Friendly Froggy le 1 April 2009 11:16 |

Bonjour, merci pour ce tuto mais je n’y arrive pas.
Lep roblème : Pear.

DOnc j’aimerais m’en passer, tu dis qu’il faut remplacer ça par mysql_querry mais à quel endroit dans les fonctions car je ovis pas ce que je peux toucher.

Nono le 9 April 2009 09:31 |

Hi there,

sympa le tuto, merci !
Qq remarques :
+ Dans le code il manque les balises ouvrantes “printMap()
+ Enfin, il faut rajouter la ligne

En tout cas c’est ce que j’ai dû faire pour que ça marche chez moi (IE + FF).

Encore merci.

Guilhem le 14 April 2009 11:41 |

Bonjour à tous
Je vais commencer par dire que c’est un excellent tuto et donc merci beaucoup,
cependant je rencontre un petit soucis au niveau du stokage des points geocodés,
Je m’explique: Je developpe un site(www.mavillechezmoi.com) permettant de localiser les commerces d’une ville pour ensuite les visiter à 360°,les commerces sont geocodés grace à leurs adresses et ensuite affichés sur la map, seulement le nombre de markers affichés devient aléatoire passé une dizaine d’adresses, dans ce tuto j’ai vu que l’on pouvait stocker sur une table mysql et en utilisant PEAR les coordonnées des adresses aillant deja fait l’objet d’une geolocalisation.
Problème, aprés 2 jours de recherche sur google je ne trouve pas de tutoriel expliquant la marche a suivre pour utiliser cette fonction.
Si quelqu un avait une piste…..
merci

Yoann le 2 May 2009 05:00 |

Bonjour a tous, après avoir studieusement lu le tuto, je rencontre un problème, ma carte s’affiche toute blanche quelqu’un a déjà t’il eut ce cas et avez vous réussi a la résoudre ?

Merci a tous

ant0inep le 12 May 2009 07:22 |

bonjour Mr

j’ai un petit probleme au niveau du code de google map

il m’affcihe cette erreur

Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in /home/immorevu/public_html/IMMONEW/map/GoogleMapAPI.class.php on line 55

_____
et quand je verifie la ligne je trouve ou sa tombe sur sa

PEAR::DB DSN for geocode caching. example:
$dsn = ‘mysql://immo:905807@localhost/imap’;

@var string

Merci de bein m’aidez

david le 3 June 2009 07:00 |

Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in /home/immorevu/public_html/IMMONEW/map/GoogleMapAPI.class.php on line 1241

c qoui sa????????

amine le 3 June 2009 08:28 |

super chiante la table des matières qui arrive toujours au-dessus

pir le 4 June 2009 01:32 |

Laisser un commentaire