Afin de charger le code JavaScript pour l'API Maps JavaScript, vous devez inclure un script de chargement d'amorçage sur votre page, au format suivant :
<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>
L'API Maps JavaScript est constituée de bibliothèques qui ne sont pas chargées, à moins d'envoyer une requête spécifique à cet effet. Diviser les composants en bibliothèques permet à l'API de charger (et d'analyser) rapidement. Ainsi, vous n'entraînez une surcharge supplémentaire que lorsqu'une bibliothèque dont vous avez besoin doit être chargée et analysée.
Pour charger des bibliothèques supplémentaires au moment de l'exécution, utilisez l'opérateur await
afin d'appeler importLibrary()
à partir d'une fonction async
. Exemple :
const { Map } = await google.maps.importLibrary("maps");
L'exemple de code suivant illustre le chargement des bibliothèques Map
et AdvancedMarkerElement
:
TypeScript
// Initialize and add the map let map; async function initMap(): Promise<void> { // The location of Uluru const position = { lat: -25.344, lng: 131.031 }; // Request needed libraries. //@ts-ignore const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary; // The map, centered at Uluru map = new Map( document.getElementById('map') as HTMLElement, { zoom: 4, center: position, mapId: 'DEMO_MAP_ID', } ); // The marker, positioned at Uluru const marker = new AdvancedMarkerElement({ map: map, position: position, title: 'Uluru' }); } initMap();
JavaScript
// Initialize and add the map let map; async function initMap() { // The location of Uluru const position = { lat: -25.344, lng: 131.031 }; // Request needed libraries. //@ts-ignore const { Map } = await google.maps.importLibrary("maps"); const { AdvancedMarkerElement } = await google.maps.importLibrary("marker"); // The map, centered at Uluru map = new Map(document.getElementById("map"), { zoom: 4, center: position, mapId: "DEMO_MAP_ID", }); // The marker, positioned at Uluru const marker = new AdvancedMarkerElement({ map: map, position: position, title: "Uluru", }); } initMap();
Bibliothèques pour l'importation des bibliothèques dynamiques
Les bibliothèques suivantes peuvent être utilisées avec l'importation des bibliothèques dynamiques :
core
(google.maps.CoreLibrary
)maps
(google.maps.MapsLibrary
)places
(google.maps.PlacesLibrary
)geocoding
(google.maps.GeocodingLibrary
)routes
(google.maps.RoutesLibrary
)marker
(google.maps.MarkerLibrary
)geometry
(google.maps.GeometryLibrary
)elevation
(google.maps.ElevationLibrary
)streetView
(google.maps.StreetViewLibrary
)journeySharing
(google.maps.JourneySharingLibrary
)drawing
(google.maps.DrawingLibrary
)visualization
(google.maps.VisualizationLibrary
)
Bibliothèques pour l'URL d'amorçage (ancienne version)
Les bibliothèques suivantes sont compatibles avec l'ancien tag de script d'amorçage :drawing
fournit une interface graphique permettant aux utilisateurs de dessiner des polygones, des rectangles, des polylignes, des cercles et des repères sur la carte. Pour en savoir plus, consultez la documentation de la bibliothèque de dessins.geometry
fournit des fonctions utilitaires pour calculer des valeurs géométriques scalaires (telles que des distances et des superficies) sur la surface de la Terre. Pour en savoir plus, consultez la documentation sur la bibliothèque de géométrie.journeySharing
fournit une assistance pour les solutions Transports et logistique de Google Maps Platform.localContext
affiche les principaux lieux d'intérêt à proximité d'un emplacement que vous spécifiez. Pour en savoir plus, consultez la documentation de la bibliothèque de contexte local.marker
vous permet d'ajouter des repères avancés hautement personnalisables et performants à vos cartes. Pour en savoir plus, consultez la documentation sur les repères avancés.places
permet à votre application de rechercher des lieux tels que des établissements, des emplacements géographiques ou des points d'intérêt dans une zone définie. Pour en savoir plus, consultez la documentation de la bibliothèque Places.visualization
fournit des cartes de densité pour représenter visuellement des données. Pour en savoir plus, consultez la documentation de la bibliothèque de visualisation.
La requête d'amorçage suivante montre comment ajouter une requête pour la bibliothèque google.maps.geometry
de l'API Maps JavaScript à l'ancien script d'amorçage :
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=geometry&callback=initMap">
</script>
Pour demander plusieurs bibliothèques, séparez-les par une virgule :
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=geometry,places&callback=initMap">
</script>