Puoi specificare il comportamento di un indicatore quando entra in collisione con un altro indicatore o con un'etichetta della mappa impostando la proprietà collisionBehavior su uno dei seguenti valori:
REQUIRED: il marcatore deve essere sempre visualizzato indipendentemente dalle collisioni.
REQUIRED_AND_HIDES_OPTIONAL: il marcatore deve essere sempre visualizzato indipendentemente
dalle collisioni. I marcatori con comportamento di OPTIONAL_AND_HIDES_LOWER_PRIORITY collisione
o le etichette della mappa predefinite che si sovrappongono a questo marcatore verranno nascoste.
OPTIONAL_AND_HIDES_LOWER_PRIORITY: Il marcatore deve essere visualizzato solo se
non si sovrappone ad altri marcatori. Se due indicatori di questo tipo si sovrappongono, viene visualizzato quello con
l'ordine di disegno più alto. Se hanno lo stesso ordine di disegno, viene visualizzato quello con la posizione
verticale dello schermo più bassa.
Il seguente esempio di codice
mostra ciascuno dei valori del comportamento di collisione. Per utilizzare questo esempio di codice, segui le istruzioni riportate in
Configurazione e
Aggiungere una mappa 3D all'app per configurare
il progetto Android Studio con una mappa 3D di base. Poi, aggiungi il seguente codice al file
MainActivity.kt:
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-05 UTC."],[],[],null,["# Configure marker collision behavior\n\nSelect platform: [Android](/maps/documentation/maps-3d/android-sdk/configure-marker-collision-behavior \"View this page for the Android platform docs.\") [iOS](/maps/documentation/maps-3d/ios-sdk/configure-marker-collision-behavior \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/3d/marker-collision \"View this page for the JavaScript platform docs.\")\n\n\u003cbr /\u003e\n\n| This product or feature is Experimental (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google\n| Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](/maps/launch-stages).\n\n\nYou can specify how a marker should behave when it collides with another\nmarker or map label by setting the\n[`collisionBehavior`](/maps/documentation/maps-3d/android-sdk/reference/com/google/android/gms/maps3d/model/CollisionBehavior)\nproperty to one of the following values:\n\n- `REQUIRED`: The marker should always be displayed regardless of collisions.\n- `REQUIRED_AND_HIDES_OPTIONAL`: The marker should always be displayed regardless of collisions. Markers with `OPTIONAL_AND_HIDES_LOWER_PRIORITY` collision behavior r the default map labels that overlap with this marker will be hidden.\n- `OPTIONAL_AND_HIDES_LOWER_PRIORITY`: The marker should only be displayed if it does not overlap with other markers. If two markers of this type would overlap, the one with the higher draw order is shown. If they have the same draw order, the one with the lower vertical screenposition is shown.\n\n\nThe following code\nsample demonstrates each of the collision behavior values. To use this code sample, follow the instructions in\n[Setup](/maps/documentation/maps-3d/android-sdk/setup) and\n[Add a 3D map to your app](/maps/documentation/maps-3d/android-sdk/add-a-3d-map) to set\nup your Android Studio project with a basic 3D map. Then, add the following code to the\n**`MainActivity.kt`** file: \n\n```kotlin\n// Add imports\nimport com.google.android.gms.maps3d.model.latLngAltitude\n\n...\n\n// Marker 1: REQUIRED\ngoogleMap3D.addMarker(markerOptions {\n position = latLngAltitude {\n latitude = 52.52027645136134\n longitude = 13.408271658592406\n altitude = 0.0\n }\n label = \"Collision Behavior: REQUIRED\"\n altitudeMode = AltitudeMode.CLAMP_TO_GROUND\n isExtruded = true\n isDrawnWhenOccluded = true\n collisionBehavior = CollisionBehavior.REQUIRED\n})\n\n// Marker 2: REQUIRED_AND_HIDES_OPTIONAL\ngoogleMap3D.addMarker(markerOptions {\n position = latLngAltitude {\n latitude = 52.519605780912585\n longitude = 13.406867190588198\n altitude = 150.0\n }\n label = \"Colliding Behavior: REQUIRED_AND_HIDES_OPTIONAL\"\n altitudeMode = AltitudeMode.ABSOLUTE\n isExtruded = true\n isDrawnWhenOccluded = true\n collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL\n})\n\n// Marker 3: OPTIONAL_AND_HIDES_LOWER_PRIORITY\ngoogleMap3D.addMarker(markerOptions {\n position = latLngAltitude {\n latitude = 52.519882191069016\n longitude = 13.407410777254293\n altitude = 50.0\n }\n label = \"Colliding Behavior: OPTIONAL_AND_HIDES_LOWER_PRIORITY\"\n altitudeMode = AltitudeMode.RELATIVE_TO_GROUND\n isExtruded = true\n isDrawnWhenOccluded = true\n collisionBehavior = CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY\n})\n```"]]