Mappe vettoriali

L'API Maps JavaScript offre due diverse implementazioni della mappa: raster e vettoriale. La mappa raster viene caricata per impostazione predefinita e caricata come una griglia di riquadri di immagini raster basati su pixel, generati dal lato server di Google Maps Platform e poi pubblicati nella tua app web. La mappa vettoriale è composta da riquadri vettoriali, che vengono disegnati sul lato client al momento del caricamento tramite WebGL, una tecnologia web che consente al browser di accedere alla GPU sul dispositivo di grafica 2D e 3D dell'utente.

La mappa vettoriale è la stessa mappa di Google che i tuoi utenti conoscono e offre una serie di vantaggi rispetto alla mappa riquadro raster predefinita, in particolare la nitidezza delle immagini vettoriali e l'aggiunta di edifici 3D a livelli di zoom ravvicinati. La mappa vettoriale supporta anche alcune nuove funzionalità, come la possibilità di aggiungere contenuti 3D con la visualizzazione sovrapposta WebGL, il controllo programmatico dell'inclinazione e delle intestazioni, il controllo avanzato della videocamera e lo zoom frazionario per uno zoom più fluido.

Iniziare a utilizzare Vector Maps

Controllare la fotocamera

Utilizza la funzione map.moveCamera() per aggiornare contemporaneamente qualsiasi combinazione di proprietà della fotocamera. map.moveCamera() accetta un singolo parametro contenente tutte le proprietà della fotocamera da aggiornare. L'esempio seguente mostra la chiamata a map.moveCamera() per impostare center, zoom, heading e tilt contemporaneamente:

map.moveCamera({
  center: new google.maps.LatLng(37.7893719, -122.3942),
  zoom: 16,
  heading: 320,
  tilt: 47.5
});

Puoi animare le proprietà della fotocamera chiamando map.moveCamera() con un loop di animazione, come mostrato qui:

const degreesPerSecond = 3;

function animateCamera(time) {
  // Update the heading, leave everything else as-is.
  map.moveCamera({
    heading: (time / 1000) * degreesPerSecond
  });

  requestAnimationFrame(animateCamera);
}

// Start the animation.
requestAnimationFrame(animateCamera);

Zoom frazionario

Le mappe vettoriali supportano lo zoom frazionario, che ti consente di eseguire lo zoom utilizzando valori frazionari anziché numeri interi. Sebbene sia le mappe raster che quelle vettoriali supportano lo zoom frazionario, lo zoom frazionario è attivo per impostazione predefinita per le mappe vettoriali e disattivato per le mappe raster. Usa l'opzione della mappa isFractionalZoomEnabled per attivare e disattivare lo zoom frazionario.

L'esempio seguente mostra l'attivazione dello zoom frazionario durante l'inizializzazione della mappa:

map = new google.maps.Map(document.getElementById('map'), {
  center: {lat: -34.397, lng: 150.644},
  zoom: 8,
  isFractionalZoomEnabled: true
});

Puoi anche attivare e disattivare lo zoom frazionario impostando l'opzione della mappa isFractionalZoomEnabled come mostrato qui:

// Using map.set
map.set('isFractionalZoomEnabled', true);

// Using map.setOptions
map.setOptions({isFractionalZoomEnabled: true});

Puoi impostare un listener per rilevare se lo zoom frazionario è attivo; questa operazione è particolarmente utile se non hai impostato esplicitamente isFractionalZoomEnabled su true o false. Il codice di esempio seguente controlla se lo zoom frazionario è abilitato:

map.addListener('isfractionalzoomenabled_changed', () => {
  const isFractionalZoomEnabled = map.get('isFractionalZoomEnabled');
  if (isFractionalZoomEnabled === false) {
    console.log('not using fractional zoom');
  } else if (isFractionalZoomEnabled === true) {
    console.log('using fractional zoom');
  } else {
    console.log('map not done initializing yet');
  }
});