סקירה כללית
כדי לשלוט באופן שבו המשתמשים מקיימים אינטראקציה עם המפה, כמו זום והזזה, יכול להיות שיהיה צורך באפשרויות ספציפיות לשימוש במפה בדף אינטרנט. האפשרויות האלה, כמו gestureHandling, minZoom, maxZoom וגם restriction, מוגדרות בתוך ממשק MapOptions.
התנהגות ברירת המחדל
המפה הבאה מדגימה את התנהגות ברירת המחדל של אינטראקציות עם מפה שנוצרה רק עם האפשרויות zoom ו-center.
הקוד של המפה הזו מופיע בהמשך.
TypeScript
new google.maps.Map(document.getElementById("map")!, { zoom, center, });
JavaScript
new google.maps.Map(document.getElementById("map"), { zoom, center, });
שליטה בטיפול בתנועות
כשמשתמש מגלל דף שמכיל מפה, פעולת הגלילה יכולה לגרום למפה להתקרב בלי כוונה. אפשר לשלוט בהתנהגות הזו באמצעות אפשרות המפה gestureHandling.
gestureHandling: cooperative
במפה שלמטה נעשה שימוש באפשרות gestureHandling שהערך שלה מוגדר ל-cooperative, וכך המשתמש יכול לגלול בדף כרגיל, בלי לשנות את מרחק התצוגה או להזיז את המפה. המשתמשים יכולים לשנות את מרחק התצוגה במפה באמצעות לחצני הזום, או להשתמש בתנועות של שתי אצבעות במפה במכשירים עם מסך מגע כדי לשנות את מרחק התצוגה ולהזיז את המפה.
הקוד של המפה הזו מופיע בהמשך.
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
המפה בחלק העליון של הדף ללא האפשרות gestureHandling מתנהגת כמו המפה הקודמת עם gestureHandling שמוגדר ל-cooperative, כי כל המפות בדף הזה נמצאות בתוך <iframe>. ערך ברירת המחדל של gestureHandling, auto, משתנה בין greedy ל-cooperative בהתאם לשאלה אם המפה מוכלת ב-<iframe>.
מפה שמוכלת בתוך <iframe> |
התנהגות |
|---|---|
| כן | cooperative |
| לא | greedy |
gestureHandling: greedy
בהמשך מוצגת מפה עם gestureHandling שהערך שלה מוגדר ל-greedy. המפה הזו מגיבה לכל מחוות המגע ולאירועי הגלילה, בניגוד ל-cooperative.
gestureHandling: none
אפשר גם להגדיר את האפשרות gestureHandling לערך none כדי להשבית את השימוש במחוות במפה.
השבתה של הזזה וזום
כדי להשבית לחלוטין את האפשרות להזיז את המפה ולשנות את המרחק מהתצוגה, צריך לכלול שתי אפשרויות: gestureHandling ו-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, });
בדוגמה למפה שלמטה אפשר לראות את השילוב של gestureHandling ושל zoomControl בקוד שלמעלה.
הגבלת גבולות המפה ושינוי מרחק התצוגה
יכול להיות שתרצו לאפשר שימוש במחוות ובאמצעי בקרה של זום, אבל להגביל את המפה לגבולות מסוימים או לזום מינימלי ומקסימלי. כדי לעשות את זה, אפשר להגדיר את האפשרויות restriction, minZoom ו-maxZoom. הקוד והמפה הבאים ממחישים את האפשרויות האלה.
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, }, }, });