Przegląd
Korzystanie z mapy na stronie internetowej może wymagać określonych opcji, które kontrolują sposób interakcji użytkowników z mapą, aby powiększać i przesuwać widok. Te opcje, takie jak gestureHandling, minZoom, maxZoom i restriction, są zdefiniowane w interfejsie MapOptions.
Działanie domyślne
Poniższa mapa pokazuje domyślne działanie w przypadku interakcji z mapą utworzoną tylko z opcjami zoom i center.
Kod tej mapy znajdziesz poniżej.
TypeScript
new google.maps.Map(document.getElementById("map")!, { zoom, center, });
JavaScript
new google.maps.Map(document.getElementById("map"), { zoom, center, });
Kontrolowanie obsługi gestów
Gdy użytkownik przewija stronę zawierającą mapę, przewijanie może przypadkowo spowodować powiększenie mapy. To działanie można kontrolować za pomocą opcji mapy gestureHandling.
gestureHandling: cooperative
Mapa poniżej korzysta z opcji gestureHandling ustawionej
na cooperative, co pozwala użytkownikowi normalnie przewijać stronę bez powiększania
ani przesuwania mapy. Użytkownicy mogą powiększać mapę, klikając elementy sterujące powiększeniem. Mogą też powiększać i przesuwać mapę, używając 2 palców na urządzeniach z ekranem dotykowym.
Kod tej mapy znajdziesz poniżej.
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
Mapa u góry strony bez opcji gestureHandling działa tak samo jak poprzednia mapa z opcją gestureHandling ustawioną na cooperative, ponieważ wszystkie mapy na tej stronie znajdują się w elemencie <iframe>. Domyślna wartość gestureHandling
auto przełącza się między greedy a cooperative w zależności od tego, czy mapa znajduje się
w elemencie <iframe>.
Mapa w elemencie <iframe> |
Zachowanie |
|---|---|
| tak | cooperative |
| nie | greedy |
gestureHandling: greedy
Poniżej znajduje się mapa z opcją gestureHandling ustawioną na greedy. W przeciwieństwie do opcji cooperative ta mapa reaguje na wszystkie gesty dotykowe i zdarzenia przewijania.
gestureHandling: none
Opcję gestureHandling można też ustawić na
none, aby wyłączyć gesty na mapie.
Wyłączanie przesuwania i powiększania
Aby całkowicie wyłączyć możliwość przesuwania i powiększania mapy, musisz uwzględnić 2 opcje: gestureHandling i 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, });
Mapa poniżej pokazuje połączenie opcji gestureHandling i zoomControl w powyższym kodzie.
Ograniczanie granic mapy i powiększenia
Może być pożądane zezwolenie na gesty i elementy sterujące powiększeniem, ale ograniczenie mapy do określonych granic lub minimalnego i maksymalnego powiększenia. Aby to zrobić, możesz ustawić opcje restriction, minZoom, i maxZoom. Poniższy kod i mapa pokazują te opcje.
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, }, }, });