בדף הזה מוסבר איך לשלוט בהיבטים הבאים של סמנים מתקדמים:
- הגדרת התנהגות התנגשות לסמן
- הגדרת הגובה של הסמן
- שליטה בחשיפה של הסימנים לפי מרחק התצוגה במפה
הגדרת התנהגות התנגשות לסמן
התנהגות התנגשות קובעת איך סמן יוצג אם הוא מתנגש (חופף) לסמן אחר. התכונה 'התנהגות התנגשות' נתמכת רק במפות וקטורים.
כדי להגדיר את התנהגות ההתנגשות, מגדירים את AdvancedMarkerElement.collisionBehavior
לאחת מהאפשרויות הבאות:
REQUIRED
: (ברירת המחדל) תמיד להציג את הסמן, ללא קשר להתנגשות.OPTIONAL_AND_HIDES_LOWER_PRIORITY
הצגת הסמן רק אם הוא לא חופף לסימנים אחרים. אם שני סמנים מהסוג הזה חופפים, מוצג הסמן עם הערך הגבוה יותר שלzIndex
. אם יש להם את אותוzIndex
, יוצג התמונה שנמצאת במיקום הנמוך יותר במסך האנכי.REQUIRED_AND_HIDES_OPTIONAL
תמיד להציג את הסמן ללא קשר להתנגשות, ולהסתיר את כל התוויות או הסימנים מסוגOPTIONAL_AND_HIDES_LOWER_PRIORITY
שיחפו על הסמן.
בדוגמה הבאה מוצגת הגדרת התנהגות התנגשות לסמן:
TypeScript
const advancedMarker = new AdvancedMarkerElement({ position: new google.maps.LatLng({ lat, lng }), map, collisionBehavior: collisionBehavior, });
JavaScript
const advancedMarker = new AdvancedMarkerElement({ position: new google.maps.LatLng({ lat, lng }), map, collisionBehavior: collisionBehavior, });
הגדרת הגובה של הסמן
במפות וקטוריות, אפשר להגדיר את הגובה שבו מופיע סמן. אפשר להשתמש באפשרות הזו כדי שהסמנים יופיעו בצורה נכונה ביחס לתוכן של מפה תלת-ממדית. כדי להגדיר את הגובה של סמן, מציינים LatLngAltitude
כערך של האפשרות MarkerView.position
:
TypeScript
const pin = new PinElement({ background: '#4b2e83', borderColor: '#b7a57a', glyphColor: '#b7a57a', scale: 2.0, }); const markerView = new AdvancedMarkerElement({ map, content: pin.element, // Set altitude to 20 meters above the ground. position: { lat: 47.65170843460547, lng: -122.30754, altitude: 20 } as google.maps.LatLngAltitudeLiteral, });
JavaScript
const pin = new PinElement({ background: "#4b2e83", borderColor: "#b7a57a", glyphColor: "#b7a57a", scale: 2.0, }); const markerView = new AdvancedMarkerElement({ map, content: pin.element, // Set altitude to 20 meters above the ground. position: { lat: 47.65170843460547, lng: -122.30754, altitude: 20 }, });
שליטה בחשיפה של הסימנים לפי מרחק התצוגה במפה
רואים את השינוי בחשיפה של הסמנים (מתחילים בהקטנת התצוגה):
כדי לשלוט בחשיפה של סמן מתקדם, יוצרים מאזין zoom_changed
ומוסיפים פונקציה מותנית להגדרת AdvancedMarkerElement.map
לערך null
אם רמת הזום חורגת מהרמה שצוינה, כפי שמתואר בדוגמה הבאה:
TypeScript
map.addListener('zoom_changed', () => { const zoom = map.getZoom(); if (zoom) { // Only show each marker above a certain zoom level. marker01.map = zoom > 14 ? map : null; marker02.map = zoom > 15 ? map : null; marker03.map = zoom > 16 ? map : null; marker04.map = zoom > 17 ? map : null; } });
JavaScript
map.addListener("zoom_changed", () => { const zoom = map.getZoom(); if (zoom) { // Only show each marker above a certain zoom level. marker01.map = zoom > 14 ? map : null; marker02.map = zoom > 15 ? map : null; marker03.map = zoom > 16 ? map : null; marker04.map = zoom > 17 ? map : null; } });