Mappe vettoriali

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

La mappa vettoriale è la stessa mappa Google con cui gli utenti hanno familiarità e offre numerosi vantaggi rispetto alla mappa a riquadri raster predefinita, in particolare la nitidezza delle immagini basate su vettori 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 dell'inclinazione e dell'intestazione programmatico, il controllo migliorato della fotocamera e lo zoom frazionario per uno zoom più fluido.

Inizia a utilizzare le mappe vettoriali

Controllare la videocamera

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 consente di eseguire lo zoom utilizzando valori frazionari anziché numeri interi. Entrambe le mappe raster e vettoriali supportano lo zoom frazionario, mentre quello frazionario è attivo per impostazione predefinita per le mappe vettoriali e disattivato per le mappe raster. Utilizza l'opzione mappa isFractionalZoomEnabled per attivare o disattivare lo zoom frazionario.

Il seguente esempio 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 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 è attivato. Questa operazione è particolarmente utile se non hai impostato esplicitamente isFractionalZoomEnabled su true o false. Il seguente codice di esempio verifica 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');
  }
});