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