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

בחירת פלטפורמה: 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);