Anda dapat menambahkan peta Google ke halaman web menggunakan kode HTML, CSS, dan JavaScript.
Halaman ini menunjukkan cara menambahkan peta ke halaman web dengan dua cara, yaitu menggunakan elemen HTML kustom gmp-map
, dan menggunakan elemen div
.
Ringkasan
Untuk memuat peta, halaman web Anda harus melakukan proses berikut:
- Memuat Maps JavaScript API menggunakan loader bootstrap. Dalam proses ini, kunci API Anda akan diteruskan, dan dapat ditambahkan ke file sumber HTML atau JavaScript.
- Menambahkan peta ke halaman HTML, dan menambahkan gaya CSS yang diperlukan.
- Memuat library
maps
dan melakukan inisialisasi peta.
Menambahkan peta menggunakan elemen gmp-map
Elemen gmp-map
adalah elemen HTML kustom yang dibuat menggunakan komponen web.
Untuk menambahkan peta ke halaman web menggunakan elemen gmp-map
, lakukan langkah-langkah berikut.
Di halaman HTML, tambahkan elemen
script
yang berisi bootstrap yang dikonfigurasi dengan kunci API Anda dan opsi lainnya. Dalam contoh bootstrap berikut, parametercallback
telah dihilangkan karena tidak diperlukan.<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=maps&v=beta" defer> </script>
Di halaman HTML, tambahkan elemen
gmp-map
. Tentukan koordinat lintang dan bujur untukcenter
, dan nilai zoom untukzoom
. Dalam contoh ini, atribut gayaheight
juga ditentukan.<gmp-map center="37.4220656,-122.0840897" zoom="10" map-id="DEMO_MAP_ID" style="height: 400px" ></gmp-map>
Kode contoh lengkap
<html> <head> <title>Add a Map using HTML</title> <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 script 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&libraries=maps&v=beta" defer ></script> </body> </html>
Menambahkan peta menggunakan elemen div
dan JavaScript
Untuk menambahkan peta ke halaman web menggunakan elemen div
, lakukan langkah-langkah berikut.
Di halaman HTML, tambahkan elemen
script
yang berisi loader bootstrap yang dikonfigurasi dengan kunci API Anda dan opsi lainnya. Atau, tambahkan kode loader bootstrap langsung ke file TypeScript atau JavaScript, tanpa tagscript
.<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>
Di halaman HTML, tambahkan elemen
div
untuk menyimpan peta.<div id="map"></div>
Di CSS, tetapkan tinggi peta ke 100%.
#map { height: 100%; }
Di file JavaScript, buat fungsi untuk memuat library
maps
dan melakukan inisialisasi peta. Tentukan koordinat lintang dan bujur untukcenter
, dan tingkat zoom yang akan digunakan untukzoom
.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();
Kode contoh lengkap
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> <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>