Questa pagina mostra come controllare i seguenti aspetti dei marcatori avanzati:
- Impostare il comportamento di collisione per un indicatore
- Imposta l'altitudine del marker
- Controllare la visibilità dei marker in base al livello di zoom della mappa
Impostare il comportamento di collisione per un indicatore
Il comportamento di collisione controlla la modalità di visualizzazione di un indicatore in caso di collisione (sovrapposizione) con un altro indicatore. Il comportamento di collisione è supportato solo sulle mappe vettoriali.
Per impostare il comportamento di collisione, imposta AdvancedMarkerElement.collisionBehavior
su uno dei seguenti valori:
REQUIRED
: (impostazione predefinita) mostra sempre il marcatore indipendentemente dalla collisione.OPTIONAL_AND_HIDES_LOWER_PRIORITY
Mostra il marcatore solo se non si sovrappone ad altri marcatori. Se due indicatori di questo tipo si sovrappongono, viene visualizzato quello conzIndex
più elevato. Se hanno lo stessozIndex
, viene visualizzato quello con la posizione verticale dello schermo più bassa.REQUIRED_AND_HIDES_OPTIONAL
Mostra sempre l'indicatore indipendentemente dalla collisione e nascondi gli indicatori o le etichetteOPTIONAL_AND_HIDES_LOWER_PRIORITY
che si sovrappongono all'indicatore.
Il seguente esempio mostra l'impostazione del comportamento di collisione per un indicatore:
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, });
Imposta l'altitudine del marker
Nelle mappe vettoriali, puoi impostare l'altitudine alla quale viene visualizzato un indicatore. Questa impostazione è utile per far apparire correttamente i marcatori in relazione ai contenuti della mappa 3D. Per impostare
l'altitudine di un indicatore, specifica LatLngAltitude
come valore per l'opzione
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 }, });
Controllare la visibilità dei marker in base al livello di zoom della mappa
Visualizza la modifica della visibilità dei marcatori (inizia riducendo lo zoom):
Per controllare la visibilità di un indicatore avanzato, crea un listener zoom_changed
e aggiungi una funzione condizionale per impostare AdvancedMarkerElement.map
su null
se lo zoom supera il livello specificato, come mostrato nell'esempio seguente:
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; } });
Passaggi successivi
Rendere i segnaposto cliccabili e accessibili