Siga estas etapas para adicionar a Biblioteca do Contexto local ao seu projeto, inicializar e configurar a visualização de mapa do Contexto local.
Ativar as APIs e os SDKs necessários
Para usar a Biblioteca do Contexto local, ative as APIs Maps JavaScript e Places. Siga as instruções para Ativar uma ou mais APIs ou SDKs. As duas APIs precisam estar ativadas no mesmo projeto no Console do Google Cloud.
Carregar a Biblioteca do Contexto local
Para carregar a Biblioteca do Contexto local, carregue a API Maps JavaScript normalmente e inclua os seguintes parâmetros:
libraries=localContext
carrega a Biblioteca do Contexto local.v=beta
é necessário para usar esta versão.key
contém sua chave de API.callback
executa a funçãoinitMap()
.
O exemplo a seguir mostra uma tag de script com todas as opções mencionadas acima:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=localContext&v=beta&callback=initMap">
</script>
Criar uma nova visualização de mapa do Contexto local
Para adicionar a Biblioteca do Contexto local a uma página da Web, primeiro crie uma instância de LocalContextMapView
e defina as propriedades:
element
: o elementodiv
em que o mapa deve ser mostrado (nesse caso, é chamado de "mapa").placeTypePreferences
: tipos de lugar que a Biblioteca do Contexto local precisa retornar (até 10).maxPlaceCount
: o número máximo de lugares a serem mostrados (1 a 24).locationRestriction
(opcional): restringe a pesquisa de lugar a um local específico. O padrão é a janela de visualização do mapa.
Quando você tiver uma instância de LocalContextMapView
, defina as opções de mapa
na instância interna do Map
. O mapa contido por um LocalContextMapView
é compatível com as mesmas opções de um mapa da API Maps JavaScript padrão. O exemplo a seguir mostra a criação de uma nova instância de LocalContextMapView
e a configuração de algumas opções no 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;
Adiar o carregamento de dados do Contexto local
É possível adiar o carregamento de dados do Contexto local no momento da inicialização. Para isso, defina a opção LocalContextMapView
maxPlaceCount
como 0. Isso é útil em situações em que você quer esperar até que os usuários estejam prontos para ver os dados. Quando estiver tudo pronto para carregar os dados do Contexto local, defina maxPlaceCount
como um valor de 1 ou mais. O exemplo a seguir mostra a inicialização do mapa sem carregar os dados do Contexto local e, em seguida, a definição de maxPlaceCount
para carregar os dados:
// 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;
Mudar como a IU do Contexto local aparece
Para alternar os elementos da interface do usuário do Contexto local, defina a opção LocalContextMapView
maxPlaceCount
como 0. Para mostrar a interface do usuário do Contexto local novamente, defina maxPlaceCount
como um valor de 1 ou mais.
Definir dimensões mínimas do mapa
A Biblioteca do Contexto local muda de forma responsiva a tela com base no tamanho renderizado do LocalContextMapView
. As dimensões mínimas compatíveis de LocalContextMapView
são:
- 300 x 480 pixels (retrato)
- 480 x 380 pixels (paisagem)
Quando o elemento que contém LocalContextMapView
fica abaixo das dimensões mínimas, os elementos da Biblioteca do Contexto local (incluindo o seletor de lugar e os pontos de interesse) não aparecem.
O nível de zoom do navegador afeta as dimensões mínimas. Por exemplo, se a janela do navegador for ampliada para 200%, as dimensões mínimas serão 600 x 960 (retrato) e 960 x 760 (paisagem).
Recomendações de CSS
As classes CSS no DOM da Biblioteca do Contexto local não fazem parte da API public, e o estilo, a modificação ou a seleção de elementos não são compatíveis. Recomendamos as seguintes diretrizes para evitar conflitos de estilo do DOM e garantir que a visualização de mapa da Biblioteca do Contexto local seja mostrada corretamente:
- Não use as classes CSS da Biblioteca do Contexto local, porque elas podem mudar sem aviso prévio.
- Não defina estilos, modifique ou selecione elementos no DOM da Biblioteca do Contexto local.
Se você usa um framework CSS que faz essas modificações, é possível resolver conflitos de estilo.
Por exemplo, se você quiser mudar a página geral box-sizing
para border-box
:
- Use substituições de
box-sizing
que definem o elemento<html>
comoborder-box
. - Use
box-sizing: initial
para o elemento que contém a visualização de mapa da Biblioteca do Contexto local. - Use
box-sizing: inherit
para todos os outros elementos.
Isso garante que o DOM da Biblioteca do Contexto local redefina box-sizing
ao padrão com um seletor de baixa especificidade.
Veja como isso fica no código:
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
.container-for-google-maps {
box-sizing: initial;
}