Na tej stronie dowiesz się, jak kontrolować zachowanie znacznika w przypadku kolizji.
Ustawianie zachowania znacznika w przypadku kolizji
Zachowanie w przypadku kolizji określa sposób wyświetlania znacznika, jeśli koliduje (nakłada się) z innym znacznikiem. Sposób tworzenia zaawansowanych znaczników określa sposób działania kolizji:
- Zaawansowane markery utworzone za pomocą elementu - BitmapDescriptorFactorysą nazywane markerami mapy bitowej. Te znaczniki są rysowane przez podstawową mapę.
- Wszystkie inne zaawansowane znaczniki, w tym te utworzone za pomocą metody - AdvancedMarkerOptions.iconView(), są nazywane znacznikami widoku i są rysowane na warstwie nad mapą podstawową.
Aby ustawić zachowanie w przypadku kolizji, ustaw wartość parametru
AdvancedMarkerOptions.collisionBehavior
na jedną z tych opcji:
- CollisionBehavior.REQUIRED: (domyślnie) zawsze wyświetlaj znacznik niezależnie od kolizji.
- CollisionBehavior.REQUIRED_AND_HIDES_OPTIONALZawsze wyświetlaj znacznik niezależnie od kolizji i ukrywaj wszystkie- OPTIONAL_AND_HIDES_LOWER_PRIORITYznaczniki lub etykiety, które mogłyby się z nim pokrywać.
- CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITYWyświetlaj znacznik tylko wtedy, gdy nie nakłada się na inne znaczniki.- Jeśli 2 markery bitmapowe nakładają się na siebie, wyświetlany jest ten o wyższej wartości - zIndex. Jeśli mają ten sam atrybut- zIndex, wyświetlany jest ten, który znajduje się niżej na ekranie w orientacji pionowej. Więcej informacji o parametrze- zIndexznajdziesz w sekcji Indeks Z znacznika.
- Jeśli 2 znaczniki widoku nakładają się na siebie, wyświetlany jest ten z wyższą wartością - zIndex. Jeśli mają ten sam- zIndex, ostatni utworzony znacznik nakłada się na wszystkie znaczniki utworzone wcześniej.
- Markery widoku są rysowane na warstwie powyżej markerów mapy bitowej, więc markery widoku nakładają się na markery mapy bitowej. Dlatego, aby lepiej kontrolować kolizje, używaj markerów tego samego typu. 
 
W przykładzie poniżej pokazano ustawianie zachowania w przypadku kolizji w przypadku markera:
Kotlin
// Collision behavior can only be changed in the AdvancedMarkerOptions object. // Changes to collision behavior after a marker has been created are not possible val collisionBehavior: Int = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .position(LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior) val marker: Marker = map.addMarker(advancedMarkerOptions) ?: error("Failed to add marker")
Java
// Collision behavior can only be changed in the AdvancedMarkerOptions object. // Changes to collision behavior after a marker has been created are not possible int collisionBehavior = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL; AdvancedMarkerOptions options = new AdvancedMarkerOptions() .position(new LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior); Marker marker = map.addMarker(options);