En esta página, te indicamos cómo controlar los siguientes aspectos de Marcadores avanzados:
- Cómo configurar el comportamiento de colisión de un marcador
- Cómo configurar la altitud de un marcador
- Cómo controlar la visibilidad de un marcador según el nivel de zoom del mapa
Cómo configurar el comportamiento de colisión de un marcador
El comportamiento de colisión controla cómo se mostrará un marcador si se superpone con otro. Esta conducta solo se admite en los mapas de vectores.
Para configurar el comportamiento de colisión, establece AdvancedMarkerElement.collisionBehavior
en una de las siguientes opciones:
REQUIRED
: (opción predeterminada) Indica que el marcador debe mostrarse siempre, independientemente de las superposiciones.OPTIONAL_AND_HIDES_LOWER_PRIORITY
: Indica que el marcador solo debe mostrarse si no se superpone con otros. Si dos marcadores de este tipo se superponen, se mostrará el que tenga el valor dezIndex
más alto. Si tienen el mismo valor dezIndex
, se mostrará el que tenga la posición vertical más baja en la pantalla.REQUIRED_AND_HIDES_OPTIONAL
: Indica que el marcador debe mostrarse siempre, independientemente de las superposiciones, y que se deben ocultar los marcadoresOPTIONAL_AND_HIDES_LOWER_PRIORITY
que se superpongan con él.
En el siguiente ejemplo, se muestra la configuración del comportamiento de colisión de un marcador:
TypeScript
const advancedMarker = new AdvancedMarkerElement({ position: new google.maps.LatLng({ lat, lng }), map, collisionBehavior: collisionBehavior, });
JavaScript
const advancedMarker = new AdvancedMarkerElement({ position: new google.maps.LatLng({ lat, lng }), map, collisionBehavior: collisionBehavior, });
Cómo configurar la altitud de un marcador
En los mapas de vectores, puedes configurar la altitud en la que aparece un marcador. Esto ayuda a que los marcadores aparezcan correctamente en relación con el contenido del mapa 3D. Para establecer la altitud de un marcador, especifica un valor de LatLngAltitude
para la opción MarkerView.position
:
TypeScript
const pin = new PinElement({ background: '#4b2e83', borderColor: '#b7a57a', glyphColor: '#b7a57a', scale: 2.0, }); const markerView = new AdvancedMarkerElement({ map, content: pin.element, // Set altitude to 20 meters above the ground. position: { lat: 47.65170843460547, lng: -122.30754, altitude: 20 } as google.maps.LatLngAltitudeLiteral, });
JavaScript
const pin = new PinElement({ background: "#4b2e83", borderColor: "#b7a57a", glyphColor: "#b7a57a", scale: 2.0, }); const markerView = new AdvancedMarkerElement({ map, content: pin.element, // Set altitude to 20 meters above the ground. position: { lat: 47.65170843460547, lng: -122.30754, altitude: 20 }, });
Cómo controlar la visibilidad de un marcador según el nivel de zoom del mapa
Observa el cambio en la visibilidad de los marcadores (aléjate del mapa):
Para controlar la visibilidad de un Marcador avanzado, crea un objeto de escucha zoom_changed
y agrega una función condicional para establecer AdvancedMarkerElement.map
en null
si el zoom supera el nivel especificado, como se muestra en el siguiente ejemplo:
TypeScript
map.addListener('zoom_changed', () => { const zoom = map.getZoom(); if (zoom) { // Only show each marker above a certain zoom level. marker01.map = zoom > 14 ? map : null; marker02.map = zoom > 15 ? map : null; marker03.map = zoom > 16 ? map : null; marker04.map = zoom > 17 ? map : null; } });
JavaScript
map.addListener("zoom_changed", () => { const zoom = map.getZoom(); if (zoom) { // Only show each marker above a certain zoom level. marker01.map = zoom > 14 ? map : null; marker02.map = zoom > 15 ? map : null; marker03.map = zoom > 16 ? map : null; marker04.map = zoom > 17 ? map : null; } });
Próximos pasos
Cómo configurar los marcadores para que sean accesibles y admitan la posibilidad de hacer clics