رفتار برخورد نشانگر را پیکربندی کنید، رفتار برخورد نشانگر را پیکربندی کنید

پلتفرم مورد نظر را انتخاب کنید: اندروید، iOS، جاوا اسکریپت

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

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

نمونه کد زیر هر یک از مقادیر رفتار برخورد را نشان می‌دهد. برای استفاده از این نمونه کد، دستورالعمل‌های موجود در بخش تنظیمات و افزودن نقشه سه‌بعدی به برنامه خود را دنبال کنید تا پروژه اندروید استودیو خود را با یک نقشه سه‌بعدی اولیه راه‌اندازی کنید. سپس، کد زیر را به فایل 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
})