שליטה בהתנהגות במקרה של חפיפה

בחירת פלטפורמה: Android iOS JavaScript

בדף הזה מוסבר איך מגדירים את אופן הפעולה של סמן במקרה של התנגשות. התנהגות במקרה של חפיפה קובעת איך סמן יוצג אם הוא מתנגש (חופף) עם סמן אחר.

כדי להגדיר את התנהגות במקרה של חפיפה, מגדירים את collisionBehavior לאחת מהאפשרויות הבאות:

  • REQUIRED: הצגת הסמן תמיד, ללא קשר להתנגשות
  • REQUIRED_AND_HIDES_OPTIONAL: הסמן תמיד יוצג, ללא קשר להתנגשות, וכל סמן OPTIONAL_AND_HIDES_LOWER_PRIORITY או תווית שחופפים לסמן יוסתרו.
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY: הצגת הסמן רק אם הוא לא חופף לסמנים אחרים. אם שני סמנים מהסוג הזה חופפים, מוצג הסמן עם הערך הגבוה יותר של zIndex. אם יש להם אותו zIndex, מוצג המבצע עם המיקום האנכי הנמוך יותר במסך.

בדוגמה הבאה מוצג אופן ההגדרה של התנהגות במקרה של חפיפה לסמן:

const marker = new Marker3DElement({
    position: { lat, lng },
    // Try setting a different collision behavior here.
    collisionBehavior: 'REQUIRED',
});

שליטה בהתנהגות של תווית במקרה של התנגשות

אפשר לשלוט בהתנהגות במקרה של חפיפה של הסיכה של הסמן ושל הטקסט של התווית בנפרד. במקרים מסוימים, כדאי להסתיר את התוויות אבל להשאיר את סיכות הסימון גלויות במסך כדי לשמור על ההקשר. כדי לעשות את זה, מוסיפים אלמנט <gmp-label-3d> כאלמנט באותה רמה של <gmp-marker-3d> ומקשרים ביניהם באמצעות המאפיין for.

בדוגמת קוד הבאה מוצגת הגדרת התנהגות במקרה של חפיפה של תווית בנפרד מסמן:

const markerWithIndependentLabel = new Marker3DElement({
    position: { lat: 37.423, lng: -122.015 },
});
markerWithIndependentLabel.id = 'marker-1';
const label = new Label3DElement({
    collisionBehavior: CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY,
    for: 'marker-1',
});
label.append('Independent label example');
map.append(markerWithIndependentLabel);
map.append(label);