Per caricare il codice JavaScript per l'API Maps JavaScript, includi nella pagina uno script di caricamento bootstrap con il seguente formato:
<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 è composta da librerie che non vengono caricate finché non le richiedi specificatamente. La suddivisione dei componenti in librerie consente all'API di caricarsi (e analizzare) rapidamente. Sostieni unicamente l'overhead aggiuntivo dovuto al caricamento e all'analisi delle librerie in base alle tue esigenze.
Carica librerie aggiuntive in runtime utilizzando l'operatore await
per chiamare
importLibrary()
da una funzione async
. Ad esempio:
const { Map } = await google.maps.importLibrary("maps");
Il seguente esempio di codice mostra il caricamento di entrambe le librerie Map
e 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();
Librerie per l'importazione di librerie dinamiche
Le seguenti librerie sono disponibili per l'utilizzo con l'importazione della libreria dinamica:
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
)
Librerie per URL di bootstrap (precedente)
Le seguenti librerie sono supportate per l'utilizzo con il tag di script di bootstrap legacy:drawing
mette a disposizione degli utenti un'interfaccia grafica per disegnare poligoni, rettangoli, polilinee, cerchi e indicatori sulla mappa. Per ulteriori informazioni, consulta la documentazione della Libreria di disegni.geometry
include funzioni di utilità per calcolare valori geometrici scalari (come distanza e area) sulla superficie della Terra. Per saperne di più, consulta la documentazione della libreria Geometry.journeySharing
fornisce assistenza per le soluzioni di trasporto e logistica di Google Maps Platform.localContext
mostra agli utenti i principali luoghi di interesse vicino a una località da te specificata. Per saperne di più, consulta la documentazione relativa alla libreria di contesto locale.marker
ti consente di aggiungere alle tue mappe indicatori avanzati altamente personalizzabili e ad alte prestazioni. Per saperne di più, consulta la documentazione sugli indicatori avanzati.places
consente alla tua applicazione di cercare luoghi quali attività commerciali, posizioni geografiche o punti di interesse importanti all'interno di un'area definita. Per saperne di più, consulta la documentazione relativa alla libreria Places.visualization
fornisce mappe termiche per la rappresentazione visiva dei dati. Per saperne di più, consulta la documentazione della libreria di visualizzazione.
La seguente richiesta di bootstrap illustra come aggiungere una richiesta per la libreria google.maps.geometry
dell'API Maps JavaScript allo script di bootstrap legacy:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=geometry&callback=initMap">
</script>
Per richiedere più librerie, separale con una virgola:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=geometry,places&callback=initMap">
</script>