Vous pouvez ajouter une carte Google sur une page Web avec du code HTML, CSS et JavaScript.
Cette page explique comment ajouter une carte sur une page Web de deux façons : en utilisant l'élément HTML personnalisé gmp-map
et en utilisant un élément div
.
- Ajouter une carte en utilisant un élément
gmp-map
- Ajouter une carte en utilisant un élément
div
et JavaScript
Présentation
Pour charger une carte, votre page Web doit réaliser les actions suivantes :
- Charger l'API Maps JavaScript avec un chargeur d'amorçage. C'est là que votre clé API est transmise et peut être ajoutée aux fichiers source HTML ou JavaScript.
- Ajouter la carte sur la page HTML ainsi que les styles CSS requis.
- Charger la bibliothèque
maps
et initialiser la carte.
Ajouter une carte en utilisant un élément gmp-map
L'élément gmp-map
est un élément HTML personnalisé créé à l'aide de composants Web.
Pour ajouter une carte sur une page Web avec un élément gmp-map
, procédez comme suit :
Sur la page HTML, ajoutez un élément
script
contenant l'amorçage configuré avec votre clé API et les autres options éventuelles. Dans l'exemple d'amorçage suivant, le paramètrecallback
a été omis, car il n'est pas nécessaire.<script async src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=map,marker">
Sur la page HTML, ajoutez un élément
gmp-map
. Spécifiez les coordonnées de latitude et de longitude pourcenter
, et une valeur de zoom pourzoom
. Dans cet exemple, l'attribut de styleheight
est également spécifié.<gmp-map center="37.4220656,-122.0840897" zoom="10" map-id="DEMO_MAP_ID" style="height: 400px" ></gmp-map>
Exemple de code complet
<html> <head> <title>Add a Map using HTML</title> <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script> <link rel="stylesheet" type="text/css" href="./style.css" /> <script type="module" src="./index.js"></script> </head> <body> <gmp-map center="37.4220656,-122.0840897" zoom="10" map-id="DEMO_MAP_ID" style="height: 400px" ></gmp-map> <!-- The `defer` attribute causes the callback to execute after the full HTML document has been parsed. For non-blocking uses, avoiding race conditions, and consistent behavior across browsers, consider loading using Promises. See https://developers.google.com/maps/documentation/javascript/load-maps-js-api for more information. --> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=beta" defer ></script> </body> </html>
Ajouter une carte en utilisant un élément div
et JavaScript
L'élément div
est encore accepté pour charger des cartes. Pour ajouter une carte sur une page Web avec un élément div
, procédez comme suit :
Sur la page HTML, ajoutez un élément
script
contenant le chargeur d'amorçage configuré avec votre clé API et les autres options éventuelles. Vous pouvez également ajouter directement le code du chargeur d'amorçage dans un fichier TypeScript ou JavaScript, en retirant les balisesscript
.<script> (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({ key: "YOUR_API_KEY", v: "weekly", // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.). // Add other bootstrap parameters as needed, using camel case. }); </script>
Sur la page HTML, ajoutez un élément
div
qui contiendra la carte.<div id="map"></div>
Dans le CSS, définissez la hauteur de la carte sur 100 %.
#map { height: 100%; }
Dans le fichier JavaScript, créez une fonction pour charger la bibliothèque
maps
et initialiser la carte. Spécifiez les coordonnées de latitude et de longitude pourcenter
, et le niveau de zoom à utiliser pourzoom
.
let map; async function initMap() { const { Map } = await google.maps.importLibrary("maps"); map = new Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } initMap();
Exemple de code complet
TypeScript
let map: google.maps.Map; async function initMap(): Promise<void> { const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; map = new Map(document.getElementById("map") as HTMLElement, { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } initMap();
JavaScript
let map; async function initMap() { const { Map } = await google.maps.importLibrary("maps"); map = new Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } initMap();
CSS
/* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }
HTML
<html> <head> <title>Simple Map</title> <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script> <link rel="stylesheet" type="text/css" href="./style.css" /> <script type="module" src="./index.js"></script> </head> <body> <div id="map"></div> <!-- prettier-ignore --> <script>(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))}) ({key: "AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg", v: "weekly"});</script> </body> </html>