Personalizar o mapa de Contexto local

Neste exemplo, aplicamos a estilização de mapas personalizada ao mapa básico. Este mapa analisa Waikiki, no Havaí, e é estilizado com um esquema de cores tropicais. Também definimos maxPlaceCount como 18 para mostrar mais PDIs.

Entender o código

Acessar o mapa base

O mapa base pode ser acessado como a propriedade map de um objeto google.maps.localContext.LocalContextMapView. Esse mapa é um objeto google.maps.Map comum e pode ser personalizado com todos os parâmetros e métodos disponíveis para essa classe. Por exemplo, é possível adicionar marcadores personalizados e listeners de eventos.

var marker = new google.maps.Marker({position: center, map:  localContextMapView.map});
localContextMapView.map.addListener('click', () => {
    localContextMapView.hidePlaceDetailsView();
  });

Aplicar estilos personalizados

Como um google.maps.localContext.LocalContextMapView.map tem estilos padrão que são diferentes de um Map padrão, é possível substituir os padrões ou mesclar seu estilo personalizado com os padrões da Biblioteca do Contexto local. Consulte Estilizar o mapa para mais detalhes.

Para criar com estilos personalizados (stylesArray) usando como base os estilos padrão do LocalContextMapView:

TypeScript

// Merge map styles.
const mergedStyles = map.get("styles").concat(styles);

map.setOptions({
  center: center,
  zoom: 14,
  styles: mergedStyles,
});

JavaScript

// Merge map styles.
const mergedStyles = map.get("styles").concat(styles);

map.setOptions({
  center: center,
  zoom: 14,
  styles: mergedStyles,
});

Adicionar um marcador personalizado

Este exemplo usa um ícone de hotel para diferenciar o ponto central do marcador de alfinete vermelho padrão. Saiba como personalizar um marcador modificando as propriedades label e icon de um Marker.

Por padrão, esses marcadores aparecem abaixo dos marcadores de PDIs da Biblioteca do Contexto local. Para garantir que os marcadores da Biblioteca do Contexto local não ocultem o marcador personalizado, defina a propriedade zIndex dele como um valor maior do que o maxPlaceCount.

TypeScript

// Add a marker at the center point
new google.maps.Marker({
  position: center,
  map: map,
  icon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAdUlEQVR4AWMYOWAU/AfhYWMBCxA3A/FlIN4MxN7I6gjg80DcD8QC+CzIxqIxH6aOSHwfYQmmBZexuQymjgTcj8uCz1gUHybDgvO4LFiMRXE4GRb8x2UBDxCXQ8PxPdSrLNSxAD+g3ALCeNQCKoHhZcHAg1EAAM3cyWj3TGxhAAAAAElFTkSuQmCC",
  zIndex: 30,
});

JavaScript

// Add a marker at the center point
new google.maps.Marker({
  position: center,
  map: map,
  icon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAdUlEQVR4AWMYOWAU/AfhYWMBCxA3A/FlIN4MxN7I6gjg80DcD8QC+CzIxqIxH6aOSHwfYQmmBZexuQymjgTcj8uCz1gUHybDgvO4LFiMRXE4GRb8x2UBDxCXQ8PxPdSrLNSxAD+g3ALCeNQCKoHhZcHAg1EAAM3cyWj3TGxhAAAAAElFTkSuQmCC",
  zIndex: 30,
});

Testar amostra