پیکربندی رفتار تصادم نشانگر

پلاتفرم را انتخاب کنید: Android iOS JavaScript

با تنظیم ویژگی collisionBehavior روی یکی از مقادیر زیر، می‌توانید مشخص کنید که نشانگر هنگام برخورد با نشانگر دیگر یا برچسب نقشه چگونه رفتار کند:

  • REQUIRED: نشانگر باید همیشه بدون توجه به برخوردها نمایش داده شود.
  • REQUIRED_AND_HIDES_OPTIONAL: نشانگر باید همیشه نمایش داده شود صرف‌نظر از برخوردها. نشانگرهای دارای رفتار تصادم OPTIONAL_AND_HIDES_LOWER_PRIORITY یا برچسب‌های نقشه پیش‌فرض که با این نشانگر هم‌پوشانی دارند پنهان خواهند شد.
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY: نشانگر فقط باید زمانی نمایش داده شود که با نشانگرهای دیگر هم‌پوشانی نداشته باشد. اگر دو نشانگر از این نوع هم‌پوشانی داشته باشند، نشانگری که ترتیب ترسیم بالاتری دارد نشان داده می‌شود. اگر ترتیب ترسیم یکسانی داشته باشند، موردی که در موقعیت عمودی پایین‌تری در صفحه قرار دارد نشان داده می‌شود.

نمونه کد زیر هریک از مقادیر رفتار تصادم را نشان می‌دهد. برای استفاده از این نمونه کد، دستورالعمل‌های راه‌اندازی و افزودن نقشه سه‌بعدی به برنامه را دنبال کنید تا پروژه Android Studio خود را با نقشه سه‌بعدی پایه راه‌اندازی کنید. سپس، کد زیر را به فایل MainActivity.kt اضافه کنید:

// Add imports
import com.google.android.gms.maps3d.model.latLngAltitude

...

// Marker 1: REQUIRED
googleMap3D.addMarker(markerOptions {
    position = latLngAltitude {
        latitude = 52.52027645136134
        longitude = 13.408271658592406
        altitude = 0.0
    }
    label = "Collision Behavior: REQUIRED"
    altitudeMode = AltitudeMode.CLAMP_TO_GROUND
    isExtruded = true
    isDrawnWhenOccluded = true
    collisionBehavior = CollisionBehavior.REQUIRED
})

// Marker 2: REQUIRED_AND_HIDES_OPTIONAL
googleMap3D.addMarker(markerOptions {
    position = latLngAltitude {
        latitude = 52.519605780912585
        longitude = 13.406867190588198
        altitude = 150.0
    }
    label = "Colliding Behavior: REQUIRED_AND_HIDES_OPTIONAL"
    altitudeMode = AltitudeMode.ABSOLUTE
    isExtruded = true
    isDrawnWhenOccluded = true
    collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
})

// Marker 3: OPTIONAL_AND_HIDES_LOWER_PRIORITY
googleMap3D.addMarker(markerOptions {
    position = latLngAltitude {
        latitude = 52.519882191069016
        longitude = 13.407410777254293
        altitude = 50.0
    }
    label = "Colliding Behavior: OPTIONAL_AND_HIDES_LOWER_PRIORITY"
    altitudeMode = AltitudeMode.RELATIVE_TO_GROUND
    isExtruded = true
    isDrawnWhenOccluded = true
    collisionBehavior = CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY
})