Configurare il comportamento di collisione degli indicatori
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Seleziona la piattaforma:
Android
iOS
JavaScript
Puoi specificare il comportamento di un indicatore quando entra in collisione con un altro indicatore o 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
:
// 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
})
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-31 UTC.
[null,null,["Ultimo aggiornamento 2025-08-31 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```"]]