Introduzione
Questo tutorial mostra come aggiungere una semplice mappa di Google con un indicatore a una pagina web. È adatto a persone con un livello di conoscenza principiante o intermedio di HTML e CSS e un po' di conoscenza di JavaScript. Per una guida avanzata alla creazione di mappe, leggi la guida per gli sviluppatori.
Di seguito è riportata la mappa che creerai con questo tutorial. L'indicatore è posizionato a Uluru (noto anche come Ayers Rock) nel Parco nazionale di Uluru-Kata Tjuta.
TypeScript
// Initialize and add the map let map; async function initMap(): Promise<void> { // The location of Uluru const position = { lat: -25.344, lng: 131.031 }; // Request needed libraries. //@ts-ignore const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary; // The map, centered at Uluru map = new Map( document.getElementById('map') as HTMLElement, { zoom: 4, center: position, mapId: 'DEMO_MAP_ID', } ); // The marker, positioned at Uluru const marker = new AdvancedMarkerElement({ map: map, position: position, title: 'Uluru' }); } initMap();
JavaScript
// Initialize and add the map let map; async function initMap() { // The location of Uluru const position = { lat: -25.344, lng: 131.031 }; // Request needed libraries. //@ts-ignore const { Map } = await google.maps.importLibrary("maps"); const { AdvancedMarkerElement } = await google.maps.importLibrary("marker"); // The map, centered at Uluru map = new Map(document.getElementById("map"), { zoom: 4, center: position, mapId: "DEMO_MAP_ID", }); // The marker, positioned at Uluru const marker = new AdvancedMarkerElement({ map: map, position: position, title: "Uluru", }); } initMap();
CSS
/* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }
HTML
<html> <head> <title>Add Map</title> <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script> <link rel="stylesheet" type="text/css" href="./style.css" /> <script type="module" src="./index.js"></script> </head> <body> <h3>My Google Maps Demo</h3> <!--The div element for the map --> <div id="map"></div> <!-- prettier-ignore --> <script>(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))}) ({key: "AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg", v: "beta"});</script> </body> </html>
Prova di esempio
Come iniziare
Per creare una mappa Google con un indicatore sulla pagina web sono necessari tre passaggi:
È necessario un browser web. Scegline una nota come Google Chrome (opzione consigliata), Firefox, Safari o Edge, in base alla tua piattaforma nell'elenco dei browser supportati.
Passaggio 1: crea una pagina HTML
Ecco il codice per una pagina web HTML di base:
<!DOCTYPE html> <!-- @license Copyright 2019 Google LLC. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 --> <html> <head> <title>Add Map</title> <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script> <link rel="stylesheet" type="text/css" href="./style.css" /> <script type="module" src="./index.js"></script> </head> <body> <h3>My Google Maps Demo</h3> <!--The div element for the map --> <div id="map"></div> <!-- prettier-ignore --> <script>(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))}) ({key: "AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg", v: "beta"});</script> </body> </html>
Tieni presente che si tratta di una pagina molto semplice con un livello di intestazione tre (h3
) e un singolo elemento div
. Puoi aggiungere alla pagina web qualsiasi contenuto di tuo interesse.
Nozioni di base sul codice
Il codice seguente crea una pagina HTML composta da un corpo e da un'intestazione.
<html> <head> </head> <body> </body> </html>
Puoi aggiungere un livello di intestazione tre sopra la mappa utilizzando il codice seguente.
<h3>My Google Maps Demo</h3>
Il codice seguente definisce un'area della pagina sulla tua mappa Google.
<!--The div element for the map --> <div id="map"></div>
In questa fase del tutorial, div
appare solo come un blocco grigio, perché
non hai ancora aggiunto una mappa. Il codice seguente descrive il CSS che imposta la dimensione e il colore del div
.
/* Set the size of the div element that contains the map */ #map { height: 400px; /* The height is 400 pixels */ width: 100%; /* The width is the width of the web page */ }
Nel codice riportato sopra, l'elemento style
imposta le dimensioni div
per la mappa. Imposta la larghezza e l'altezza div
su un valore superiore a 0 px per rendere visibile la mappa. In questo caso, il valore div
è impostato su un'altezza di 400 pixel e una larghezza del 100% per essere visualizzata per tutta la larghezza della pagina web.
Il bootstrap prepara l'API Maps JavaScript per il caricamento (non vengono caricate librerie fino alla chiamata di importLibrary()
).
<script> (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({ key: "YOUR_API_KEY_HERE", v: "weekly", // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.). // Add other bootstrap parameters as needed, using camel case. }); </script>
Consulta il Passaggio 3: recupera una chiave API per istruzioni su come ottenere la tua chiave API.
Passaggio 2: aggiungi una mappa con un indicatore
Questa sezione mostra come caricare l'API Maps JavaScript nella tua pagina web e come scrivere il tuo codice JavaScript che utilizza l'API per aggiungere una mappa con un indicatore.
TypeScript
// Initialize and add the map let map; async function initMap(): Promise<void> { // The location of Uluru const position = { lat: -25.344, lng: 131.031 }; // Request needed libraries. //@ts-ignore const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary; // The map, centered at Uluru map = new Map( document.getElementById('map') as HTMLElement, { zoom: 4, center: position, mapId: 'DEMO_MAP_ID', } ); // The marker, positioned at Uluru const marker = new AdvancedMarkerElement({ map: map, position: position, title: 'Uluru' }); } initMap();
JavaScript
// Initialize and add the map let map; async function initMap() { // The location of Uluru const position = { lat: -25.344, lng: 131.031 }; // Request needed libraries. //@ts-ignore const { Map } = await google.maps.importLibrary("maps"); const { AdvancedMarkerElement } = await google.maps.importLibrary("marker"); // The map, centered at Uluru map = new Map(document.getElementById("map"), { zoom: 4, center: position, mapId: "DEMO_MAP_ID", }); // The marker, positioned at Uluru const marker = new AdvancedMarkerElement({ map: map, position: position, title: "Uluru", }); } initMap();
Nel codice riportato sopra, le librerie Map
e AdvancedMarkerView
vengono caricate quando viene chiamata la funzione initMap()
.
Nozioni di base sul codice
Il codice riportato di seguito crea un nuovo oggetto di Google Maps e aggiunge proprietà alla mappa, tra cui il centro e il livello di zoom. Consulta la documentazione per altre opzioni di proprietà.
TypeScript
// The location of Uluru const position = { lat: -25.344, lng: 131.031 }; // Request needed libraries. //@ts-ignore const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary; // The map, centered at Uluru map = new Map( document.getElementById('map') as HTMLElement, { zoom: 4, center: position, mapId: 'DEMO_MAP_ID', } );
JavaScript
// The location of Uluru const position = { lat: -25.344, lng: 131.031 }; // Request needed libraries. //@ts-ignore const { Map } = await google.maps.importLibrary("maps"); const { AdvancedMarkerElement } = await google.maps.importLibrary("marker"); // The map, centered at Uluru map = new Map(document.getElementById("map"), { zoom: 4, center: position, mapId: "DEMO_MAP_ID", });
Nel codice riportato sopra, new Map()
crea un nuovo oggetto di Google Maps. La proprietà center
indica all'API dove centrare la mappa.
Scopri di più su come ottenere le coordinate di latitudine/longitudine o convertire un indirizzo in coordinate geografiche.
La proprietà zoom
specifica il livello di zoom della mappa. Zoom: 0 è lo zoom più basso
e visualizza l'intero Earth. Imposta un valore più alto per lo zoom sulla Terra a risoluzioni maggiori.
Il codice di seguito posiziona un indicatore sulla mappa. La proprietà position
imposta la
posizione dell'indicatore.
TypeScript
// The marker, positioned at Uluru const marker = new AdvancedMarkerElement({ map: map, position: position, title: 'Uluru' });
JavaScript
// The marker, positioned at Uluru const marker = new AdvancedMarkerElement({ map: map, position: position, title: "Uluru", });
Scopri di più sugli indicatori:
Passaggio 3: recupera una chiave API
Questa sezione spiega come autenticare la tua app nell'API Maps JavaScript utilizzando la tua chiave API.
Per recuperare una chiave API, segui questi passaggi:
Vai alla console Google Cloud.
Crea o seleziona un progetto.
Fai clic su Continua per abilitare l'API e tutti i servizi correlati.
Nella pagina Credenziali, recupera una chiave API (e imposta le restrizioni della chiave API). Nota: se hai una chiave API senza restrizioni esistente o una chiave con restrizioni del browser, puoi utilizzarla.
Per evitare furti di quota e proteggere la tua chiave API, consulta Utilizzo delle chiavi API.
Abilitare la fatturazione. Per ulteriori informazioni, consulta Utilizzo e fatturazione.
Copia l'intero codice di questo tutorial nell'editor di testo.
Sostituisci il valore del parametro
key
nell'URL con la tua chiave API (ossia la chiave API appena ottenuta).<script> (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({ key: "YOUR_API_KEY_HERE", v: "weekly", // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.). // Add other bootstrap parameters as needed, using camel case. }); </script>
Salva questo file con un nome che termina con
.html
, ad esempioindex.html
.Carica il file HTML in un browser web trascinandolo dal desktop sul browser. In alternativa, fare doppio clic sul file funziona sulla maggior parte dei sistemi operativi.
Suggerimenti e risoluzione dei problemi
- Puoi personalizzare opzioni come stile e proprietà per personalizzare la mappa. Per ulteriori informazioni sulla personalizzazione delle mappe, leggi le guide all'applicazione di stili e al disegno sulla mappa.
- Utilizza la Console Strumenti per sviluppatori nel browser web per testare ed eseguire il codice, leggere i report sugli errori e risolvere i problemi con il tuo codice.
- Utilizza le seguenti scorciatoie da tastiera per aprire la console in Chrome:
Comando+Opzione+J (su Mac) o Ctrl+Maiusc+J (su Windows). Procedi come descritto di seguito per ottenere le coordinate di latitudine e longitudine di una località su Google Maps.
- Apri Google Maps in un browser.
- Fai clic con il tasto destro del mouse sulla posizione esatta sulla mappa per cui vuoi richiedere le coordinate.
- Seleziona Che cosa c'è qui nel menu contestuale visualizzato. La mappa mostra una scheda nella parte inferiore dello schermo. Trova le coordinate di latitudine e longitudine nell'ultima riga della scheda.
Puoi convertire un indirizzo in coordinate di latitudine e longitudine utilizzando il servizio di geocodifica. Le guide per gli sviluppatori forniscono informazioni dettagliate su come iniziare a utilizzare il servizio Geocoding.