Com opções de estilo, você pode personalizar a apresentação de estilos de mapa Google padrão, alterando o visual dos componentes, como vias, estacionamentos, estabelecimentos e outros pontos de interesse. Assim como alterar o estilo desses recursos, você pode ocultá-los totalmente. Isso significa que você pode enfatizar componentes específicos do mapa ou fazer o mapa complementar o estilo da página em que está inserido.
Exemplos
A declaração de estilo em JSON a seguir deixa todos os componentes do mapa cinzas, colore a geometria de vias arteriais em azul e oculta totalmente as etiquetas das paisagens:
[
{
"featureType": "all",
"stylers": [
{ "color": "#C0C0C0" }
]
},{
"featureType": "road.arterial",
"elementType": "geometry",
"stylers": [
{ "color": "#CCFFFF" }
]
},{
"featureType": "landscape",
"elementType": "labels",
"stylers": [
{ "visibility": "off" }
]
}
]
O objeto JSON
Uma declaração de estilo JSON consiste nos dois elementos a seguir:
- featureType (opcional) - os recursos a selecionar para essa modificação de estilo. Recursos são características geográficas do mapa, que incluem vias, estacionamentos, corpos hídricos e outros. Se você não especificar um recurso, todos os recursos serão selecionados.
- elementType (opcional) - a propriedade do recurso específico a selecionar. Elementos são subpartes de um recurso, incluindo etiquetas e geometria. Se você não especificar um elemento, todos os elementos do recurso serão selecionados.
- stylers - as regras a aplicar aos recursos e elementos selecionados. Os estilizadores indicam a cor, a visibilidade e o peso do recurso. Você pode aplicar um ou mais estilizadores a um recurso.
Para especificar um estilo, é preciso combinar um conjunto de seletores featureType e elementType e os stylers em uma matriz de estilo. Você pode definir qualquer combinação de recursos em uma única matriz. No entanto, há um limite para o número de estilos que se pode aplicar de uma vez só. Se a matriz de estilo exceder o limite de caracteres, nenhum estilo será aplicado.
O resto desta página tem mais informações sobre recursos, elementos e estilizadores.
featureType
O snippet em JSON a seguir seleciona todas as vias do mapa:
{
"featureType": "road"
}
Recursos, ou tipos de recurso, são características geográficas do mapa, que incluem estradas, parques, corpos hídricos, estabelecimentos e outros.
Os recursos formam uma árvore de categorias, com all sendo a raiz. Se você não especificar um recurso, todos os recursos serão selecionados. Especificar um recurso de all produz o mesmo efeito.
Alguns recursos contêm recursos secundários que se especifica usando um ponto. Por exemplo, landscape.natural ou road.local. Se você só especificar o recurso primário, como road, os estilos definidos para o primário aplicam-se a todos os seus secundários, como road.local e road.highway.
Observe que recursos primários podem conter elementos não incluídos em todos os seus secundários.
Os seguintes recursos estão disponíveis:
all(padrão) seleciona todos os recursos.administrativeseleciona todas as áreas administrativas. A aplicação de estilo afeta somente as etiquetas de áreas administrativas, não de bordas nem preenchimento geográficos.administrative.countryseleciona países.administrative.land_parcelseleciona partes de terra.administrative.localityseleciona localidades.administrative.neighborhoodseleciona bairros.administrative.provinceseleciona províncias.
landscapeseleciona todas as paisagens naturais.landscape.man_madeseleciona estruturas construídas pelo homem.landscape.naturalseleciona recursos naturais.landscape.natural.landcoverseleciona propriedades da camada da superfície do solo.landscape.natural.terrainseleciona propriedades de terreno.
poiseleciona todos os pontos de interesse.poi.attractionseleciona locais turísticos.poi.businessseleciona estabelecimentos.poi.governmentseleciona edifícios públicos.poi.medicalseleciona serviços de emergência, incluindo hospitais, farmácias, polícia, médicos e outros.poi.parkseleciona estacionamentos.poi.place_of_worshipseleciona locais de culto, incluindo igrejas, templos, mesquitas e outros.poi.schoolseleciona escolas.poi.sports_complexseleciona complexos esportivos.
roadseleciona todas as vias.road.arterialseleciona vias arteriais.road.highwayseleciona rodovias.road.highway.controlled_accessseleciona rodovias com acesso controlado.road.localseleciona vias locais.
transitseleciona todas as estações e linhas de trânsito.transit.lineseleciona linhas de trânsito.transit.stationseleciona todas as estações de trânsito.transit.station.airportseleciona aeroportos.transit.station.busseleciona pontos de ônibus.transit.station.railseleciona estações de trem e metrô.
waterseleciona corpos hídricos.
elementType
O snippet em JSON a seguir seleciona as etiquetas de todas as vias locais:
{
"featureType": "road.local",
"elementType": "labels"
}
Elementos são subdivisões de um recurso. Uma via, por exemplo, é composta pela linha gráfica (a geometria) no mapa, e pelo texto que indica seu nome (uma etiqueta).
Os elementos a seguir estão disponíveis, mas observe que um recurso específico pode oferecer suporte a todos, alguns ou nenhum dos elementos:
all(padrão) selecione todos os elementos do recurso especificado.geometryseleciona todos os elementos geométricos do recurso especificado.geometry.fillseleciona apenas o preenchimento da geometria do recurso.geometry.strokeseleciona apenas o traço da geometria do recurso.
labelsseleciona as etiquetas de texto associadas ao recurso especificado.labels.iconseleciona apenas o ícone exibido no rótulo do recurso.labels.textseleciona apenas o texto do rótulo.labels.text.fillseleciona apenas o preenchimento do rótulo. Normalmente, o preenchimento de um rótulo é renderizado como um contorno colorido que rodeia o texto do rótulo.labels.text.strokeseleciona apenas o traço do texto do rótulo.
stylers
Estilizadores são opções de formatação aplicáveis a recursos e elementos de um mapa.
O snippet em JSON a seguir exibe um recurso em verde brilhante, usando um valor RGB:
"stylers": [
{ "color": "#99FF33" }
]
Esse snippet remove toda a intensidade da cor do recurso, independentemente da cor inicial. O efeito é renderizar a escala de cinza do recurso:
"stylers": [
{ "saturation": -100 }
]
Este snippet esconde o recurso totalmente:
"stylers": [
{ "visibility": "off" }
]
As seguintes opções de estilo são oferecidas:
hue(uma string hexadecimal em RGB de formato#RRGGBB) indica a cor básica.Observação: Essa opção define o matiz ao mesmo tempo em que mantém a saturação e o tom especificados no estilo Google padrão (ou em outras opções de estilo que você definir no mapa). A cor resultante tem relação com o estilo do mapa de base. Se o Google fizer alguma alteração no estilo do mapa de base, ela afetará os recursos do seu mapa estilizados com
hue. Se possível, é melhor usar um estilizadorcolorabsoluto.lightness(um valor de ponto flutuante entre-100e100) indica a mudança percentual de brilho do elemento. Valores negativos reduzem o brilho (-100 especifica a cor preta) e valores negativos aumentam o brilho (+100 especifica a cor branca).Observação: Essa opção define o tom ao mesmo tempo em que mantém a saturação e o matiz especificados no estilo Google padrão (ou em outras opções de estilo que você definir no mapa). A cor resultante tem relação com o estilo do mapa de base. Se o Google fizer alguma alteração no estilo do mapa de base, ela afetará os recursos do seu mapa estilizados com
lightness. Se possível, é melhor usar um estilizadorcolorabsoluto.saturation(um valor de ponto flutuante entre-100e100) indica a mudança percentual na intensidade da cor básica a ser aplicada ao elemento.Observação: Essa opção define a saturação ao mesmo tempo em que mantém o matiz e o tom especificados no estilo Google padrão (ou em outras opções de estilo que você definir no mapa). A cor resultante tem relação com o estilo do mapa de base. Se o Google fizer alguma alteração no estilo do mapa de base, ela afetará os recursos do seu mapa estilizados com
saturation. Se possível, é melhor usar um estilizadorcolorabsoluto.gamma(um valor de ponto flutuante entre0.01e10.0, onde1.0não aplica correções) indica a quantidade de correção de gama a ser aplicada ao elemento. As correções de gama modificam o tom das cores de maneira não linear, embora não afetem valores de branco e preto. Normalmente se usa esse recurso para modificar o contraste de vários elementos. Por exemplo, é possível modificar a gama para aumentar ou diminuir o contraste entre as margens e o interior dos elementos.Observação: Essa opção ajusta o tom relacionado ao estilo Google padrão usando uma curva de gama. Se o Google fizer alguma alteração no estilo do mapa de base, ela afetará os recursos do seu mapa estilizados com
gama. Se possível, é melhor usar um estilizadorcolorabsoluto.invert_lightness(setrue) inverte o tom atual. Isso é útil, por exemplo, para alternar rapidamente para um mapa mais escuro com texto em branco.Observação: Essa opção simplesmente inverte o estilo Google padrão. Se o Google fizer alguma alteração no estilo do mapa de base, ela afetará os recursos do seu mapa estilizados com
invert_lightness. Se possível, é melhor usar um estilizadorcolorabsoluto.visibility(on,offousimplified) indica se e como o elemento é exibido no mapa. Uma visibilidadesimplifiedremove alguns recursos de estilo dos recursos afetados. Por exemplo, vias são simplificadas para linhas mais finas sem contornos e parques deixam de ter o texto dos rótulos, mas retêm o ícone do rótulo.color(uma string hexadecimal em RGB de formato#RRGGBB) define a cor do recurso.weight(um valor inteiro, maior ou igual a zero) define o peso do recurso, em pixels. Um valor alto de peso pode resultar em truncamento perto das margens da borda.
As regras de estilo se aplicam na ordem em que forem especificadas. Não combine operações em uma única operação de estilo. Em vez disso, defina cada operação como uma entrada separada na matriz de estilo.
Observação: A ordem é importante, pois algumas operações não são comutativas. Recursos e/ou elementos modificados por meio de operações de estilo (normalmente) já têm estilos. Caso haja estilos, as operações os modificam.
O modelo matiz, saturação e tom
Mapas estilizados usam o modelo matiz, saturação e tom (HSL, na sigla em inglês) para detonar cor nas operações de estilo. A tonalidade é a cor básica, a saturação é a intensidade dessa cor e o brilho é a quantidade relativa de branco ou preto na cor constituinte.
A correção de gama modifica o tom no espaço da cor, geralmente aumentando ou reduzindo o contraste. Além disso, o modelo de HSL define a cor dentro de um espaço coordenado, ondehue indica a orientação em uma paleta de cores e saturation e lightness indicam amplitudes em diferentes eixos. Tonalidades são medidas dentro de um espaço de cor RGB, que é similar à maioria dos espaços de cor RGB, mas sem os tons de preto e branco.

Embora hue assuma um valor de cor hexadecimal HTML, só usa este valor para determinar a cor básica — ou seja, sua orientação na paleta de cores, não definindo saturação nem tom, que são indicados em separado como mudanças percentuais.
Por exemplo, você pode definir o matiz de verde puro como hue:0x00ff00 ou hue:0x000100. Ambas as matizes são idênticas. Ambos os valores apontam para o verde puro no modelo de cor HSL.

Uma paleta de cores RGB
Os valores em RGB de hue, que consiste em frações ideais de vermelho, verde e azul não indicam um matiz, porque nenhum desses valores indica uma orientação no espaço de coordenadas HSL. Alguns exemplos são "#000000" (preto), "#FFFFFF" (branco), e todos os tons puros de cinza. Para indicar preto, branco ou cinza, remova todos os valores de saturation (defina o valor como -100) e ajuste lightness.
Além disso, ao modificar recursos existentes que já têm um esquema de cores, alterar um valor como hue não altera os valores existentes para saturation ou lightness.
