Para cargar el código JavaScript de la API de Maps JavaScript, incluye una secuencia de comandos del cargador de arranque en tu página con el siguiente 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>
La API de Maps JavaScript consta de bibliotecas que no se cargan hasta que las solicitas específicamente. El desglose de los diferentes componentes en bibliotecas permite que la API se cargue (y analice) rápidamente. Solo tienes la tarea adicional de cargar y analizar bibliotecas si las necesitas.
Carga las bibliotecas adicionales en el entorno de ejecución usando el operador await
para llamar a importLibrary()
desde una función async
. Por ejemplo:
const { Map } = await google.maps.importLibrary("maps");
En el siguiente ejemplo de código, se muestra cómo cargar las bibliotecas Map
y 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();
Bibliotecas para Dynamic Library Import
Las siguientes bibliotecas están disponibles para usarse con Dynamic Library Import:
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
)
Bibliotecas para la URL de arranque (heredada)
Las siguientes bibliotecas son compatibles con la etiqueta de secuencia de comandos de arranque heredada:drawing
proporciona una interfaz gráfica para que los usuarios dibujen polígonos, rectángulos, polilíneas, círculos y marcadores en el mapa. Consulta la documentación de la biblioteca de dibujos para obtener más información.geometry
incluye funciones de utilidad para calcular valores geométricos escalares (como la distancia y el área) sobre la superficie terrestre. Consulta la documentación de la biblioteca de geometría para obtener más información.journeySharing
brinda asistencia para las soluciones de transporte y logística de Google Maps Platform.localContext
muestra a los usuarios lugares de interés clave cerca de una ubicación que especifiques. Consulta la documentación de la Biblioteca de Contexto local para obtener más información.marker
te permite agregar Marcadores avanzados muy personalizables y de excelente rendimiento a tus mapas. Consulta la documentación de Marcadores avanzados para obtener más información.places
permite que tu aplicación busque lugares, como establecimientos, ubicaciones geográficas o lugares de interés destacados, dentro de un área definida. Consulta la documentación de la biblioteca de Places para obtener más información.visualization
proporciona mapas de calor para obtener una representación visual de los datos. Consulta la documentación de la biblioteca de visualización para obtener más información.
En la siguiente solicitud de arranque, se muestra cómo agregar una solicitud a la biblioteca google.maps.geometry
de la API de Maps JavaScript a la secuencia de comandos del cargador de arranque heredado:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=geometry&callback=initMap">
</script>
Para solicitar varias bibliotecas, sepáralas con una coma:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=geometry,places&callback=initMap">
</script>