شما میتوانید با تنظیم ویژگی 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 })