{"id":583,"date":"2012-10-14T17:55:05","date_gmt":"2012-10-14T17:55:05","guid":{"rendered":"http:\/\/simonertel.net\/blog\/?p=583"},"modified":"2026-04-25T20:12:18","modified_gmt":"2026-04-25T20:12:18","slug":"initiation-a-google-map-api-v3","status":"publish","type":"post","link":"https:\/\/simonertel.net\/blog\/initiation-a-google-map-api-v3\/","title":{"rendered":"Initiation \u00e0 Google Map API V3"},"content":{"rendered":"<p>Vous aussi, vous avez probablement eu envie de tripoter l&rsquo;API de Google pour faire des cartes personnalis\u00e9es !<br \/>\nEn tout cas, c&rsquo;est ce qui m&rsquo;arrive r\u00e9guli\u00e8rement. C&rsquo;est suite \u00e0 ce p\u00e9nible constat de devoir toujours refaire les m\u00eames recherches que je vais ici d\u00e9crire les techniques de base pour se plonger dans l&rsquo;API, avec l&rsquo;exemple d&rsquo;une petite application qui permet d&rsquo;obtenir facilement la longitude et la latitude d&rsquo;un marker qu&rsquo;on peut drag&rsquo;n&rsquo;dropper sur une carte Google. Exemple <a href=\"http:\/\/simonertel.net\/Outils\/googleMap\" title=\"exemple dans un nouvel onglet de l'application google map\" target=\"_blank\">ici<\/a>.<\/p>\n<p>Les pr\u00e9-requis :<br \/>\n&#8211; Connaissance (au moins superficielles) du JavaScript. On n&rsquo;utilisera pas de biblioth\u00e8que type jquery dans cet exemple, car inutile.<br \/>\n&#8211; Connaissance HTLM et du CSS en g\u00e9n\u00e9ral.<br \/>\n&#8211; Un compte Google.<\/p>\n<h2>Obtention de la cl\u00e9<\/h2>\n<p>Pour commencer, il va vous falloir obtenir une <strong>cl\u00e9<\/strong> qui permettra \u00e0 Google de savoir qui appellera les scripts pour d\u00e9ployer son application, et&#8230; vous faire payer au-del\u00e0 d&rsquo;un certain quota (25 000 requ\u00eates \/ jours). Pour ce faire, rendez-vous sur cette <a title=\"Cl\u00e9 de l'API\" href=\"https:\/\/code.google.com\/apis\/console\/\" target=\"_blank\">page<\/a>.<\/p>\n<p><!--more--><\/p>\n<p>Pour retrouver toutes les explications, vous pouvez consulter la <a title=\"Commencer avec Google Map API\" href=\"https:\/\/developers.google.com\/maps\/documentation\/javascript\/tutorial\" target=\"_blank\">page de doc officielle en anglais<\/a>.<\/p>\n<div id=\"attachment_588\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-588\" class=\"size-full wp-image-588\" title=\"google Map V3\" src=\"http:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/googleMapV3.png\" alt=\"D\u00e9marche pour obtenir la cl\u00e9 google map API v3\" width=\"640\" height=\"1169\" srcset=\"https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/googleMapV3.png 640w, https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/googleMapV3-164x300.png 164w, https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/googleMapV3-560x1024.png 560w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><p id=\"caption-attachment-588\" class=\"wp-caption-text\">D\u00e9marche pour obtenir la cl\u00e9 google map API v3<\/p><\/div>\n<p>En <span style=\"color: #ff0000;\"><strong>1<\/strong><\/span> : Cliquez sur \u00ab\u00a0Service\u00a0\u00bb. Si vous n&rsquo;avez jamais utilis\u00e9 aucune API de Google auparavant, celui-ci vous demandera de cr\u00e9er un projet (en 0).<br \/>\nEn <strong><span style=\"color: #ff0000;\">2 <span style=\"color: #000000;\">:<\/span><\/span><\/strong> Cherchez parmi le choix des API celle qui nous int\u00e9resse, \u00e0 savoir Google MAP V3, et activez-la en d\u00e9bloquant le loquet associ\u00e9. Notez en passant la limitation de la gratuit\u00e9 \u00e0 25000 requ\u00eates par jour.<br \/>\nEn <span style=\"color: #ff0000;\"><strong>3<\/strong><\/span> : Cliquez enfin sur \u00ab\u00a0API access\u00a0\u00bb qui vous permettra d&rsquo;obtenir la <strong>cl\u00e9 (<span style=\"color: #ff0000;\">4<\/span>)<\/strong> qui va vous \u00eatre utile pour l&rsquo;appel du script.<\/p>\n<h2>Appel des scripts chez Google !<\/h2>\n<p>Sur la page HTML, il est venu le moment d&rsquo;appeler les javascripts n\u00e9cessaires.<br \/>\nOn appelle respectivement le script de l&rsquo;API GG map, et en deux le script sur lequel nous allons \u00e9crire notre script, que vous avez pr\u00e9alablement cr\u00e9\u00e9 (ici \u00ab\u00a0monscript.js\u00a0\u00bb).<\/p>\n<pre>\r\n&lt;!-- Google map --!&gt;\r\n&lt;script type=\"text\/javascript\" src=\"http:\/\/maps.googleapis.com\/maps\/api\/js?key=<strong>AIzaSydghfoprhopegnpFGFDGOegfdxdfg654Gus<\/strong>&<strong>sensor<\/strong>=<strong>false<\/strong>\"&gt;&lt;\/script&gt;\r\n<br \/><br \/>\r\n&lt;!-- votre script --!&gt;\r\n&lt;script type=\"text\/javascript\" src=\"dossier\/monscript.js\"&gt;&lt;\/script&gt;\r\n<\/pre>\n<p>Notez que pour l&rsquo;API, vous devez passer en param\u00e8tre la fameuse <strong>cl\u00e9<\/strong> pr\u00e9c\u00e9demment r\u00e9cup\u00e9r\u00e9e, et qu&rsquo;il y a en plus un second param\u00e8tre obligatoire, \u00ab\u00a0sensor\u00a0\u00bb. Celui-ci indique si notre script compte utiliser la g\u00e9olocalisation ou pas. \u00c9tant donn\u00e9 qu&rsquo;ici ce n&rsquo;est pas le sujet, nous le mettons \u00e0 false.<\/p>\n<h2>Et apr\u00e8s ?<\/h2>\n<p>C&rsquo;est bien beau, mais qu&rsquo;est-ce qui prouve que cela fonctionne ? Tr\u00e8s bonne question. Nous allons donc d&rsquo;abord afficher une carte, pour voir s&rsquo;il n&rsquo;y a pas d&rsquo;erreur d\u00e9j\u00e0.<br \/>\nPour ce faire, cr\u00e9er un noeud DOM quelconque avec un identifiant (attribut ID) dans votre page :<\/p>\n<pre>\r\n&lt;body&gt;\r\n&lt;div id=\"magooglemap\"&gt;\r\n\r\n&lt;\/div&gt;\r\n&lt;\/body&gt;\r\n<\/pre>\n<p>Ensuite, styler au minimum ce div, afin de lui donner une surface d&rsquo;affichage. Disons, 600 pixels de large par 400 pixels de haut, par exemple. Dans une feuille de style \u00e0 part ou directement dans la page, l\u00e0 n&rsquo;est pas le sujet de l&rsquo;article.<\/p>\n<pre>\r\n#magooglemap{width:600px;height:400px;}\r\n<\/pre>\n<p>Enfin, en JavaScript, posons les jalons de l&rsquo;affichage de la carte. Allez sur votre fichier javascript \u00ab\u00a0monscript.js\u00a0\u00bb, puis cr\u00e9ez d&rsquo;abord la fonction qui permet d&rsquo;initialiser la carte :<\/p>\n<pre>\r\nfunction initialisation(){\r\n        coordonnees = new google.maps.LatLng(0,0);\r\n\r\tvar optionsCarte = {\r\n\t\tzoom: 5,\r\n\t\tcenter: coordonnees,\r\n\t\tmapTypeId: google.maps.MapTypeId.ROADMAP\r\n\t};\r\n\t\r\n\tmaCarte = new google.maps.Map(document.getElementById(\"magooglemap\"), optionsCarte);\r\n}\r\n<\/pre>\n<p>Cette fonction cr\u00e9e un objet MAP (&lsquo;new google.maps.Map&rsquo;) auquel on passe en param\u00e8tre respectivement le noeud DOM qu&rsquo;on a cr\u00e9\u00e9, identifi\u00e9 par son ID (magooglemap), ainsi qu&rsquo;un <a target=\"_blank\" title=\"doc officielle pour les variables d'initialisation\" href=\"https:\/\/developers.google.com\/maps\/documentation\/javascript\/tutorial?hl=fr#MapOptions\">objet de variables<\/a> n\u00e9cessaires pour l&rsquo;initialisation de la carte, contenant son niveau de zoom, par rapport \u00e0 quelles coordonn\u00e9es (tr\u00e8s important, cr\u00e9er une variable contenant l&rsquo;objet des coordonn\u00e9es). Ici, dans l&rsquo;exemple, elle est nomm\u00e9e \u00ab\u00a0coordonnees\u00a0\u00bb. Elle est centr\u00e9e (new google.maps.LatLng(0,0)), et son mode de rendu est ici \u00ab\u00a0ROADMAP\u00a0\u00bb.<\/p>\n<ul>\n<li>\nLe <strong>zoom<\/strong> est une valeur comprise entre 0 et 18 (<a href=\"https:\/\/developers.google.com\/maps\/documentation\/javascript\/maxzoom?hl=en\" title=\"documentation officielle en anglais\" lang=\"en\" target=\"_blank\">doc<\/a>). Plus il est proche de 0, plus la vision est \u00e9loign\u00e9e.\n<\/li>\n<li>\n<strong>Center<\/strong> accepte comme param\u00e8tre un objet LatLng qui doit recevoir comme param\u00e8tre une valeur num\u00e9rique repr\u00e9sentant la latitude et la longitude. Dans notre exemple, nous avons mis 0 et 0, ce qui devrait centrer la carte au niveau de l&rsquo;\u00e9quateur pour la latitude, et au m\u00e9ridien de Greenwich pour la longitude.\n<\/li>\n<li>\nPour le type de MAP (<strong>mapTypeId<\/strong>), Google nous propose diff\u00e9rents types de repr\u00e9sentations, \u00e0 savoir :<\/p>\n<ul>\n<li>ROADMAP : La vision 2D classique par d\u00e9faut, que tout le monde conna\u00eet en g\u00e9n\u00e9ral.<\/li>\n<li>SATELLITE : La vision photographie satellite, avec diff\u00e9rents niveaux de r\u00e9solution en fonction des pays.<\/li>\n<li>HYBRID : M\u00e9lange entre vues photographiques et superposition des principales infrastructures.<\/li>\n<li>TERRAIN : Se concentre sur le relief et les noms des formations g\u00e9ologiques et naturelles en g\u00e9n\u00e9ral.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<p>Et l\u00e0, vous essayez d&rsquo;afficher votre page, mais \u00e7a ne fonctionne pas&#8230;<br \/>\nNormal, car il faut que vous appeliez votre fonction ! Appelez-la lors du chargement du corps de votre page. Dans votre fichier javascript, ajouter la ligne suivante :<\/p>\n<pre>window.onload = initialisation;<\/pre>\n<p>And \u00ab\u00a0Voil\u00e0\u00a0\u00bb. Vous devriez avoir ceci s&rsquo;afficher :<\/p>\n<div id=\"attachment_602\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/initialisationGGMAP.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-602\" src=\"http:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/initialisationGGMAP.png\" alt=\"exemple basique d&#039;initialisation de google map\" title=\"exemple d&#039;initialisation de google map\" width=\"640\" height=\"418\" class=\"size-full wp-image-602\" srcset=\"https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/initialisationGGMAP.png 640w, https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/initialisationGGMAP-300x195.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><p id=\"caption-attachment-602\" class=\"wp-caption-text\">exemple basique d&rsquo;initialisation de google map<\/p><\/div>\n<h2>Un petit marqueur maintenant !<\/h2>\n<p>Mais ce n&rsquo;est pas fini ! Maintenant, il faut cr\u00e9er le petit marqueur qui permet \u00e0 l&rsquo;utilisateur de bien d\u00e9terminer o\u00f9 est-ce qu&rsquo;on se situe ! \u00c9tant donn\u00e9 qu&rsquo;il s&rsquo;agit d&rsquo;un marqueur qu&rsquo;on peut directement mettre lors de l&rsquo;initialisation de la carte, nous pouvons directement int\u00e9grer le code de cr\u00e9ation de ce marqueur dans la fonction initialisation. Ce qui donne :<\/p>\n<pre><span style=\"color:#555;\">\r\nfunction initialisation(){\r\n\torigin = new google.maps.LatLng(0,0);\r\n\r\n\tvar optionsCarte = {\r\n\t\tzoom: 5,\r\n\t\tcenter: origin,\r\n\t\tmapTypeId: google.maps.MapTypeId.ROADMAP\r\n\t};\r\n\t\r\n\tmaCarte = new google.maps.Map(document.getElementById(\"map\"), optionsCarte);\r\n<\/span><strong>\r\n\tmarker = new google.maps.Marker({\r\n\t\tmap:maCarte,\r\n\t\tposition: origin\r\n\t});\r\n        <\/strong><span style=\"color:#555;\">\r\n\t\r\n}<\/span>\r\n<\/pre>\n<p>On constate qu&rsquo;on passe deux param\u00e8tres indispensables (en sachant n\u00e9anmoins que le param\u00e8tre \u00ab\u00a0map\u00a0\u00bb n&rsquo;est pas obligatoire sous cette forme, mais bien plus pratique n\u00e9anmoins. Voir la <a href=\"https:\/\/developers.google.com\/maps\/documentation\/javascript\/overlays?hl=en#Markers\" target=\"_blank\" title=\"documentation a propos des markers google map\">doc<\/a> \u00e0 ce sujet.)<\/p>\n<ul>\n<li>\nle param\u00e8tre <strong>map<\/strong> lie le marqueur \u00e0 une page. Il doit donc recevoir en param\u00e8tre l&rsquo;objet pr\u00e9alablement d\u00e9fini de la carte. Ici, \u00ab\u00a0maCarte\u00a0\u00bb.\n<\/li>\n<li>\nLe param\u00e8tre <strong>position<\/strong> permet, comme son nom l&rsquo;indique, de placer g\u00e9ographiquement ce point sur la carte, avec l&rsquo;aide d&rsquo;un objet LatLng. Dans l&rsquo;exemple, nous reprenons celui qui nous a servi \u00e0 centrer la carte, ce qui fait que le marqueur va automatiquement se retrouver au centre de la carte que nous avons cr\u00e9\u00e9e.\n<\/li>\n<\/ul>\n<p>Nous voici donc avec ceci :<br \/>\n<div id=\"attachment_606\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-606\" src=\"http:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/initialisationGGMAPmarker.png\" alt=\"Capture d&#039;\u00e9cran d&#039;une carte Google map avec marker\" title=\"Carte Google map avec marker\" width=\"640\" height=\"413\" class=\"size-full wp-image-606\" srcset=\"https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/initialisationGGMAPmarker.png 640w, https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/initialisationGGMAPmarker-300x193.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><p id=\"caption-attachment-606\" class=\"wp-caption-text\">Carte Google map avec marker<\/p><\/div><\/p>\n<h2>Rendre le marqueur d\u00e9pla\u00e7able.<\/h2>\n<p>C&rsquo;est bien beau tout \u00e7a, mais le marqueur est on ne peut plus fixe, non ? Oui, et vous avez bien raison ! Pour le rendre d\u00e9pla\u00e7able, il faut lui ajouter l&rsquo;\u00e9v\u00e9nement \u00ab\u00a0drag\u00a0\u00bb. Pour ce faire, ajouter-le dans la liste de ses variables :<\/p>\n<pre><span style=\"color:#555;\">\r\n\tmarker = new google.maps.Marker({\r\n\t\tmap:maCarte,<\/span>\r\n\t\t<strong>draggable:true,<\/strong><span style=\"color:#555;\">\r\n\t\tposition: origin\r\n\t});<\/span>\r\n<\/pre>\n<p>And Voil\u00e0 !<\/p>\n<h2>Appeler une fonction lors du mouvement du marqueur<\/h2>\n<p>Maintenant, il va falloir trouver comment \u00ab\u00a0capter\u00a0\u00bb l&rsquo;\u00e9v\u00e9nement \u00ab\u00a0drag and drop\u00a0\u00bb, et lui associer une action ! Pour ce faire, on dispose de la m\u00e9thode <a href=\"https:\/\/developers.google.com\/maps\/documentation\/javascript\/events?hl=en#EventListeners\" target=\"_blank\" lang=\"en\" title=\"addListener\">\u00ab\u00a0addListener\u00a0\u00bb<\/a>. Et avant d&rsquo;aller plus loin, cr\u00e9ons d\u00e9j\u00e0 la fonction qui sera associ\u00e9e \u00e0 cet \u00e9v\u00e9nement. Imaginons donc une fonction \u00ab\u00a0afficherUneInfoBulle\u00a0\u00bb.<\/p>\n<pre>\r\nfunction afficherUneInfobulle(){\r\n\tvar infowindow = new google.maps.InfoWindow({\r\n\t\tcontent: \"&lt;strong&gt;hop !&lt;\/strong&gt;\"\r\n\t});\r\n\tinfowindow.open(maCarte,marker);\r\n}\r\n<\/pre>\n<p>Que fait cette fonction ? Elle instancie une classe <a title=\"classe infowindow pour google map\" href=\"https:\/\/developers.google.com\/maps\/documentation\/javascript\/reference?hl=en#InfoWindow\" target=\"_blank\" lang=\"en\">\u00ab\u00a0InfoWindow\u00a0\u00bb<\/a>, prenant en param\u00e8tre le param\u00e8tre \u00ab\u00a0content\u00a0\u00bb qui comprend une cha\u00eene de caract\u00e8res. Ici, \u00ab\u00a0&lt;strong&gt;hop !&lt;\/strong&gt;\u00a0\u00bb.<\/p>\n<p>Il ne vous reste plus qu&rsquo;\u00e0 attacher cette action \u00ab\u00a0afficherUneInfobulle\u00a0\u00bb \u00e0 l&rsquo;\u00e9v\u00e9nement \u00ab\u00a0drag and drop\u00a0\u00bb.<br \/>\nPour ce faire, ajouter dans la fonction initialisation :<\/p>\n<pre><span style=\"color:#555;\">\r\nfunction initialisation(){\r\n\torigin = new google.maps.LatLng(0,0);\r\n\r\n\tvar optionsCarte = {\r\n\t\tzoom: 5,\r\n\t\tcenter: origin,\r\n\t\tmapTypeId: google.maps.MapTypeId.ROADMAP\r\n\t};\r\n\r\n\tmaCarte = new google.maps.Map(document.getElementById(\"map\"), optionsCarte);\r\n\t\r\n\tmarker = new google.maps.Marker({\r\n\t\tmap:maCarte,\r\n\t\tdraggable:true,\r\n\t\tposition: origin\r\n\t});\r\n<\/span><strong>        google.maps.event.addListener(marker,'dragend',afficherUneInfobulle);<\/strong><span style=\"color:#555;\">\r\n}<\/span><\/pre>\n<p>Maintenant, lorsque vous d\u00e9placez le marqueur, cela fait appara\u00eetre une infobulle contenant un \u00ab\u00a0hop\u00a0\u00bb en gras !<\/p>\n<p>Attention, bon \u00e0 savoir <\/p>\n<h2>Derni\u00e8re \u00e9tape<\/h2>\n<p>Maintenant, il ne s&rsquo;agit plus que d&rsquo;afficher les coordonn\u00e9es du marqueur, lors du l\u00e2cher du drag and drop, \u00e0 la place de la cha\u00eene \u00ab\u00a0hop !\u00a0\u00bb.<br \/>\nTout se joue donc dans la fonction \u00ab\u00a0afficherUneInfobulle\u00a0\u00bb.<br \/>\nPour r\u00e9cup\u00e9rer les coordonn\u00e9es du marqueur, en bidouillant un peu avec l&rsquo;aide de la fonction magique \u00ab\u00a0console.log\u00a0\u00bb, on d\u00e9couvre rapidement que l&rsquo;objet \u00ab\u00a0marker\u00a0\u00bb contient de nombreuses propri\u00e9t\u00e9s et objets, donc la propri\u00e9t\u00e9 \u00ab\u00a0position\u00a0\u00bb, qui, elle-m\u00eame, contient les propri\u00e9t\u00e9s Latitude et Longtitude, sous la d\u00e9nomination $a. Attention, ces valeurs changent constamment, ne facilitant pas notre boulot, je vous conseille donc d&rsquo;appliquer un script qui r\u00e9cup\u00e8re dynamiquement ces valeurs, comme j&rsquo;ai pu le faire dans l&rsquo;exemple mis sur <a href=\"https:\/\/github.com\/korvus08\/localisateur\/blob\/master\/map.js\" target=\"_blank\">le d\u00e9p\u00f4t github<\/a> !!!!<\/p>\n<div id=\"attachment_617\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-617\" src=\"http:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/consoleLog.png\" alt=\"Console log sur l&#039;objet marker de google map v3\" title=\"Console log sur l&#039;objet marker de google map v3\" width=\"640\" height=\"247\" class=\"size-full wp-image-617\" srcset=\"https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/consoleLog.png 640w, https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/consoleLog-300x115.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><p id=\"caption-attachment-617\" class=\"wp-caption-text\">Console log sur l&rsquo;objet marker de google map v3<\/p><\/div>\n<p>Ainsi, il suffit de r\u00e9cup\u00e9rer leurs propri\u00e9t\u00e9s et de remplacer dans la cha\u00eene de l&rsquo;infobulle pour les afficher. Ce qui donne, avec un peu de pommade :<\/p>\n<pre><span style=\"color:#555;\">\r\nfunction afficherUneInfobulle(){\r\n\r\n\/* Fonction qui r\u00e9cup\u00e9re les coordonn\u00e9es X et Y en parcourant l'objet google map *\/\r\n<\/span>\r\n<strong>\r\n   var inc = 0;\r\n   for(var coords in marker.position){\r\n         inc++;\r\n         if(inc==1){\r\n              var posX = marker.position[coords];\r\n         }else if(inc==2){\r\n              var posY = marker.position[coords];\r\n         }else if(inc>2){\r\n              break;\r\n         }\r\n    }\r\n<\/strong>\r\n\t<strong>var aAfficher = \"Latitude : \"+posX+'&lt;br \/&gt;Longtitude : '+posY+\"&lt;br \/&gt;new google.maps.LatLng(\"+marker.position.Za+\",\"+marker.position.Ya+\");\";<\/strong><span style=\"color:#555;\">\r\n\r\n\tvar infowindow = new google.maps.InfoWindow({\r\n\t\tcontent: <\/span><strong>aAfficher<\/strong><span style=\"color:#555;\">\r\n\t});\r\n\r\n\tinfowindow.open(maCarte,marker);\r\n}\r\n<\/span><\/pre>\n<p>Et l\u00e0, normalement, lors d&rsquo;un drag and drop :<br \/>\n<div id=\"attachment_620\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-620\" src=\"http:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/ggmapFinal.png\" alt=\"rendu final\" title=\"rendu final\" width=\"640\" height=\"421\" class=\"size-full wp-image-620\" srcset=\"https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/ggmapFinal.png 640w, https:\/\/simonertel.net\/blog\/wp-content\/uploads\/2012\/10\/ggmapFinal-300x197.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><p id=\"caption-attachment-620\" class=\"wp-caption-text\">rendu final<\/p><\/div><\/p>\n<p>Pour rappel, la d\u00e9mo compl\u00e8te, c&rsquo;est <a href=\"http:\/\/simonertel.net\/Outils\/googleMap\" target=\"_blank\" title=\"d\u00e9monstration exemplaire de google map\">ici<\/a>.<br \/>\nEt pour t\u00e9l\u00e9charger l&rsquo;exemple complet, c&rsquo;est <a href=\"https:\/\/github.com\/korvus\/localisateur\" target=\"_blank\" title=\"github\">ici<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vous aussi, vous avez probablement eu envie de tripoter l&rsquo;API de Google pour faire des cartes personnalis\u00e9es ! En tout cas, c&rsquo;est ce qui m&rsquo;arrive r\u00e9guli\u00e8rement. C&rsquo;est suite \u00e0 ce p\u00e9nible constat de devoir toujours refaire les m\u00eames recherches que je vais ici d\u00e9crire les techniques de base pour se plonger dans l&rsquo;API, avec l&rsquo;exemple [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-583","post","type-post","status-publish","format-standard","hentry","category-boulot"],"_links":{"self":[{"href":"https:\/\/simonertel.net\/blog\/wp-json\/wp\/v2\/posts\/583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simonertel.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simonertel.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simonertel.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/simonertel.net\/blog\/wp-json\/wp\/v2\/comments?post=583"}],"version-history":[{"count":52,"href":"https:\/\/simonertel.net\/blog\/wp-json\/wp\/v2\/posts\/583\/revisions"}],"predecessor-version":[{"id":1003,"href":"https:\/\/simonertel.net\/blog\/wp-json\/wp\/v2\/posts\/583\/revisions\/1003"}],"wp:attachment":[{"href":"https:\/\/simonertel.net\/blog\/wp-json\/wp\/v2\/media?parent=583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simonertel.net\/blog\/wp-json\/wp\/v2\/categories?post=583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simonertel.net\/blog\/wp-json\/wp\/v2\/tags?post=583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}