يمكنك تحديد طريقة تصرّف العلامة عند تصادمها مع علامة أخرى أو تصنيف خريطة من خلال ضبط السمة 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
})