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
mapsdan 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
scriptyang berisi bootstrap yang dikonfigurasi dengan kunci API Anda dan opsi lainnya.<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=maps,marker" defer ></script>
Di halaman HTML, tambahkan elemen
gmp-map. Tentukan koordinat lintang dan bujur untukcenter, dan nilai zoom untukzoom. Dalam contoh ini, atribut gayaheightjuga 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=AIzaSyA6myHzS10YXdcazAFalmXvDkrYCp5cLc8&libraries=maps,marker&v=weekly"
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
scriptyang 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
divuntuk menyimpan peta.<div id="map"></div>
Di CSS, tetapkan tinggi peta ke 100%.
#map { height: 100%; }
Di file JavaScript, buat fungsi untuk memuat library
mapsdan 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: "AIzaSyA6myHzS10YXdcazAFalmXvDkrYCp5cLc8", v: "weekly"});</script>
</body>
</html>