Segui questi passaggi per aggiungere la libreria di contesto locale al progetto, inizializzare e configurare la visualizzazione mappa del contesto locale.
Abilitazione delle API e degli SDK richiesti
Per utilizzare la libreria di contesto locale, devi abilitare l'API Maps JavaScript e l'API Places. A tale scopo, segui le istruzioni per attivare uno o più SDK o API. Tieni presente che entrambe le API devono essere abilitate nello stesso progetto nella console Google Cloud.
Caricamento della libreria di contesto locale
Per caricare la libreria di contesto locale, carica l'API Maps JavaScript come faresti normalmente e includi i seguenti parametri:
libraries=localContext
carica la libreria di contesto locale.- Per utilizzare questa release è necessario
v=beta
. key
contiene la chiave API.callback
esegue la funzioneinitMap()
.
L'esempio seguente mostra un tag script con tutte le opzioni precedenti:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=localContext&v=beta&callback=initMap">
</script>
Creazione di una nuova visualizzazione della mappa del contesto locale
Per aggiungere la libreria di contesto locale a una pagina web, devi prima creare un'istanza LocalContextMapView
e impostare le proprietà desiderate:
element
: l'elementodiv
in cui deve essere visualizzata la mappa (in questo caso è denominato "mappa").placeTypePreferences
- tipi di luoghi che la Raccolta di contesto locale dovrebbe restituire (fino a 10).maxPlaceCount
: il numero massimo di luoghi da visualizzare (1-24).locationRestriction
(facoltativo): limita la ricerca del luogo a una località specifica. Utilizza per impostazione predefinita l'area visibile della mappa.
Una volta creata un'istanza LocalContextMapView
, puoi impostare le Opzioni mappa sull'istanza Map
interna. La mappa contenuta in LocalContextMapView
supporta tutte le stesse opzioni di mappa di una Maps
JavaScript standard di Maps. L'esempio seguente mostra la creazione di una nuova istanza LocalContextMapView
e l'impostazione di alcune opzioni sul valore Map
interno:
TypeScript
let map: google.maps.Map; function initMap() { const localContextMapView = new google.maps.localContext.LocalContextMapView({ element: document.getElementById("map"), placeTypePreferences: [ { type: "restaurant" }, { type: "tourist_attraction" }, ], maxPlaceCount: 12, }); map = localContextMapView.map!; map.setOptions({ center: { lat: 51.507307, lng: -0.08114 }, zoom: 14, }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
let map; function initMap() { const localContextMapView = new google.maps.localContext.LocalContextMapView({ element: document.getElementById("map"), placeTypePreferences: [ { type: "restaurant" }, { type: "tourist_attraction" }, ], maxPlaceCount: 12, }); map = localContextMapView.map; map.setOptions({ center: { lat: 51.507307, lng: -0.08114 }, zoom: 14, }); } window.initMap = initMap;
Posticipare il caricamento dei dati sul contesto locale
Puoi posticipare il caricamento dei dati sul contesto locale al momento dell'inizializzazione, impostando l'opzione LocalContextMapView
maxPlaceCount
su 0. Questo si verifica in situazioni in cui vuoi attendere che gli utenti siano pronti a visualizzare i dati. Quando è tutto pronto per caricare i dati sul contesto locale, imposta maxPlaceCount
su un valore pari o superiore a 1. L'esempio seguente mostra come
inizializzare la mappa senza caricare i dati di contesto locali e poi
impostare maxPlaceCount
per caricare i dati:
// Initialize without Local Context data.
const localContextMapView = new google.maps.localContext.LocalContextMapView({
element: document.querySelector('#map'),
placeTypePreferences: ['restaurant'],
maxPlaceCount: 0, // Avoids an automatic call to load places during initialization.
});
//...
// Show places now.
localContextMapView.maxPlaceCount = 12;
Attiva/disattiva la visualizzazione dell'UI del contesto locale
Puoi attivare/disattivare gli elementi dell'interfaccia utente del contesto locale impostando l'opzione LocalContextMapView
maxPlaceCount
su 0. Per visualizzare di nuovo l'interfaccia utente del contesto locale, imposta maxPlaceCount
su un valore pari o superiore a 1.
Impostazione delle dimensioni minime della mappa
La libreria di contesto locale cambia in modo adattabile la visualizzazione in base alle dimensioni visualizzate di LocalContextMapView
. Le dimensioni minime
supportate per LocalContextMapView
sono:
- 300 pixel x 480 pixel (verticale)
- 480 x 380 pixel (orizzontale)
Quando l'elemento contenitore di LocalContextMapView
scende al di sotto delle dimensioni minime supportate, gli elementi della libreria di contesto locale, inclusi il selettore di luoghi e i punti di interesse, non sono visibili.
Il livello di zoom del browser influisce sulle dimensioni minime supportate; ad esempio, se la finestra del browser viene ingrandita al 200%, le dimensioni minime supportate sono 600 x 960 (verticale) e 960 x 760 (orizzontale).
Consigli CSS
Le classi CSS nel DOM della libreria di contesto locale non fanno parte dell'API pubblica e non è supportato lo stile, la modifica o la selezione di elementi nel DOM della libreria di contesto locale. Consigliamo vivamente le seguenti linee guida per evitare conflitti di stile DOM e garantire che la visualizzazione della mappa della libreria di contesto locale venga visualizzata correttamente:
- Non utilizzare le classi CSS della libreria di contesto locale, poiché potrebbero cambiare senza preavviso.
- Non applicare uno stile, modificare o selezionare elementi all'interno del DOM della libreria di contesto locale.
Se utilizzi un framework CSS che apporta tali modifiche, potresti essere in grado di aggirare i conflitti di stile.
Ad esempio, se vuoi modificare la pagina complessiva box-sizing
in border-box
:
- Utilizza
box-sizing
override che impostano l'elemento<html>
suborder-box
. - Utilizza
box-sizing: initial
per l'elemento contenente la visualizzazione mappa della Libreria contesto locale. - Utilizza
box-sizing: inherit
per tutti gli altri elementi.
Ciò garantisce che il DOM della libreria di contesto locale abbia box-sizing
ripristinato ai valori predefiniti standard con un selettore a bassa specificità.
Ecco come si presenta nel codice:
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
.container-for-google-maps {
box-sizing: initial;
}