Anda mungkin ingin mengontrol geser kamera, ketinggian maksimum, atau membuat batas lintang dan bujur yang membatasi pergerakan pengguna di peta tertentu. Anda dapat melakukannya menggunakan batasan kamera.
Contoh berikut menampilkan peta dengan batas lokasi yang ditetapkan untuk membatasi pergerakan kamera:
Membatasi batas peta
Anda dapat membatasi batas geografis kamera dengan menetapkan opsi bounds.
Contoh kode berikut menunjukkan cara membatasi batas peta:
TypeScript
async function init() { const { Map3DElement } = await google.maps.importLibrary('maps3d'); const map = new Map3DElement({ center: { lat: -36.86, lng: 174.76, altitude: 10000 }, tilt: 67.5, mode: 'HYBRID', bounds: { south: -48.3, west: 163.56, north: -32.86, east: -180 }, gestureHandling: 'COOPERATIVE', }); document.body.append(map); } void init();
JavaScript
async function init() { const { Map3DElement } = await google.maps.importLibrary('maps3d'); const map = new Map3DElement({ center: { lat: -36.86, lng: 174.76, altitude: 10000 }, tilt: 67.5, mode: 'HYBRID', bounds: { south: -48.3, west: 163.56, north: -32.86, east: -180 }, gestureHandling: 'COOPERATIVE', }); document.body.append(map); } void init();
CSS
/* * Always set the map height explicitly to define the size of the div element * that contains the map. */ html, map { height: 100%; } body { height: 100%; margin: 0; padding: 0; }
HTML
<html>
<head>
<title>Map</title>
<link rel="stylesheet" type="text/css" href="./style.css" />
<script type="module" src="./index.js"></script>
<script>
// prettier-ignore
(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"
});
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>Mencoba Contoh
Membatasi kamera
Anda dapat membatasi pergerakan kamera dengan menetapkan salah satu opsi berikut:
maxAltitudeminAltitudemaxHeadingminHeadingmaxTiltminTilt
Contoh kode berikut menunjukkan cara membatasi kamera:
async function init() {
const { Map3DElement, MapMode } = await google.maps.importLibrary("maps3d");
const map = new Map3DElement({
center: { lat: 37.7704, lng: -122.3985, altitude: 500 },
tilt: 67.5,
mode: MapMode.HYBRID,
minAltitude: 1,
maxAltitude: 1000,
minTilt: 35,
maxTilt: 55
});
document.body.append(map);
}
init();
Membatasi batas peta dan kamera
Anda dapat membatasi batas peta dan kamera secara bersamaan. Contoh kode berikut menunjukkan cara membatasi batas peta dan kamera:
async function init() {
const { Map3DElement, MapMode } = await google.maps.importLibrary("maps3d");
const map = new Map3DElement({
center: { lat: 37.7704, lng: -122.3985, altitude: 500 },
tilt: 67.5,
mode: MapMode.HYBRID,
minAltitude: 1,
maxAltitude: 1000,
minTilt: 35,
maxTilt: 55,
bounds: {south: 37, west: -123, north: 38, east: -121}
});
document.body.append(map);
}
init();
Mengontrol penanganan gestur
Jika pengguna men-scroll halaman yang berisi peta, tindakan scroll dapat memperbesar peta secara tidak sengaja. Anda dapat mengontrol perilaku ini dengan menetapkan opsi peta gestureHandling.
gestureHandling: cooperative
Penanganan gestur "Kooperatif" memungkinkan pengguna men-scroll halaman tanpa memengaruhi zoom atau geser peta. Untuk melakukan zoom, pengguna dapat menggunakan kontrol, gestur dua jari (untuk perangkat layar sentuh), atau dengan menahan CMD/CTRL saat men-scroll.
Kode berikut menunjukkan cara menetapkan penanganan gestur ke "kooperatif":
new Map3DElement({
center: { lat: 37.729901343702736, lng: -119.63788444355905, altitude: 1500 },
tilt: 70,
heading: 50,
range: 4000,
gestureHandling: 'COOPERATIVE',
});
gestureHandling: greedy
Penanganan gestur "Greedy" bereaksi terhadap semua peristiwa scroll dan gestur sentuh.
gestureHandling: auto
Penanganan gestur "Otomatis" mengubah perilaku peta, bergantung pada apakah peta dimuat dalam <iframe> atau tidak
, dan apakah halaman dapat di-scroll.
- Jika peta berada dalam
<iframe>, penanganan gestur akan menjadi "kooperatif". - Jika peta tidak berada dalam
<iframe>, penanganan gestur akan menjadi "greedy".