หากต้องการโหลดโค้ด JavaScript สำหรับ Maps JavaScript API คุณต้อง รวมสคริปต์ตัวโหลด bootstrap ไว้ในหน้าเว็บในรูปแบบต่อไปนี้
<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>
JavaScript API ของ Maps ประกอบด้วยไลบรารีที่จะไม่โหลดจนกว่าคุณจะ ขอไลบรารีนั้นๆ โดยเฉพาะ การแบ่งคอมโพเนนต์ออกเป็นไลบรารีจะช่วยให้ API โหลด (และแยกวิเคราะห์) ได้อย่างรวดเร็ว คุณจะเสียค่าใช้จ่ายเพิ่มเติมในการโหลดและแยกวิเคราะห์ ไลบรารีเมื่อจำเป็นเท่านั้น
โหลดไลบรารีเพิ่มเติมที่รันไทม์โดยใช้ตัวดำเนินการ await
เพื่อเรียก importLibrary()
จากภายในฟังก์ชัน async
เช่น
const { Map } = await google.maps.importLibrary("maps");
ตัวอย่างโค้ดต่อไปนี้แสดงการโหลดทั้งไลบรารี Map
และ 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();
ไลบรารีที่ใช้ได้
ไลบรารีต่อไปนี้พร้อมใช้งานกับ การนำเข้าไลบรารีแบบไดนามิกและแท็กการโหลดสคริปต์โดยตรง
core
(google.maps.CoreLibrary
)maps
(google.maps.MapsLibrary
)maps3d
(google.maps.Maps3DLibrary
)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
)visualization
(google.maps.VisualizationLibrary
)airQuality
(google.maps.AirQualityLibrary
)addressValidation
(google.maps.AddressValidationLibrary
)drawing
(google.maps.DrawingLibrary
) (เลิกใช้งานแล้ว)
คำขอเริ่มต้นต่อไปนี้แสดงวิธีเพิ่มคำขอสำหรับไลบรารี
google.maps.geometry
ของ Maps JavaScript API ไปยังแท็กการโหลดสคริปต์โดยตรง
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=geometry&callback=initMap">
</script>
หากต้องการขอหลายไลบรารี ให้คั่นด้วยคอมมา ดังนี้
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=geometry,places&callback=initMap">
</script>