Anda dapat menambahkan peta Google ke halaman web menggunakan kode HTML, CSS, dan JavaScript. Halaman ini menunjukkan cara menambahkan peta ke halaman web, lalu mengakses instance peta secara terprogram.
- Menambahkan peta menggunakan elemen
gmp-map - Menambahkan peta menggunakan elemen
divdan JavaScript - Menetapkan dan mendapatkan properti pada instance peta
Ringkasan
Untuk memuat peta, halaman web Anda harus melakukan proses berikut:
- Muat Maps JavaScript API menggunakan loader bootstrap. Di sinilah kunci API Anda diteruskan. Kunci API 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 cara yang lebih disarankan untuk menambahkan peta Google ke halaman web.
Elemen ini adalah elemen HTML kustom yang dibuat menggunakan komponen web. Untuk menambahkan peta ke halaman web menggunakan elemen gmp-map, lakukan langkah-langkah berikut.
Tambahkan elemen
scriptyang berisi bootstrap ke halaman HTML, atau tambahkan ke file sumber JavaScript atau TypeScript tanpa elemenscript. Konfigurasi bootstrap dengan kunci API Anda dan opsi lainnya. Anda dapat memilih impor pustaka dinamis atau pemuatan skrip langsung. Contoh ini menunjukkan penambahan bootstrap pemuatan skrip langsung ke halaman HTML:<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=maps,marker" defer ></script>
Pelajari lebih lanjut cara memuat Google Maps JavaScript API
Di halaman HTML, tambahkan elemen
gmp-map. Tentukan koordinat lintang dan bujur untukcenter(wajib), nilai zoom untukzoom(wajib), danmap-idjika diperlukan (wajib untuk beberapa fitur seperti Penanda Lanjutan). Atribut CSSheightdiperlukan agar peta dapat dilihat. Dapat ditentukan di HTML atau CSS. Dalam contoh ini, atribut gayaheightditentukan di HTML agar lebih sederhana.<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 (lama) dan JavaScript
Untuk menambahkan peta ke halaman web menggunakan elemen div, lakukan langkah-langkah berikut.
Tambahkan elemen
scriptyang berisi bootstrap ke halaman HTML, atau tambahkan ke file sumber JavaScript atau TypeScript tanpa elemenscript. Konfigurasi bootstrap dengan kunci API Anda dan opsi lainnya. Anda dapat memilih impor pustaka dinamis atau pemuatan skrip langsung. Contoh ini menunjukkan penambahan bootstrap dinamis ke halaman HTML:<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>
Pelajari lebih lanjut cara memuat Google Maps JavaScript API
Di halaman HTML, tambahkan elemen
divuntuk menyimpan peta.<div id="map"></div>
Di CSS, tetapkan tinggi peta ke 100%. Atribut CSS
heightdiperlukan agar peta dapat dilihat.#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. Jika perlu, tambahkan ID peta menggunakan propertimap-id.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>Mencoba Contoh
Menetapkan dan mendapatkan properti pada instance peta
Untuk berinteraksi dengan instance peta, pilih elemen yang memuatnya. Kode untuk melakukannya akan bervariasi, bergantung pada apakah Anda menggunakan elemen gmp-map atau elemen div.
Mendapatkan instance peta dari elemen gmp-map
Untuk mendapatkan instance peta saat menggunakan elemen gmp-map, gunakan
document.querySelector untuk mengambil instance mapElement, seperti yang ditunjukkan di sini.
const mapElement = document.querySelector('gmp-map') as google.maps.MapElement;
Kemudian, tetapkan properti pada instance mapElement:
mapElement.zoom = 8;
Class MapElement menggunakan class Map secara internal; akses class Map menggunakan properti MapElement.innerMap, seperti yang ditunjukkan di sini:
mapElement.innerMap.setOptions({
mapTypeControl: false,
});
Mendapatkan instance peta dari elemen div
Saat menggunakan elemen div, dapatkan instance peta dan tetapkan opsi pada
waktu inisialisasi:
map = new google.maps.Map(document.getElementById("map"), {
center: { lat: -34.397, lng: 150.644 },
zoom: 8,
mapTypeControl: false,
});
Setelah inisialisasi, tetapkan opsi pada instance map seperti yang ditunjukkan di sini:
map.setOptions({
zoom: 8,
});