Tổng quan
Việc sử dụng bản đồ trên một trang web có thể yêu cầu các tuỳ chọn cụ thể để kiểm soát cách người dùng tương tác với bản đồ nhằm thu phóng và kéo bản đồ. Các tuỳ chọn này, chẳng hạn như gestureHandling, minZoom, maxZoom và restriction, được xác định trong giao diện MapOptions.
Hành vi mặc định
Bản đồ sau đây minh hoạ hành vi mặc định cho các tương tác với bản đồ được khởi tạo chỉ với các tuỳ chọn zoom và center được xác định.
Mã cho bản đồ này có dạng như dưới đây.
TypeScript
new google.maps.Map(document.getElementById("map")!, { zoom, center, });
JavaScript
new google.maps.Map(document.getElementById("map"), { zoom, center, });
Kiểm soát việc xử lý cử chỉ
Khi người dùng cuộn một trang có chứa bản đồ, thao tác cuộn có thể vô tình khiến bản đồ thu phóng. Bạn có thể kiểm soát hành vi này bằng cách sử dụng tuỳ chọn bản đồ gestureHandling.
gestureHandling: cooperative
Bản đồ bên dưới sử dụng tuỳ chọn gestureHandling được đặt
thành cooperative, cho phép người dùng cuộn trang bình thường mà không thu phóng
hoặc kéo bản đồ. Người dùng có thể thu phóng bản đồ bằng cách nhấp vào các nút điều khiển thu phóng. Họ cũng có thể thu phóng và kéo bản đồ bằng cách sử dụng các thao tác bằng hai ngón tay trên bản đồ đối với thiết bị màn hình cảm ứng.
Mã cho bản đồ này có dạng như dưới đây.
TypeScript
new google.maps.Map(document.getElementById("map")!, { zoom, center, gestureHandling: "cooperative", });
JavaScript
new google.maps.Map(document.getElementById("map"), { zoom, center, gestureHandling: "cooperative", });
gestureHandling: auto
Bản đồ ở đầu trang mà không có tuỳ chọn gestureHandling có hành vi giống như bản đồ trước đó có gestureHandling được đặt thành cooperative vì tất cả bản đồ trên trang này đều nằm trong một <iframe>. Giá trị gestureHandling mặc định
auto chuyển đổi giữa greedy và cooperative dựa trên việc bản đồ có
nằm trong <iframe> hay không.
Bản đồ nằm trong <iframe> |
Hành vi |
|---|---|
| có | cooperative |
| không | greedy |
gestureHandling: greedy
Bản đồ có gestureHandling được đặt thành greedy có dạng như
dưới đây. Bản đồ này phản ứng với tất cả các cử chỉ chạm và sự kiện cuộn không giống như cooperative.
gestureHandling: none
Bạn cũng có thể đặt tuỳ chọn gestureHandling thành
none để tắt cử chỉ trên bản đồ.
Tắt tính năng kéo và thu phóng
Để tắt hoàn toàn khả năng kéo và thu phóng bản đồ, bạn phải thêm 2 tuỳ chọn là gestureHandling và zoomControl.
TypeScript
new google.maps.Map(document.getElementById("map")!, { zoom, center, gestureHandling: "none", zoomControl: false, });
JavaScript
new google.maps.Map(document.getElementById("map"), { zoom, center, gestureHandling: "none", zoomControl: false, });
Bản đồ bên dưới minh hoạ sự kết hợp giữa gestureHandling và zoomControl trong mã ở trên.
Hạn chế ranh giới và mức thu phóng của bản đồ
Bạn có thể muốn cho phép các cử chỉ và nút điều khiển thu phóng nhưng hạn chế bản đồ trong một ranh giới cụ thể hoặc mức thu phóng tối thiểu và tối đa. Để thực hiện việc này, bạn có thể đặt các tuỳ chọn restriction, minZoom, và maxZoom. Mã và bản đồ sau đây minh hoạ các tuỳ chọn này.
TypeScript
new google.maps.Map(document.getElementById("map")!, { zoom, center, minZoom: zoom - 3, maxZoom: zoom + 3, restriction: { latLngBounds: { north: -10, south: -40, east: 160, west: 100, }, }, });
JavaScript
new google.maps.Map(document.getElementById("map"), { zoom, center, minZoom: zoom - 3, maxZoom: zoom + 3, restriction: { latLngBounds: { north: -10, south: -40, east: 160, west: 100, }, }, });