

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Mapas do Amazon Location Service
<a name="maps"></a>

![\[Map icon leading to SDK package, then to multiple devices showing maps.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/maps-overview.png)


O Amazon Location Service Maps oferece acesso aos dados básicos do mapa de 190 países com 5 milhões de atualizações diárias. Os recursos de mapas estáticos e dinâmicos oferecem flexibilidade para atender às diversas necessidades do usuário e fornecer soluções de mapeamento imersivas e contextualmente relevantes.

## Oferta de mapas
<a name="maps-offering"></a>

O Amazon Location Service oferece mapas dinâmicos e estáticos.

**Mapas dinâmicos**  
Use estilos de AWS mapa, incluindo padrão, monocromático, híbrido e satélite. Adicione mapas interativos ao seu aplicativo usando o estilo de AWS mapa e o mecanismo de [MapLibre](https://maplibre.org/)renderização. Os mapas dinâmicos oferecem suporte a gestos, incluindo zoom, panorâmica, atenuação, voo, inclinação, rotação e orientação. Para obter mais detalhes, consulte [mapas dinâmicos](https://docs.aws.amazon.com/location/latest/developerguide/dynamic-maps.html).

**Mapas estáticos**  
Use o mapa estático URLs para incorporar imagens de mapas simples em sites, relatórios ou e-mails sem um mecanismo de renderização de mapas. Os mapas estáticos oferecem suporte a sobreposições, incluindo marcadores (pinos), rotas e áreas poligonais para sua aplicação. Para obter mais detalhes, consulte [mapas estáticos](https://docs.aws.amazon.com/location/latest/developerguide/static-maps.html).

## Estilos de mapa pré-construídos
<a name="prebuilt-map-styles"></a>

AWS os estilos de mapas seguem as convenções reconhecidas do setor e oferecem uma aparência visual refinada e profissional. Esses estilos prontos aceleram o desenvolvimento sem exigir um design cartográfico personalizado. Crie mapas atraentes e prontos para o usuário com o mínimo esforço. Para obter mais detalhes, consulte [Estilos de mapas da AWS](https://docs.aws.amazon.com/location/latest/developerguide/map-styles.html).

## Recursos
<a name="maps-features"></a>

AWS Os recursos do mapa fornecem opções de visualização aprimoradas para dados geográficos, [topográficos](https://docs.aws.amazon.com/location/latest/developerguide/maps-topographic-map.html) e de [navegação](https://docs.aws.amazon.com/location/latest/developerguide/maps-navigation-map.html), como trânsito, logística e dados de tráfego em tempo real. Crie experiências de mapas informativas e contextuais adaptadas às suas necessidades específicas. AWS os mapas oferecem suporte à [internacionalização e localização](https://docs.aws.amazon.com/location/latest/developerguide/maps-localization-internationalization.html), incluindo visões políticas e idiomas. Escolha Ponto de interesse (POI) e [esquemas de cores](https://docs.aws.amazon.com/location/latest/developerguide/maps-color-scheme.html) adequados ao seu caso de uso. Para obter mais detalhes, consulte os [recursos do mapa](https://docs.aws.amazon.com/location/latest/developerguide/maps-concepts.html).

## Casos de uso comuns
<a name="maps-usecases"></a>

**Incorporar mapas na aplicação**  
Crie mapas em suas aplicações para elaborar experiências baseadas em localização. Visualize locais comerciais, pesquise pontos de interesse e ajude os usuários a descobrir endereços específicos. Habilite atributos contínuos de compartilhamento de localização e geomarcação para engajar seus clientes. Use dados de mapas abrangentes, geocodificação robusta e renderização flexível para criar mapas personalizados e interativos adaptados às suas necessidades. Integre experiências de mapeamento dinâmicas e de alta qualidade que impulsionam o engajamento do usuário e os insights de negócios em seu aplicativo, esteja você criando um diretório, uma aplicação de transporte ou uma plataforma social.

**Mapas estáticos para geração de relatórios ou impressão**  
Adicione facilmente imagens de mapas de ruas, imagens de satélite e imagens baseadas em localização em seus sites, documentos e aplicações. Os mapas estáticos permitem que você crie imagens de mapas personalizáveis que fornecem contexto geográfico, sem renderização complexa do lado do cliente. Exiba a rota de entrega nos recibos, inclua detalhes da localização nos documentos ou integre mapas às suas experiências digitais.

**Analisar e visualizar dados**  
Sobreponha seus dados em mapas de alta qualidade para descobrir tendências e padrões espaciais transformadores. Capacite suas equipes a criar visualizações de mapas interativas e personalizáveis com seus dados geográficos. Use mapas e seus dados para otimizar a seleção do local, planejar a infraestrutura ou analisar oportunidades de mercado.

**Melhorar as experiências imobiliárias**  
Forneça aos possíveis compradores um contexto abrangente de localização para fins de anúncios de imóveis. Exiba a localização exata da propriedade, bem como os detalhes do bairro circundante, como limites jurisdicionais, empresas locais, parques e escolas. Ajude os clientes a descobrir o caminho até seus eventos de visita a imóveis à venda. Crie experiências imobiliárias informativas e centradas na localização que envolvam e informem seus clientes.

**Criar experiências de viagem envolventes**  
Exiba mapas dinâmicos mostrando destinos, com vistas detalhadas da rua e principais características geográficas. Destaque hotéis, restaurantes e outros pontos de interesse para turistas e viajantes. Planeje atividades ao ar livre, como trilhas para caminhadas, para ajudar os usuários a planejar seu itinerário ideal.

**Usar mapas para apoiar os esforços de resposta a desastres**  
Informações de localização oportunas e precisas são essenciais durante crises. Use recursos de mapeamento para criar sites e aplicações que forneçam contexto essencial às comunidades durante desastres, como incêndios, furacões e inundações. Exiba mapas dinâmicos mostrando rotas de evacuação, abrigos seguros, estradas fechadas e congestionamento de tráfego para ajudar a capacitar as comunidades a avaliar rapidamente a situação e tomar decisões informadas.

## Mapa autônomo APIs
<a name="maps-apis"></a>


|  Nome da API  |  Descrição breve  |  Recursos  | 
| --- | --- | --- | 
|  GetStyleDescriptor  |  Recupera os estilos de mapa disponíveis, como padrão, monocromático, híbrido e satélite, que podem ser aplicados aos mapas.  |  [AWS estilos e recursos do mapa](map-styles.md)  | 
|  GetTile  |  Busca blocos de mapas individuais com base em um estilo e nível de zoom especificados, permitindo a renderização de mapas em vários níveis de detalhe.  |  [Pisos](tiles.md)  | 
|  GetStaticMap  |  Gera uma imagem estática do mapa com base em coordenadas e parâmetros específicos, útil para incorporar mapas em relatórios ou e-mails.  |  [Mapas estáticos](static-maps.md)  | 

## Exibição de mapas
<a name="maps-display"></a>


|  Tópico  |  Descrição breve  |  Recursos  | 
| --- | --- | --- | 
|  Estilos de mapa dinâmico  |  O Amazon Location Service fornece duas opções para estilizar seus mapas dinâmicos, a saber, usar estilos de AWS mapa predefinidos e personalizar o estilo do mapa usando descritores de estilo.  | [Estilizar mapas dinâmicos](styling-dynamic-maps.md) [Estilo de mapa padrão](standard-map-style.md) [Estilo de mapa monocromático](monochrome-map-style.md) [Estilo de mapa híbrido](hybrid-map-style.md) | 
|  Renderização de mapas dinâmicos  |  O Amazon Location Service recomenda a renderização de mapas usando o mecanismo de renderização [MapLibre](https://github.com/maplibre/maplibre-gl-js). O MapLibre é um mecanismo para exibir mapas em aplicações web ou móveis.  |  [SDK de renderização de mapas por idioma](map-rendering-by-language.md)  | 
|  Personalização do mapa estático  |  Como personalizar mapas estáticos gerados usando-se o Amazon Location Service.  |  [Personalizar mapas estáticos](customizing-static-maps.md)  | 
|  Sobreposição do mapa estático  |  Sobreponha seus mapas estáticos para aprimorar a representação visual do mapa.  |  [Sobreposição no mapa estático](overlaying-static-map.md)  | 

# Conceitos sobre mapas
<a name="maps-concepts"></a>

O Amazon Location Service fornece recursos de mapeamento abrangentes que permitem criar mapas personalizados e visualmente consistentes para seus aplicativos. Você pode aproveitar os estilos de mapas e os princípios de design da AWS para personalizar a aparência dos seus mapas, garantindo consistência visual e identidade visual.

Para clientes em `ap-southeast-1` e`ap-southeast-5`, os campos de solicitação e resposta compatíveis podem ser diferentes. Consulte a [Referência da API Maps](https://docs.aws.amazon.com/location/latest/APIReference/API_Operations_Amazon_Location_Service_Maps_V2.html) para obter detalhes.

Este tópico aborda conceitos essenciais de mapeamento, incluindo terminologia, localização, internacionalização e recursos do mapa.

## Recursos
<a name="maps-concepts-features"></a>

O Amazon Location Service permite que você personalize mapas com recursos avançados de estilo. Adicione elementos topográficos, como densidade de terreno e contorno, além de recursos relacionados à rota, como modos de tráfego e viagem (caminhão ou transporte público). Essas opções de personalização ajudam você a personalizar a aparência do mapa para casos de uso específicos, incluindo logística, trânsito ou visualização de terrenos externos.


| Nome do atributo | Description | Valores com suporte | Estilos de mapa suportados | 
| --- | --- | --- | --- | 
| Esquema de cores | Definir esquema de cores para mapas | Light e Dark | Standard, Monochrome, Hybrid, Satellite | 
| Terreno | Mostrar sombra topográfica da colina | Hillshade e Terrain3D | Standard,Monochrome, Hybrid (Terreno 3D) (Terreno 3D, Satellite) | 
| ContourDensity | Mostrar linhas de elevação topográfica | Low, Medium, High | Standard, Monochrome, Hybrid | 
| Tráfego | Mostrar condições de trânsito em tempo real | All, Congestion | Standard, Monochrome, Hybrid | 
| Edifícios | Mostrar estruturas de edifícios tridimensionais | Buildings3D | Standard, Monochrome | 
| TravelModes | Otimize o estilo do mapa para modos de viagem | Transit e Truck | Standard, Monochrome, Hybrid | 
| Linguagem | Definir idioma local | BCP47 códigos de idioma (por exemplo, en-US, es-ES, fr-CH) | Standard, Monochrome, Hybrid | 
| PoliticalView | Visões geopolíticas personalizadas de um país específico | Argentina, Chipre, Egito, Geórgia, Grécia, Quênia, Marrocos, Palestina, Sérvia, Rússia, Sudão, Suriname, Síria, Turquia, Tanzânia, Uruguai | Standard, Monochrome, Hybrid | 

Para obter mais informações sobre os estilos Padrão, Monocromático e Híbrido, consulte Estilos de [mapa do Amazon Location Service](https://docs.aws.amazon.com/location/latest/developerguide/map-styles.html).

**Topics**
+ [Recursos](#maps-concepts-features)
+ [Terminologia dos mapas](maps-terminology.md)
+ [Esquema de cores](maps-color-scheme.md)
+ [Topografia](maps-topographic-map.md)
+ [Navegação](maps-navigation-map.md)
+ [Localização e internacionalização](maps-localization-internationalization.md)
+ [Características 3D](maps-3d-map.md)

# Terminologia dos mapas
<a name="maps-terminology"></a>

A compreensão desses termos-chave ajuda você a usar com eficiência o mapeamento APIs e os recursos do Amazon Location Service.

**Mapa-base**  
Fornece contexto geográfico para o mapa, que fica armazenado como camadas de mosaicos vetoriais. As camadas de mosaico incluem atributos geográficos como nomes de ruas, edifícios e uso do solo para referência visual.

**Vector**  
Os dados vetoriais consistem em pontos, linhas e polígonos e são usados para representar estradas, locais e áreas em um mapa. Uma forma vetorial também pode ser usada como ícone para marcadores em um mapa.

**Raster**  
Os dados raster são dados de imagem compostos por uma grade e, geralmente, representam dados contínuos, como terreno, imagens de satélite ou mapas de calor. Imagens raster também podem ser usadas como imagens ou ícones.

**Renderização de mapas**  
A biblioteca de renderização de mapas extrai dados do Amazon Location Service em runtime, renderizando o mapa com base no recurso do mapa selecionado. O recurso de mapa define o provedor de dados e o estilo de mapa. O Amazon Location Service exige o mecanismo de [MapLibre](https://maplibre.org/)renderização.

**Camada vetorial**  
Um mosaico vetorial armazena dados do mapa usando formas vetoriais. Ele se ajusta à resolução da tela e renderiza seletivamente os recursos, mantendo o tamanho pequeno do arquivo para um desempenho ideal. Formato suportado: [Mapbox Vector Tiles (MVT)](https://docs.mapbox.com/data/tilesets/guides/vector-tiles-standards/).

**Estilos de mapa**  
Um estilo de mapa define a cor e outras informações de estilo para os dados do mapa, determinando como o mapa aparece quando renderizado. O Amazon Location Service fornece estilos segundo a especificação de estilo Mapbox GL.

**Arquivo de glifos**  
Um arquivo binário contendo caracteres Unicode codificados usados por um renderizador de mapas para exibir rótulos.

**Arquivo Sprite**  
Um arquivo de imagem Portable Network Graphic (PNG) que contém pequenas imagens raster, com descrições de localização em um arquivo JSON. Usado por um renderizador de mapas para exibir ícones ou texturas em um mapa.

**Caixa delimitadora**  
Uma caixa delimitadora é definida por dois pontos de canto diagonais: os pontos noroeste (NW) (canto superior esquerdo) e sudeste (SE) (canto inferior direito). Esses pontos especificam a extensão espacial de um mapa.

# Esquema de cores
<a name="maps-color-scheme"></a>

O Amazon Location Service permite que você defina o esquema de cores dos mapas. O parâmetro de esquema de cores define a paleta de cores do mapa, como `Light` ou`Dark`, para melhor se alinhar às necessidades de design e acessibilidade do seu aplicativo.

## Esquemas de cores claras e escuras
<a name="maps-color-scheme-light-dark"></a>

O `Light` modo é versátil e se encaixa em qualquer contexto, enquanto o `Dark` modo apresenta uma paleta restrita projetada para mostrar detalhes com clareza e manter a legibilidade em ambientes mais escuros.

------
#### [ Standard ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/color-scheme-standard.png)


------
#### [ Monochrome ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/color-scheme-monochrome.png)


------
#### [ Hybrid ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/color-scheme-hybrid.png)


------
#### [ Satellite ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/color-scheme-satellite.png)


------

# Topografia
<a name="maps-topographic-map"></a>

Características topográficas, como linhas de terreno e contorno, exibem mudanças de elevação e características geográficas. Isso ajuda os usuários a entender melhor a paisagem física e as características do terreno de suas áreas mapeadas.

## Terreno
<a name="maps-topographic-terrain"></a>

A característica do terreno exibe a superfície da Terra com sombreamento de elevação, representando mudanças de elevação e formas naturais de relevo. Ele ajuda os usuários a interpretar a forma e a estrutura da paisagem em suas regiões mapeadas.

Use o `terrain` parâmetro em sua solicitação de API para exibir a topografia regional com sombreamento de elevação. Esse recurso destaca variações na elevação e nas características geográficas, ajudando os usuários a visualizar melhor a paisagem física. Consulte [Como criar mapas topográficos](https://docs.aws.amazon.com/location/latest/developerguide/how-to-create-topographic-maps.html).

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-topographic-terrain.gif)


## Terreno 3D
<a name="maps-topographic-3d-terrain"></a>

O recurso 3D Terrain renderiza os dados de elevação da superfície da Terra como uma superfície tridimensional, permitindo que os usuários visualizem paisagens de vários ângulos e perspectivas. Ao controlar o ângulo de visão, os usuários podem obter mais facilmente a percepção da profundidade e avaliar a complexidade do terreno, as inclinações e as alturas relativas nas áreas mapeadas.

Use o `terrain` parâmetro em sua solicitação de API para ativar a visualização tridimensional do terreno. Esse recurso fornece uma perspectiva imersiva das características topográficas, tornando-o particularmente útil para entender as relações espaciais em terrenos montanhosos ou variados.

Combine terreno 3D com `contour-density` parâmetros em sua solicitação de API para obter maior precisão de elevação e contexto visual. Consulte [Criar um mapa 3D](https://docs.aws.amazon.com/location/latest/developerguide/how-to-create-a-3d-map.html).

------
#### [ Satellite ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-hybrid-3d-terrain.gif)


------
#### [ Standard ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-3d-terrain.gif)


------

## Densidade de contorno
<a name="maps-topographic-contour-density"></a>

O recurso de densidade de contorno visualiza linhas de contorno para representar a inclinação do terreno e a variação de elevação. Os usuários podem identificar facilmente inclinações, gradientes de elevação e outros padrões topográficos com isso.

Use o `contour-density` parâmetro em sua solicitação de API para renderizar linhas de contorno de elevação topográfica que representam a inclinação e a forma do terreno. Isso fornece uma visualização detalhada de formas de relevo em vários níveis de densidade para aprimorar a compreensão topográfica. Consulte [Como criar mapas topográficos](https://docs.aws.amazon.com/location/latest/developerguide/how-to-create-topographic-maps.html).

------
#### [ Low ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-contours-low.gif)


------
#### [ Medium ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-contours-medium.gif)


------
#### [ High ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-contours-high.gif)


------

# Navegação
<a name="maps-navigation-map"></a>

Os recursos de navegação, como `Traffic` e `Truck TravelModes` fornecem ferramentas de visualização dinâmica que aprimoram a navegação e o planejamento de rotas. Eles ajudam os usuários a entender as condições das estradas em tempo real e a escolher as opções de viagem mais eficientes com base em suas necessidades de transporte.

## Tráfego
<a name="maps-navigation-traffic"></a>

A camada de tráfego fornece visualização em tempo real das condições do tráfego, incluindo congestionamento rodoviário, zonas de construção e incidentes relatados. Esse recurso ajuda os usuários a tomar decisões informadas de roteamento e otimizar a eficiência da viagem com base nas condições atuais da estrada.

Use o `traffic` parâmetro na sua solicitação de API para exibir informações de tráfego em tempo real. Isso inclui dados sobre congestionamento rodoviário, áreas de construção e incidentes, ajudando os usuários a tomar decisões de roteamento informadas e eficientes. Veja [como mostrar o tráfego em tempo real em um mapa](https://docs.aws.amazon.com/location/latest/developerguide/how-to-set-real-time-traffic-map.html).

------
#### [ All ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-traffic-all.gif)


------
#### [ Congestion ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-traffic-congestion.gif)


------

## Modos de viagem
<a name="maps-navigation-travel-modes"></a>

O recurso de modos de viagem permite a visualização e seleção de diferentes métodos de transporte. Ele suporta informações de roteamento para vários modos, como transporte público, caminhões ou outros tipos de navegação especializados que consideram restrições e regulamentações rodoviárias. Isso ajuda os usuários a planejar rotas otimizadas para seu modo específico de viagem.

Use o `travel-modes` parâmetro na sua solicitação de API para mostrar dados de roteamento específicos do transporte. Veja [como mostrar detalhes do transporte público em um mapa](https://docs.aws.amazon.com/location/latest/developerguide/how-to-show-transit-details-map.html) e [como criar um mapa logístico](https://docs.aws.amazon.com/location/latest/developerguide/how-to-create-logistic-map.html).

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-travel-modes-transit.gif)


![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-travel-modes-truck.gif)


# Localização e internacionalização
<a name="maps-localization-internationalization"></a>

O Amazon Location Service oferece suporte a recursos de localização que permitem que você personalize mapas para idiomas e regiões específicos. Isso inclui suporte para nomes de lugares locais e a capacidade de renderizar mapas em diferentes idiomas.


| Estilo | Visões políticas | Idiomas | 
| --- | --- | --- | 
| Standard | Argentina, Chipre, Egito, Geórgia, Grécia, Quênia, Marrocos, Palestina, Sérvia, Rússia, Sudão, Suriname, Síria, Turquia, Tanzânia, Uruguai | Compatível com a biblioteca do lado do cliente | 
| Monocromático | Argentina, Chipre, Egito, Geórgia, Grécia, Quênia, Marrocos, Palestina, Sérvia, Rússia, Sudão, Suriname, Síria, Turquia, Tanzânia, Uruguai | Compatível com a biblioteca do lado do cliente | 
| Híbrida | Argentina, Chipre, Egito, Geórgia, Grécia, Quênia, Marrocos, Palestina, Sérvia, Rússia, Sudão, Suriname, Síria, Turquia, Tanzânia, Uruguai | Compatível com a biblioteca do lado do cliente | 
| Satellite | Sem compatibilidade | Sem compatibilidade | 

## Idiomas
<a name="maps-languages"></a>

O Amazon Location Service fornece mapas APIs que permitem que você personalize o idioma dos rótulos do mapa e dos elementos de texto. Esse recurso ajuda seus aplicativos a atender a um público global ou a regiões com vários idiomas. Ao exibir mapas no idioma preferido do usuário, você aprimora a experiência geral do usuário, tornando os mapas mais acessíveis e relevantes para sua base diversificada de usuários.

Para obter mais informações, consulte [Como definir um idioma preferido para um mapa](how-to-set-preferred-language-map.md).

![\[Map of Taiwan showing major cities including Taipei, Taichung, and Kaohsiung along the western coast.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/standard-language-switcher.gif)


## Visões políticas
<a name="maps-political"></a>

Por padrão, o Amazon Location Service apresenta uma perspectiva internacional, que representa visualmente territórios disputados com fronteiras tracejadas. Para mudar da perspectiva internacional para uma visão geopolítica específica do país, use o parâmetro de *visão política* na sua consulta de API. Isso ajuda as empresas a cumprir as leis locais, pois alguns países exigem a adesão às suas visões geopolíticas específicas para mapas e dados de mapas.

Além da perspectiva internacional padrão, o Amazon Location Service suporta as visões geopolíticas dos seguintes países: Argentina, Chipre, Egito, Geórgia, Grécia, Quênia, Marrocos, Palestina, Sérvia, Rússia, Sudão, Suriname, Síria, Turquia, Tanzânia e Uruguai. Para ativar uma visão geopolítica, passe o valor apropriado para o parâmetro *political view*.

Para obter mais informações, consulte [Como definir a visão política de um mapa](how-to-set-political-view-map.md).

![\[Map of Cyprus showing the locations of Nicosia and Limassol, with surrounding waters.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/maps-political-view.png)


# Características 3D
<a name="maps-3d-map"></a>

Os recursos de visualização 3D do Amazon Location Service — terrenos e edifícios — ajudam os usuários a tomar melhores decisões adicionando profundidade e perspectiva aos dados geográficos. O terreno 3D revela mudanças de elevação essenciais para otimização de rotas, planejamento de resposta a emergências e recreação ao ar livre, enquanto edifícios 3D fornecem contexto espacial para navegação urbana, avaliação imobiliária e identificação de pontos turísticos. Esses recursos se integram perfeitamente por meio de parâmetros simples de API (terreno, edifícios), permitindo que aplicativos em logística, segurança pública, turismo e imóveis ofereçam experiências de usuário mais intuitivas e envolventes sem uma implementação complexa.

## Terreno 3D
<a name="maps-3d-terrain"></a>

O recurso 3D Terrain renderiza os dados de elevação da superfície da Terra como uma superfície tridimensional, permitindo que os usuários visualizem paisagens de vários ângulos e perspectivas. Ao controlar o ângulo de visão, os usuários podem obter mais facilmente a percepção da profundidade e avaliar a complexidade do terreno, as inclinações e as alturas relativas nas áreas mapeadas.

Use o `terrain` parâmetro em sua solicitação de API para habilitar a visualização tridimensional do terreno. Esse recurso fornece uma perspectiva imersiva das características topográficas, tornando-o particularmente útil para entender as relações espaciais em terrenos montanhosos ou variados.

Combine terreno 3D com `contour-density` parâmetros em sua solicitação de API para obter maior precisão de elevação e contexto visual. Consulte [Criar um mapa 3D](https://docs.aws.amazon.com/location/latest/developerguide/how-to-create-a-3d-map.html).

------
#### [ Satellite ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-hybrid-3d-terrain.gif)


------
#### [ Standard ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-3d-terrain.gif)


------

## Edifícios 3D
<a name="maps-3d-buildings"></a>

O recurso Edifícios 3D renderiza as pegadas dos edifícios como estruturas tridimensionais com altura e volume, permitindo que os usuários visualizem ambientes urbanos de vários ângulos e perspectivas. Ao controlar o ângulo de visão, os usuários podem entender mais facilmente a densidade do edifício, as relações de altura e o contexto espacial nas cidades e áreas desenvolvidas.

Use o `buildings` parâmetro em sua solicitação de API para habilitar a visualização tridimensional de edifícios. [Esse recurso fornece uma perspectiva imersiva das paisagens urbanas, tornando-o particularmente útil para entender os layouts da cidade, identificar pontos turísticos e navegar em ambientes urbanos complexos. Consulte Criar um mapa 3D.](https://docs.aws.amazon.com/location/latest/developerguide/how-to-create-a-3d-map.html)

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-3d-buildings.gif)


## Vista do globo
<a name="maps-3d-globe-view"></a>

O recurso Globe View fornece uma representação esférica da Terra, permitindo que os usuários visualizem dados geográficos em um globo tridimensional. Essa perspectiva oferece uma maneira natural e intuitiva de entender as relações espaciais globais, os layouts continentais e a curvatura da superfície da Terra.

Use o Globe View para exibir mapas com curvatura realista da Terra e perspectiva global. Consulte [Criar um mapa 3D](https://docs.aws.amazon.com/location/latest/developerguide/how-to-create-a-3d-map.html).

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/zoom-globe-view.gif)


# AWS estilos e recursos do mapa
<a name="map-styles"></a>

## Visão geral dos estilos de mapas
<a name="map-style-overview"></a>

Para solicitar um mapa, primeiro escolha um estilo de mapa. Os estilos de mapa definem a aparência visual do mapa renderizado, incluindo o estilo para mosaicos, glifos e sprites do mapa. Os mosaicos do mapa podem ser vetoriais (MVT) ou raster (imagem). Embora o estilo possa mudar quando você aumenta ou diminui o zoom, ele geralmente mantém um tema constante. É possível substituir partes ou o estilo inteiro antes de passá-lo para a biblioteca de renderização de mapas.

## AWS estilos de mapa
<a name="aws-map-styles"></a>

AWS os estilos de mapas seguem os padrões da indústria, oferecendo uma aparência sofisticada e profissional. Esses estilos reduzem time-to-market e eliminam a necessidade de cartógrafos dedicados criarem estilos de mapas do zero. Esses estilos predefinidos possibilitam criar mapas visualmente atrativos de forma rápida e eficaz para os usuários finais.

Ao aproveitar os estilos de AWS mapa predefinidos, você pode ignorar o processo demorado e intensivo de recursos de projetar e construir estilos de mapa do zero. Isso acelera o processo de desenvolvimento, permitindo que você se concentre nas principais funcionalidades.




| Nome do estilo do mapa | Description | Esquema de cores | Suporta mapa dinâmico | Suporta mapa estático | 
| --- | --- | --- | --- | --- | 
| Standard | Estilo de mapa colorido | Claro e escuro | Sim | Sim | 
| Monocromático | Estilos de mapas em escala de cinza | Claro e escuro | Sim | Não | 
| Híbrida | Sobreposição de estradas e rótulos em imagens de satélite | Não aplicável | Sim | Não | 
| Satellite | Estilo de mapa baseado em imagens de satélite | Não aplicável | Sim | Sim | 

O Amazon Location Service fornece estilos segundo a [especificação de estilo MapLibre GL](https://maplibre.org/maplibre-style-spec/).

## Estilo de mapa padrão
<a name="standard-map"></a>

O estilo de mapa padrão é um design de mapa simples e moderno de uso geral que se encaixa de forma perfeita e funcional em praticamente qualquer aplicação ou site.

Para saber mais, consulte [Estilo de mapa padrão](standard-map-style.md).

![\[Map of Boston showing neighborhoods, streets, and waterways in standard and dark modes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-standard.png)


## Estilo de mapa monocromático
<a name="monochrome-map"></a>

O estilo de mapa monocromático é uma tela minimalista com uma paleta de cores restrita, destinada ao uso com sobreposições de visualização de dados. O estilo monocromático oferece modos claro e escuro, comunicando todas as informações essenciais necessárias para o contexto geográfico.

Para saber mais, consulte [Estilo de mapa monocromático](monochrome-map-style.md).

![\[Two maps of North America, one light and one dark, showing countries and major bodies of water.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-monochrome.png)


## Estilo de mapa híbrido
<a name="hybrid-map"></a>

O estilo de mapa híbrido combina imagens globais de satélite com rótulos claros e categorias de POI configuráveis de nossos mapas vetoriais.

Para saber mais, consulte [Estilo de mapa híbrido](hybrid-map-style.md).

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-hybrid.png)


## Estilo de mapa de satélite
<a name="satellite-map"></a>

O estilo de mapa de satélite apresenta imagens do mundo real de alta resolução capturadas por satélites, oferecendo uma visão realista de paisagens, edifícios e terrenos. Esse estilo geralmente inclui rótulos ou sobreposições mínimas para manter o foco nos detalhes geográficos.

![\[Satellite view of Australia, New Zealand, and Southeast Asian islands surrounded by deep blue oceans.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-satellite.png)


# Estilo de mapa padrão
<a name="standard-map-style"></a>

O estilo de mapa padrão oferece um design de mapa simples e moderno de uso geral que se encaixa de forma perfeita em praticamente qualquer aplicação ou site.

## Esquema de cores
<a name="color-scheme"></a>

O estilo de mapa padrão vem nos modos claro e escuro. O modo claro é versátil e pode se encaixar em qualquer contexto, enquanto o modo escuro apresenta uma paleta restrita, projetada para mostrar detalhes com clareza e manter a legibilidade em ambientes mais escuros. Isso garante o mínimo de distrações, especialmente em cenários como navegação noturna.

------
#### [ Forest ]

![\[Map of Washington state and Vancouver area showing coastal regions and major cities.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/color-scheme-forest.png)


------
#### [ Road ]

![\[Map of Bronx area showing highways, neighborhoods, and landmarks in light and dark modes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/color-scheme-road.png)


------
#### [ City ]

![\[Map of Boston showing neighborhoods, streets, and waterfront areas in light and dark modes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/color-scheme-city.png)


------
#### [ Neighborhood ]

![\[Map of Montreal showing districts, landmarks, and streets in light and dark modes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/color-scheme-neighborhood.png)


------

## Uma paleta agradável e moderna
<a name="modern-palette"></a>

As cores suaves fornecem um contexto importante do uso do terreno sem sobrecarregar o mapa, oferecendo informações úteis em níveis de zoom altos e baixos. Com o zoom reduzido, atributos como florestas, desertos e geleiras adicionam riqueza ao mapa. Quando ampliada, uma variedade de cores destaca pontos turísticos importantes, como escolas, hospitais, áreas de recreação (como parques e instalações esportivas) e distritos urbanos, como zonas comerciais e industriais.

O estilo geral apresenta uma paleta de cores coesa, incluindo marcadores de POI que complementam suas respectivas áreas de uso do terreno. A rede viária é exibida em tons de cinza, fornecendo detalhes sem sobrecarregar o mapa com cores brilhantes e que confundem.

------
#### [ Highway ]

![\[Map of San Francisco Bay Area showing cities and highways in standard and dark modes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/modern-highway.png)


------
#### [ Beach ]

![\[Map of Malibu area showing Pacific Coast Highway, Legacy Park, and Malibu Lagoon State Beach.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/modern-beach.png)


------
#### [ Island ]

![\[Map of Oahu island showing major highways, Honolulu, and surrounding areas in day and night views.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/modern-island.png)


------
#### [ Neighborhood ]

![\[Map of downtown Honolulu showing streets, landmarks, and neighborhoods in light and dark modes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/modern-neighborhood.png)


------
#### [ Intersection ]

![\[Map of Lower Manhattan showing City Hall Park, streets, and landmarks in light and dark modes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/style-intersection.png)


------
#### [ Roundabout ]

![\[Map of Washington Circle area showing streets, landmarks, and points of interest in light and dark modes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/style-roundabout.png)


------

## Pontos de interesse (POI) de rica variedade
<a name="rich-poi"></a>

O estilo de mapa padrão suporta uma rica variedade de pontos de interesse configuráveis (POIs). Com apenas algumas linhas de código, você pode selecionar as categorias de POI relevantes para seu caso de uso.

![\[Map showing various points of interest in Midtown Manhattan, including businesses and landmarks.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/poi-toggle-animation.gif)


## Projetado para o mundo
<a name="designed-for-the-world"></a>

O estilo padrão fornece suporte a diferentes visões políticas, garantindo que os mapas exibam as fronteiras corretas para seus usuários. O estilo também permite alternar facilmente entre idiomas para rótulos de mapas, com dezenas de idiomas e sistemas de escrita com suporte.

Para saber mais, consulte [Localização e internacionalização](maps-localization-internationalization.md).

------
#### [ Languages ]

![\[Map of Taiwan showing major cities and geographical features including Taiwan Strait.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/standard-language-switcher.gif)


------
#### [ Political view ]

![\[Map of Cyprus showing Nicosia in the north and Limassol in the south, with surrounding Mediterranean Sea.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/maps-political-view.png)


------

## Topografia
<a name="topography"></a>

O estilo de mapa padrão fornece uma visualização topográfica detalhada que destaca as variações de elevação e as características geográficas naturais. As linhas de contorno, o sombreamento e as texturas do terreno criam uma representação realista da paisagem, permitindo que os usuários interpretem facilmente encostas, vales e picos. Essa renderização topográfica é ideal para planejamento externo, análise ambiental e aplicações em que a compreensão das características do terreno melhora a tomada de decisões e a consciência espacial.

------
#### [ Both Terrain and Contour Density ]

 ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-terrain-contour-light.png) ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-terrain-contour-dark.png) 

------
#### [ Only terrain ]

 ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-terrain-light.png) ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-terrain-dark.png) 

------
#### [ Only contour density ]

 ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-contour-light.png) ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/map-contour-dark.png) 

------

## Navegação
<a name="navigation"></a>

O estilo de mapa padrão fornece opções para fornecer visualização dinâmica projetada para otimizar a navegação e o planejamento de rotas. Os dados de tráfego ao vivo destacam congestionamentos, incidentes e condições das estradas, permitindo que os usuários prevejam atrasos e ajustem suas rotas de acordo. Com vários modos de viagem, como caminhão ou transporte público, esse recurso permite que os usuários selecionem a opção mais eficiente e adequada ao contexto para sua rota, garantindo experiências de roteamento mais suaves e informadas.

------
#### [ Traffic ]

 ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/traffic-light.png) ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/traffic-dark.png) 

------
#### [ Transit ]

 ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/transit-light.png) ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/transit-dark.png) 

------
#### [ Truck ]

 ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/truck-light.png) ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/truck-dark.png) 

------

## 3D
<a name="3D"></a>

O estilo de mapa padrão fornece uma visualização tridimensional imersiva que renderiza a elevação do terreno e as estruturas dos edifícios com profundidade e perspectiva espaciais. Ângulos de visão ajustáveis, controles de inclinação e renderização tridimensional criam uma representação realista de paisagens naturais e ambientes urbanos, permitindo que os usuários interpretem facilmente as mudanças de elevação, a complexidade do terreno e as relações espaciais. Essa renderização tridimensional é ideal para planejamento de rotas, navegação urbana e aplicações em que a compreensão das dimensões verticais e da percepção de profundidade aprimora a tomada de decisões e a consciência espacial.

------
#### [ 3D Terrain ]

 ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/3d-terrain-light.png) ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/3d-terrain-dark.png) 

------
#### [ 3D Buildings ]

 ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/3d-buildings-light.png) ![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/3d-buildings-dark.png) 

------

## Uso do terreno
<a name="land-use"></a>

O estilo de mapa padrão usa cores vibrantes para indicar os usos designados do terreno. Os verdes representam florestas, grama, campos de golfe, centros esportivos e parques. Cores relevantes são usadas para corpos d'água, geleiras, desertos e praias. Além disso, os usos do terreno, como comerciais, industriais, aeroportos, zonas militares, instalações médicas e áreas educacionais, são destacados com categorias vibrantes específicas.

------
#### [ Light ]

![\[Color-coded squares representing various land uses with corresponding hex codes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/land-use-light.png)


------
#### [ Dark ]

![\[Color-coded squares representing various land uses with corresponding hex codes and labels.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/land-use-dark.png)


------

# Estilo de mapa monocromático
<a name="monochrome-map-style"></a>

O estilo monocromático é uma tela minimalista com uma paleta de cores restrita, destinada ao uso com sobreposições de visualização de dados. Esse estilo suporta os modos claro e escuro, comunicando todas as informações essenciais necessárias para o contexto geográfico.

## Esquema de cores
<a name="color-schemes"></a>

O estilo monocromático oferece opções de cores para os modos claro e escuro.

------
#### [ Continent ]

![\[Map of North America showing the United States, Canada, Mexico, and parts of Central and South America.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/monochrome-continent.png)


------
#### [ Neighborhood ]

![\[Map of Downtown Miami showing streets, parks, and landmarks in light and dark modes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/monochrome-neighborhood-colors.png)


------

## Casos de uso
<a name="use-case"></a>

O estilo monocromático é adequado para visualização de dados e necessidades de design minimalista.

### Visualização de dados
<a name="data-visualization"></a>

O estilo monocromático usa deliberadamente somente tons de cinza, permitindo total liberdade de escolha de cores para camadas de sobreposição de dados, como coropléticos, mapas de calor ou mapas de pontos.

![\[Map of lower Manhattan showing streets, landmarks, and red dots indicating data points.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/monochrome-data-vis.png)


### Design minimalista
<a name="minimalist"></a>

Para manter um mapa limpo e discreto, os estilos monocromáticos incluem um conjunto reduzido de pontos de interesse (POIs) para recursos essenciais, como aeroportos, parques, hospitais e universidades.

------
#### [ Airport ]

![\[Map showing Miami International Airport and surrounding roads including Airport Expy and Dolphin Expy.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/monochrome-airport.png)


------
#### [ Neighborhood ]

![\[Map showing Jackson Memorial Hospital, UHealth Tower, and nearby streets in light and dark modes.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/monochrome-neighborhood.png)


------

Embora o estilo monocromático inclua um conjunto reduzido de POIs, os blocos subjacentes ainda contêm o conjunto completo de dados de POI. Isso permite que você exiba coisas POIs que não estão visualmente presentes no estilo.

## Projetado para o mundo
<a name="designed-for-the-world"></a>

O estilo monocromático suporta diferentes visões políticas, garantindo que o mapa exiba as bordas corretas para seus usuários. Esse estilo também permite alternar facilmente entre idiomas para rótulos de mapas, com dezenas de idiomas e sistemas de escrita suportados.

![\[Map of Taiwan showing major cities and the Taiwan Strait, with a monochrome color scheme.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/monochrome-language-switcher.gif)


# Estilo de mapa híbrido
<a name="hybrid-map-style"></a>

O estilo de mapa híbrido combina imagens globais de satélite com os mesmos rótulos claros e categorias de pontos de interesse (POI) configuráveis encontradas no estilo de mapa padrão. Essa combinação fornece detalhes geográficos ricos e, ao mesmo tempo, garante legibilidade e usabilidade para seu aplicativo.

## Pontos de interesse (POI) de rica variedade
<a name="rich-poi"></a>

Os rótulos e POIs foram projetados especificamente para proporcionar contraste e legibilidade, fornecendo o contexto necessário para a camada de satélite sem se distrair das imagens detalhadas. Linhas rodoviárias claras destacam a estrutura urbana quando ampliadas e desaparecem gradualmente à medida que você aumenta o zoom, revelando informações mais detalhadas no nível da rua.

------
#### [ Zoom ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/hybrid_zoom.gif)


------
#### [ Neighborhood ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/hybrid-neighborhood.png)


------
#### [ Zoomed-in ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/hybrid-zoom.png)


------

## Projetado para o mundo
<a name="designed-for-the-world"></a>

O estilo híbrido suporta diferentes visões políticas, garantindo que o mapa exiba as bordas corretas para seus usuários. Esse estilo também permite alternar facilmente entre idiomas para rótulos de mapas, com dezenas de idiomas suportados e sistemas de escrita disponíveis para garantir uma experiência localizada.

# APIs de mapas
<a name="choose-maps-apis"></a>

Os mapas dão acesso a tipos de mapas dinâmicos e estáticos para uma variedade de aplicações. Para obter mais informações, consulte [Mapas do Amazon Location Service](maps.md).
+ **Mapas dinâmicos**: mapas interativos que podem ser personalizados em tempo real para que os usuários movam, ampliem e sobreponham dados. Para obter mais informações, consulte [Mapas dinâmicos](dynamic-maps.md).
+ **Mapas estáticos**: imagens estáticas de mapas que exibem locais ou rotas específicas sem elementos interativos, adequadas para aplicações com interatividade limitada. Para obter mais informações, consulte [Mapas estáticos](static-maps.md).

A tabela a seguir apresenta vários casos de uso de negócios que são mais bem resolvidos com as APIs de mapas.

## Casos de uso de mapas
<a name="maps-table"></a>

A seção a seguir apresenta vários casos de uso de negócios que são mais bem resolvidos com as APIs de mapas.


| **Necessidade da empresa** | **API útil** | **Exemplos** | 
| --- | --- | --- | 
|  **Exibir mapas interativos** Permite gestos de mapa, como zoom, panorâmica, atenuação, voo, inclinação, rotação e orientação.  | `GetTile` e `GetStyleDescriptor` com mecanismo de renderização (MapLibre) | [Como exibir um mapa](how-to-display-a-map.md) | 
|  **Adicionar marcadores a um mapa** Exemplos são marcadores, ícones e muito mais.  |  `GetTile` e `GetStyleDescriptor` com mecanismo de renderização (MapLibre) | [Como adicionar um marcador ao mapa](how-to-add-marker-on-map.md) [Como adicionar um ícone ao mapa](how-to-add-icon-on-map.md) | 
|  **Adicionar componentes de interação do usuário a um mapa** Os exemplos mostram o mapa no idioma ou na visão geopolítica de preferência. |  `GetTile` e `GetStyleDescriptor` com mecanismo de renderização (MapLibre) | [Como adicionar controle no mapa](how-to-add-control-on-map.md) [Como adicionar um pop-up a um mapa](how-to-add-popup-to-map.md) | 
| **Visualizar dados em tempo real ou pré-gravados em um mapa** Exemplos são mapa de calor, KML, atributos GeoJSON, polígonos, retângulos, polilinhas, círculos, marcadores e muito mais. | `GetTile` e `GetStyleDescriptor` com mecanismo de renderização (MapLibre) | [Como adicionar uma linha ao mapa](how-to-add-line-on-map.md) [Como adicionar um polígono ao mapa](how-to-add-polygon-on-map.md) | 
| **Exibir mapa com localização**Os exemplos mostram o mapa no idioma ou na visão geopolítica de preferência. |  `GetTile` e `GetStyleDescriptor` com mecanismo de renderização (MapLibre) | [Como definir um idioma preferido para um mapa](how-to-set-preferred-language-map.md) [Como definir a visão política de um mapa](how-to-set-political-view-map.md) | 
| **Exibir uma imagem estática do mapa** Por exemplo, use a imagem do mapa na aplicação, e-mail, relatório ou impressão. | `GetStaticMap` | [Como obter um mapa estático de uma posição específica](get-static-map-specific-position.md) [Como obter um mapa estático de uma dimensão específica](get-static-map-specific-dimension.md) [Como decidir entre raio e zoom para um mapa estático](choose-radius-vs-zoom.md) [Como adicionar escala para um mapa estático](add-scale-static-map.md)  | 
| **Adicionar marcador a uma imagem do mapa** Exemplos são marcadores, círculo de proximidade, ícone e muito mais. | `GetStaticMap` | [Como adicionar um marcador a um mapa estático](add-marker-static-map.md) | 
| **Visualizar dados em uma imagem de mapa** Exemplos são atributos GeoJSON, polígonos, retângulos, polilinhas, círculos e muito mais. |  `GetStaticMap` | [Como adicionar uma linha a um mapa estático](how-to-add-line-static.md)  | 
| **Visualizar o caso de uso real em um mapa** Os exemplos incluem rotas, círculo de proximidade e muito mais. |  `GetStaticMap` | [Como adicionar uma rota a um mapa estático](how-to-add-route.md)  | 
| **Visualizar o resultado da pesquisa e/ou geocodificação de locais em um mapa**Todas as APIs retornam coordenadas geográficas, exceto o preenchimento automático.  | GetTile e GetStyleDescriptor com mecanismo de renderização (MapLibre) com API Places |    | 
| **Desenhar uma rota em um mapa**Permite marcação de pontos de referência. | GetTile e GetStyleDescriptor com mecanismo de renderização (MapLibre) com Calcular rota  |  | 
| **Visualizar traços de GPS correspondentes em um mapa**Permite modos de viagem, como caminhão, pedestre, carro e moto.  | GetStyleDescriptor com mecanismo de renderização (MapLibre) com Ajustar à estrada  |  | 

# Mapas dinâmicos
<a name="dynamic-maps"></a>

**nota**  
Você deve usar o atributo de visão política para cumprir as leis aplicáveis, incluindo as relacionadas ao mapeamento do país ou região onde mapas, imagens e outros dados que você acessa por meio do Amazon Location Service são disponibilizados.

Os mapas dinâmicos, também conhecidos como mapas interativos, são mapas digitais que permitem usar gestos como zoom, panorâmica, atenuação, voo, inclinação, rotação e orientação. Com o Amazon Location Service, você pode criar aplicações de mapas que fornecem experiências responsivas, interativas e imersivas para seus usuários. Esses mapas ajudam os usuários a visualizar e analisar dados históricos e em tempo real com base na entrada do usuário, permitindo que eles movam, ampliem e explorem o mapa em tempo real. Os mapas oferecidos pelo Amazon Location Service também oferecem suporte a vários idiomas e visões políticas.

Saiba mais sobre o [Localização e internacionalização](maps-localization-internationalization.md).

Por exemplo, solicitações, respostas, comandos cURL e CLI para essa API, consulte [Como usar mapas dinâmicos](https://docs.aws.amazon.com/location/latest/developerguide/dynamic-maps-how-to.html).

------
#### [ City ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/dynamic-city.png)


------
#### [ Roads ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/dynamic-roads.png)


------
#### [ Park ]

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/dynamic-parks.png)


------

Para obter mais informações sobre estilos de mapas do AWS, consulte [AWS estilos e recursos do mapa](map-styles.md).

## Casos de uso comuns
<a name="common-use-cases"></a>

**Analisar e visualizar dados**  
Sobreponha seus dados em mapas de alta qualidade para descobrir tendências e padrões espaciais transformadores. Capacite suas equipes a criar visualizações de mapas interativas e personalizáveis com seus dados geográficos. Use mapas e dados para otimizar a seleção do local, planejar a infraestrutura ou analisar oportunidades de mercado.

**Melhorar as experiências imobiliárias**  
Forneça aos possíveis compradores um contexto abrangente de localização para fins de anúncios de imóveis. Exiba a localização exata da propriedade, bem como detalhes do bairro circundante, como limites jurisdicionais, empresas locais, parques e escolas. Ajude os clientes a encontrar direções para suas casas abertas e a criar experiências imobiliárias informativas e centradas em localização.

**Criar experiências de viagem envolventes**  
Exiba mapas dinâmicos mostrando destinos, com vistas detalhadas da rua e principais atributos geográficos. Destaque pontos de interesse, como hotéis, restaurantes e atrações para turistas e viajantes. Planeje atividades ao ar livre, como trilhas para caminhadas, para ajudar os usuários a planejar seu itinerário ideal.

## Renderizar mapas dinâmicos
<a name="rendering-dynamic-map"></a>

Um mecanismo de renderização de mapas é uma biblioteca responsável pela renderização visual de mapas em telas digitais. O mecanismo de renderização une blocos de mapas (vetoriais, híbridos, de satélite), dados de mapas (pontos, linhas, polígonos) ou dados rasterizados (imagens) para exibir um mapa interativo em navegadores da web ou aplicações nativas. O Amazon Location Service recomenda o uso do mecanismo de renderização [MapLibre](https://github.com/maplibre/maplibre-gl-js), que aceita plataformas web e móveis (iOS e Android). O MapLibre também tem um modelo de plug-in e suporta interfaces de usuário para pesquisa e rotas em vários idiomas.

Para obter mais informações, consulte [Criar sua primeira aplicação de Mapas e Locais do Amazon Location](first-app.md).

## Solicitar ativos de mapas
<a name="requesting-map-assets"></a>

O mecanismo de renderização usa um estilo de mapa que contém referências a blocos, sprites (ícones) e glifos (fontes) do mapa. À medida que os usuários interagem com o mapa (carregam, aproximam ou ampliam), o mecanismo de renderização chama APIs (para blocos, sprites e glifos) com os parâmetros de entrada desejados. Você também pode chamar essas APIs diretamente com base nas necessidades da aplicação.

**Blocos de mapas**  
Pequenos blocos quadrados que contêm dados que são recuperados dos servidores e montados por um mecanismo de renderização para criar um mapa digital interativo.

**Estilos de mapa**  
Uma coleção de regras que definem a aparência visual do mapa, como cores e estilos. O Amazon Location Service segue a [especificação de estilo Mapbox GL](https://docs.mapbox.com/style-spec/guides/).

**Arquivo de glifos**  
Um arquivo binário contendo caracteres Unicode codificados usados por um renderizador de mapas para exibir rótulos de textos.

**Arquivo Sprite**  
Um arquivo de imagem Portable Network Graphics (PNG) que contém pequenas imagens rasterizadas, com descrições de localização em um arquivo JSON. Usado por um renderizador de mapas para renderizar ícones ou texturas no mapa.

# Pisos
<a name="tiles"></a>

Os blocos do mapa são pequenas seções pré-renderizadas de um mapa maior, normalmente exibidas como imagens quadradas. Eles são usados para exibir dados geográficos de forma eficiente, carregando somente as partes visíveis em diferentes níveis de zoom. Existem três tipos principais dos blocos do mapa:

Para obter mais informações, consulte [GetTile](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetTile.html)a *Amazon Location Service API Reference*.

## Tipos de bloco
<a name="tile-types"></a>

**Blocos de mapas vetoriais**  
Os blocos de mapas vetoriais armazenam dados do mapa como formas geométricas (pontos, linhas, polígonos) em vez de imagens. Isso permite a criação de mapas escaláveis e de alta qualidade que permanecem claros em qualquer resolução.

**Blocos de mapas rasterizados**  
Os blocos de mapas rasterizados são imagens pré-renderizadas que representam uma área geográfica específica. Diferentemente dos blocos vetoriais, os blocos rasterizados são mais simples, mas não têm flexibilidade para reestilização.

**Blocos de mapas híbridos**  
Os blocos de mapas híbridos combinam dados vetoriais e rasterizados. Eles usam dados vetoriais para os principais elementos do mapa, como estradas, enquanto usam imagens rasterizadas para elementos mais complexos, como fotografias aéreas ou de satélite detalhadas.

## Camadas de blocos vetoriais
<a name="vector-tiles-layers"></a>

A seguir estão as 10 camadas de blocos de mapas vetoriais:
+ **Limites**: define limites administrativos e geográficos, incluindo fronteiras de países, estados e cidades.
+ **Edifícios e endereços**: representa formas de edifícios e pontos de endereço detalhados.
+ **Terra**: mostra a cobertura global do terreno e da superfície de atributos naturais como desertos, montanhas e florestas.
+ **Uso do terreno**: exibe áreas categorizadas, como parques, terras agrícolas e zonas urbanas.
+ **Locais**: identifica locais importantes, como cidades, vilas e pontos turísticos notáveis.
+ **Pontos de interesse (POIs)**: Destaca atrações, empresas e outros locais importantes.
+ **Estradas**: representa a rede de ruas, rodovias e caminhos.
+ **Etiquetas rodoviárias**: fornece rótulos de texto para nomes de estradas e números de rotas.
+ **Trânsito**: retrata linhas de transporte público, como ônibus, trens e metrôs.
+ **Água**: exibe corpos d'água, incluindo lagos, rios e oceanos.

## Casos de uso
<a name="tiles-use-cases"></a>
+ Buscando blocos de mapa para renderizar diferentes seções de um mapa em vários níveis de zoom.
+ Otimizando solicitações de blocos de mapas com base na interação do usuário, como panorâmica e zoom.
+ Acessando blocos vetoriais ou rasterizados para fins de renderização detalhada.

## Sobre a solicitação
<a name="tiles-understand-the-request"></a>

**nota**  
 Para clientes em `ap-southeast-1` e`ap-southeast-5`, os campos de solicitação e resposta compatíveis podem ser diferentes. Consulte a [Referência da GetTile API](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetTile.html) para obter detalhes. 

A solicitação exige os seguintes parâmetros:`Tileset`, `X`, `Y` e `Z` para identificar o bloco específico a ser buscado. O parâmetro `Key` pode ser incluído opcionalmente para autorização.
+ **`Tileset`**: especifica o conjunto de blocos desejado para buscar o bloco.
+ **`X`**: o valor do eixo X para o bloco do mapa.
+ **`Y`**: o valor do eixo Y para o bloco do mapa.
+ **`Z`**: o valor do zoom, definindo o nível de zoom do bloco.
+ **`Key`**: incluído opcionalmente para fins de autorização.

## Sobre a resposta
<a name="tiles-understand-the-response"></a>

A resposta inclui cabeçalhos como`CacheControl`, `ContentType` e `ETag`, e contém os dados do bloco do mapa como um blob binário no formato MVT. Esses cabeçalhos gerenciam o controle do cache, fornecem detalhes do formato do conteúdo e controle de versão dos blocos.
+ **`CacheControl`**: controla o armazenamento em cache do lado do cliente para o bloco do mapa.
+ **`ContentType`**: especifica o formato dos dados do bloco.
+ **`ETag`**: fornece um identificador de versão para o bloco.
+ **`Blob`**: contém os dados do bloco vetorial no formato MVT.

# Estilizar mapas dinâmicos
<a name="styling-dynamic-maps"></a>

O Amazon Location Service fornece duas opções para estilizar seus mapas dinâmicos: usar estilos de mapa da AWS predefinidos e personalizar o estilo do mapa usando descritores de estilo.

Para obter mais informações, consulte [GetStyleDescriptor](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetStyleDescriptor.html)a *Amazon Location Service API Reference*.

## Use estilos de AWS mapa predefinidos
<a name="using-aws-map-styles"></a>

AWS estilos de mapas são estilos predefinidos que seguem os padrões da indústria para oferecer uma estética sofisticada e profissional. Ao aproveitar esses estilos no Amazon Location Service, você pode reduzir time-to-market e eliminar a necessidade de cartógrafos dedicados criarem estilos de mapas do zero.

Para obter mais informações, consulte [AWS estilos e recursos do mapa](map-styles.md).

Para saber mais sobre os estilos de mapa predefinidos, consulte:
+ [Estilo de mapa padrão](map-styles.md#standard-map)
+ [Estilo de mapa monocromático](map-styles.md#monochrome-map)
+ [Estilo de mapa híbrido](map-styles.md#hybrid-map)
+ [Estilo de mapa de satélite](map-styles.md#satellite-map)

## Adicione recursos de estilo de mapa ao seu AWS mapa
<a name="using-aws-map-features"></a>

AWS os recursos de estilo de mapa permitem que você personalize seus mapas com recursos de estilo avançados, incluindo terreno, densidade de contorno, tráfego e sobreposições de caminhões ou transporte público. Essas novas opções de personalização permitem que você adapte as aparências do mapa para casos de uso específicos.

Para obter mais informações, consulte os [recursos do mapa](https://docs.aws.amazon.com/location/latest/developerguide/maps-concepts.html).

## Benefícios do uso de estilos de AWS mapa
<a name="benefits-aws-map-styles"></a>
+ **Eficiência de tempo e recursos**: os estilos de AWS mapa permitem que você ignore o processo demorado e intensivo de recursos de criar estilos de mapa do zero. Isso permite que você se concentre nas funcionalidades principais e, ao mesmo tempo, forneça mapas visualmente atraentes.
+ **Estética profissional e consistente**: cartógrafos qualificados criaram meticulosamente estilos de AWS mapas, seguindo as melhores práticas do setor. Todos os detalhes, desde paletas de cores até posicionamentos de rótulos, foram otimizados para maior clareza e legibilidade.
+ **Integração perfeita**: os estilos de AWS mapas se integram perfeitamente à linguagem de design do seu aplicativo, fornecendo uma experiência de mapeamento refinada e consistente para seus usuários finais.

## Comece com estilos de AWS mapa
<a name="getting-started-aws-map-styles"></a>
+ **Confira a oferta de estilos de AWS mapa**: No console do Amazon Location Service, navegue até a seção **Mapa** para explorar os estilos disponíveis.
+ **Escolha o estilo que atenda às suas necessidades**: selecione o estilo que melhor se alinha aos requisitos de design e experiência do usuário da sua aplicação.
+ **Integre o estilo**: Siga a documentação fornecida para integrar o estilo escolhido em seu aplicativo usando o Amazon Location Service APIs ou SDKs.

Saiba mais sobre [Como exibir um mapa](how-to-display-a-map.md).

## Casos de uso
<a name="use-cases"></a>
+ Personalização de estilos de mapa com base em esquemas de cores como `Light` ou`Dark`.
+ Exibição de mapas de acordo com visões políticas específicas ou limites geográficos.
+ Otimização de estilos de mapa para diferentes casos de uso, como logística, atividades ao ar livre, navegação com dados de tráfego e rotas específicas de transporte.

## Sobre a solicitação
<a name="dynamic-understand-the-request"></a>

**nota**  
 Para clientes em `ap-southeast-1` e`ap-southeast-5`, os campos de solicitação e resposta compatíveis podem ser diferentes. Consulte a [Referência da GetStyleDescriptor API](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetStyleDescriptor.html) para obter detalhes. 

A solicitação fornece suporte a parâmetros como `ColorScheme`, `Key` e `PoliticalView` para definir o estilo e a apresentação do mapa. O parâmetro `Style` é necessário para especificar o estilo de mapa desejado.
+ **`ColorScheme`**: Define a paleta de cores do mapa, como `Light` ou`Dark`.
+ **`PoliticalView`**: especifica a visão política para visualização do mapa.
+ **`Style`**: Define o estilo do mapa, como `Standard` ou`Monochrome`.
+ **`Terrain`**: exibe atributos topográficos por meio de sombreamento de elevação e realce geográfico.
+ **`ContourDensity`**: mostra a forma e a inclinação do terreno usando linhas de contorno de elevação em diferentes níveis de densidade.
+ **`Traffic`**: sobrepõe as condições de trânsito em tempo real no mapa.
+ **`TravelMode`**: exibe informações de transporte, incluindo sistemas de transporte público ou rotas de caminhões com restrições rodoviárias.

## Sobre a resposta
<a name="dynamic-understand-the-response"></a>

A resposta fornece cabeçalhos como `CacheControl`, `ContentType` e `ETag` e contém o descritor de estilo como um blob JSON. Os cabeçalhos fornecem informações de armazenamento em cache, detalhes do formato do conteúdo e controle de versão para alterações de estilo.
+ **`CacheControl`**: controla as configurações de armazenamento em cache para o descritor de estilo.
+ **`ContentType`**: indica o formato da resposta como JSON.
+ **`ETag`**: fornece um identificador de versão para o descritor de estilo.
+ **`Blob`**: contém o corpo do descritor de estilo no formato JSON.

## Personalizar os descritores de estilo
<a name="customizing-style-descriptor"></a>

Para personalizar estilos de mapa, você deve entender a estrutura do descritor de estilo, que geralmente é um objeto JSON que define a representação visual dos elementos do mapa. O descritor de estilo compreende várias camadas, cada uma controlando o estilo de um tipo específico de elemento do mapa, como estradas, parques, edifícios ou rótulos.
+ **Usar um descritor de estilo predefinido como base**: você pode começar com um descritor de estilo predefinido ou criar um do zero usando editores de estilo de mapa, como o [Maputnik](https://maputnik.github.io/).
+ **Entender a estrutura**: o descritor de estilo é um objeto JSON hierárquico que contém camadas, cada uma representando um elemento diferente do mapa. Cada camada tem propriedades que controlam a aparência visual desse elemento, como cor, opacidade e largura da linha.
+ **Modificar estilos para camadas**: dependendo do editor de estilo de mapa que você estiver usando, você pode alterar as camadas existentes ou adicionar novas para personalizar o estilo. Por exemplo, você pode ajustar a cor das estradas, modificar o tamanho da fonte dos rótulos ou adicionar ícones personalizados para localizações específicas.
+ **Definir estilos para diferentes níveis de zoom**: os editores de estilo de mapa permitem definir estilos diferentes para diferentes níveis de zoom, o que é útil para controlar o nível de detalhe e visibilidade com base nas interações de zoom do usuário.
+ **Testar e iterar**: depois de modificar ou criar o descritor de estilo, teste o estilo personalizado em um mapa para garantir que ele seja exibido conforme o esperado. Iteraja e ajuste até obter o estilo visual desejado.

# Iconografia de estilo com sprites
<a name="styling-iconography-with-sprites"></a>

Um sprite é um arquivo de imagem Portable Network Graphic (PNG) que contém pequenas imagens rasterizadas, como ícones, marcadores e outros elementos renderizados em um mapa. Os sprites podem ser personalizados com base em parâmetros como estilo, esquema de cores e variante. O Amazon Location Service fornece uma planilha de sprites por meio da API `GetSprites`. Você também pode usar ícones personalizados carregando seu próprio conjunto de ícones (consulte [Como adicionar um ícone ao mapa](how-to-add-icon-on-map.md)) ou personalizando o descritor de estilo para carregar seus sprites personalizados.

Para obter mais informações, consulte [GetSprites](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetSprites.html)a *Amazon Location Service API Reference*.

## Casos de uso
<a name="use-cases"></a>
+ Renderização de elementos personalizados do mapa usando folhas de sprite para estilos e esquemas de cores específicos.
+ Buscando sprites para vários estilos de mapa, como Padrão, Monocromático ou Híbrido.
+ Personalizando a iconografia no mapa pela modificação dos sprites.

## Sobre a solicitação
<a name="styling-understand-the-request"></a>

A solicitação requer parâmetros de URI, como `ColorScheme`, `FileName` e `Style`. Esses parâmetros permitem a personalização da folha de sprite com base no esquema de cores, no estilo e no arquivo de sprite específico necessário do mapa.
+ **`ColorScheme`**: define o esquema de cores dos sprites, como “Claro” ou “Escuro”.
+ **`FileName`**: o nome do arquivo sprite a ser recuperado, que pode ser um arquivo PNG ou JSON.
+ **`Style`**: especifica o estilo do mapa, como “Padrão” ou “Monocromático”.

## Sobre a resposta
<a name="styling-understand-the-response"></a>

A resposta contém cabeçalhos como`CacheControl`, `ContentType` e `ETag`, e retorna os dados do sprite como um blob binário ou um arquivo JSON. Esses cabeçalhos fornecem informações de cache, o tipo de conteúdo da resposta e o controle de versão dos dados do sprite.
+ **`CacheControl`**: configurações de cache para o arquivo sprite.
+ **`ContentType`**: o formato da resposta, indicando se ela contém dados PNG ou JSON.
+ **`ETag`**: Identificador da versão do sprite, usado para validação do cache.
+ **`Blob`**: contém o corpo da planilha de sprites ou do arquivo de deslocamento JSON.

------
#### [ Standard Light ]

![\[Collection of colorful icons representing various services and concepts in cloud computing.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/styling-standard-light.png)


------
#### [ Standard Dark ]

![\[Collection of colorful icons and shapes representing various services and concepts.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/styling-standard-dark.png)


------
#### [ Monochrome Light ]

![\[Collection of various icons and shapes representing different concepts and services.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/styling-monochrome-light.png)


------
#### [ Monochrome Dark ]

![\[Collection of various icons and shapes representing different concepts and services.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/styling-monochrome-dark.png)


------
#### [ Hybrid ]

![\[Collection of colorful icons representing various travel, transportation, and service symbols.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/styling-hybrid.png)


------

# Etiquetas de estilo com glifos
<a name="styling-labels-with-glyphs"></a>

Glifos são arquivos binários contendo caracteres Unicode codificados usados por um renderizador de mapas para exibir rótulos. O Amazon Location Service permite a recuperação de glifos específicos de uma pilha de fontes para uso na renderização de mapas por meio da API `GetGlyphs`.

Para obter mais informações, consulte [GetGlyphs](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetGlyphs.html) na *Referência de API do Amazon Location Service*.

## Casos de uso
<a name="glyphs-use-cases"></a>
+ Renderizando texto personalizado em mapas com fontes e estilos específicos.
+ Buscando glifos para renderização localizada do texto do mapa.
+ Usando intervalos de caracteres Unicode para exibir rótulos e símbolos do mapa.
+ Otimizando a renderização de fontes do mapa com base em pilhas de fontes e intervalos de glifos.

## Fontes compatíveis na API
<a name="supported-fonts"></a>

As seguintes fontes são compatíveis com a API:
+ Amazon Ember Bold
+ Amazon Ember Bold Italic
+ Amazon Ember Bold, Noto Sans Bold
+ Amazon Ember Bold,Noto Sans Bold, Noto Sans Arabic Bold
+ Amazon Ember Condensed RC BdItalic
+ Amazon Ember Condensed RC Bold
+ Amazon Ember Condensed RC Bold Italic
+ Amazon Ember Condensed RC Bold,Noto Sans Bold
+ Amazon Ember Condensed RC Bold, Noto Sans Bold, Noto Sans Arabic Condensed Bold
+ Amazon Ember Condensed RC Light
+ Amazon Ember Condensed RC Light Italic
+ Amazon Ember Condensed RC LtItalic
+ Amazon Ember Condensed RC Regular
+ Amazon Ember Condensed RC Regular Italic
+ Amazon Ember Condensed RC Regular, Noto Sans Regular
+ Amazon Ember Condensed RC Regular, Noto Sans Regular, Noto Sans Arabic Condensed Regular
+ Amazon Ember Condensed RC RgItalic
+ Amazon Ember Condensed RC ThItalic
+ Amazon Ember Condensed RC Thin
+ Amazon Ember Condensed RC Thin Italic
+ Amazon Ember Heavy
+ Amazon Ember Heavy Italic
+ Amazon Ember Light
+ Amazon Ember Light Italic
+ Amazon Ember Medium
+ Amazon Ember Medium Italic
+ Amazon Ember Medium, Noto Sans Medium
+ Amazon Ember Medium, Noto Sans Medium, Noto Sans Arabic Medium
+ Amazon Ember Regular
+ Amazon Ember Regular Italic
+ Amazon Ember Regular Italic, Noto Sans Italic
+ Amazon Ember Regular Italic, Noto Sans Italic, Noto Sans Arabic Regular
+ Amazon Ember Regular, Noto Sans Regular
+ Amazon Ember Regular, Noto Sans Regular, Noto Sans Arabic Regular
+ Amazon Ember Thin
+ Amazon Ember Thin Italic
+ AmazonEmberCdRC\$1Bd
+ AmazonEmberCdRC\$1BdIt
+ AmazonEmberCdRC\$1Lt
+ AmazonEmberCdRC\$1LtIt
+ AmazonEmberCdRC\$1Rg
+ AmazonEmberCdRC\$1RgIt
+ AmazonEmberCdRC\$1Th
+ AmazonEmberCdRC\$1ThIt
+ AmazonEmber\$1Bd
+ AmazonEmber\$1BdIt
+ AmazonEmber\$1He
+ AmazonEmber\$1HeIt
+ AmazonEmber\$1Lt
+ AmazonEmber\$1LtIt
+ AmazonEmber\$1Md
+ AmazonEmber\$1MdIt
+ AmazonEmber\$1Rg
+ AmazonEmber\$1RgIt
+ AmazonEmber\$1Th
+ AmazonEmber\$1ThIt
+ Noto Sans Black
+ Noto Sans Black Italic
+ Noto Sans Bold
+ Noto Sans Bold Italic
+ Noto Sans Extra Bold
+ Noto Sans Extra Bold Italic
+ Noto Sans Extra Light
+ Noto Sans Extra Light Italic
+ Noto Sans Italic
+ Noto Sans Light
+ Noto Sans Light Italic
+ Noto Sans Medium
+ Noto Sans Medium Italic
+ Noto Sans Regular
+ Noto Sans Semi Bold
+ Noto Sans Semi Bold Italic
+ Noto Sans Thin
+ Noto Sans Thin Italic
+ NotoSans-Bold
+ NotoSans-Italic
+ NotoSans-Medium
+ NotoSans-Regular
+ Open Sans Regular,Arial Unicode MS Regular

## Sobre a solicitação
<a name="glyphs-understand-the-request"></a>

A solicitação aceita dois parâmetros de URI obrigatórios, `FontStack` e `FontUnicodeRange`, que determinam a fonte e o intervalo Unicode para glifos. O parâmetro `FontStack` especifica qual fonte usar, enquanto `FontUnicodeRange` define o intervalo de caracteres a ser buscado. A solicitação não inclui um corpo, concentrando-se apenas nos parâmetros de URI para sua funcionalidade.
+ **`FontStack`**: especifica o nome da pilha de fontes a ser recuperada. Exemplo: "Amazon Ember Bold, Noto Sans Bold".
+ **`FontUnicodeRange`**: uma variedade de caracteres Unicode para baixar glifos. O intervalo deve ser um múltiplo de 256. Exemplo: "0-255".

## Sobre a resposta
<a name="glyphs-understand-the-response"></a>

A resposta retorna dados de glifos como um blob binário, junto com cabeçalhos HTTP para armazenamento em cache, tipo de conteúdo, ETag e informações de preços. Os dados do glifo são retornados como um blob binário para serem renderizados em mapas, e os cabeçalhos fornecem metadados adicionais para lidar com a resposta de forma eficaz.
+ **`CacheControl`**: instrui o cliente sobre as configurações de armazenamento em cache da resposta.
+ **`ContentType`**: especifica o formato do corpo da resposta, indicando o tipo de dados de glifo retornados.
+ **`ETag`**: um identificador da versão do glifo, usado para validação do cache.
+ **`PricingBucket`**: indica o nível de preço associado à solicitação.
+ **`Blob`**: os dados do glifo retornados como um blob binário, usada para renderizar o texto do mapa.

# Mapas estáticos
<a name="static-maps"></a>

**nota**  
Os mapas estáticos oferecem suporte somente aos estilos Padrão e Satélite. Para obter mais informações, consulte [AWS estilos e recursos do mapa](map-styles.md).

Os mapas estáticos oferecem uma representação pré-renderizada de dados geográficos com a opção de sobrepor marcadores (ou pinos), rotas e áreas poligonais, conforme necessários para sua aplicação. O Mapa Estático permite gerar imagens de mapas estáticos (não interativos) com base em parâmetros personalizáveis e entradas de dados. Quando personaliza sobreposições, formas ou aplica estilos personalizados, o Mapa Estático permite criar visualizações de mapas que atendam a necessidades específicas, aprimorando a experiência do usuário final e comunicando informações geográficas de forma eficaz. O servidor personaliza as imagens do mapa solicitadas e as entrega ao cliente como arquivos JPEG. Você pode solicitar e gerar programaticamente imagens de mapas adaptadas às suas necessidades específicas.

A *GetStaticMap API* gera uma imagem estática de um mapa com base em parâmetros específicos, como coordenadas centrais, caixas delimitadoras ou sobreposições. A API permite a personalização dos atributos e do estilo do mapa, permitindo o uso em aplicações web ou móveis sem a funcionalidade de mapa interativo.

Para obter mais informações, consulte [GetStaticMap](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetStaticMap.html)a *Amazon Location Service API Reference*.

Por exemplo, solicitações, respostas, comandos cURL e CLI para essa API, consulte [Como usar mapas estáticos](https://docs.aws.amazon.com/location/latest/developerguide/static-maps-how-to.html).

## Casos de uso comuns
<a name="static-maps-use-cases"></a>
+ **Mapas incorporados em aplicações web ou móveis:** imagens de mapas estáticos podem ser incorporadas de forma eficiente em sites ou aplicações móveis para fornecer visualizações de localizações, rotas ou pontos de interesse com mapas não interativos, reduzindo os tempos de carregamento e o uso de dados. Os exemplos incluem mecanismos de pesquisa (como o Yahoo) mostrando imagens de mapas com resultados de pesquisa para POIs.
+ **Detalhes de localização em e-mails:** imagens de mapas estáticos podem ser usadas para compartilhar informações de localização por e-mail para ajudar seus usuários finais a entender o contexto do e-mail. Por exemplo, aplicações de entrega de comida ou compartilhamento de viagens usam imagens de mapas estáticos para exibir locais de retirada/entrega, rotas ou áreas vizinhas em e-mails pós-viagem ou entrega contendo fatura e resumo.
+ **Materiais de marketing e documentos impressos:** imagens personalizadas de mapas estáticos podem ser incorporadas a livretos, folhetos ou outros materiais impressos, fornecendo representações visualmente atraentes de informações geográficas relevantes ao conteúdo.

## Sobre a solicitação
<a name="static-maps-understanding-request"></a>

A solicitação inclui parâmetros de URI opcionais, como`BoundedPositions`, `BoundingBox` e `Center`, entre outros, para definir a área visível e as sobreposições do mapa. Os parâmetros `Height` e `Width` são necessários para definir o tamanho da imagem. Para saber mais, consulte [Personalizar mapas estáticos](customizing-static-maps.md) e [Sobreposição no mapa estático](overlaying-static-map.md).
+ `BoundedPositions`: coordenadas a serem incluídas na imagem.
+ `BoundingBox`: coordenadas que definem as bordas sudoeste e nordeste do mapa.
+ `Height`: especifica a altura da imagem.
+ `Width`: especifica a largura da imagem.
+ `GeoJsonOverlay`: um objeto GeoJSON válido para adicionar sobreposições.

## Sobre a resposta
<a name="static-maps-understanding-response"></a>

A resposta contém cabeçalhos como `CacheControl`, `ContentType` e `ETag`, e retorna o mapa estático como um blob binário no formato JPEG ou PNG. Os cabeçalhos fornecem metadados como controle de cache, tipo de conteúdo e versão para imagens estáticas.
+ `CacheControl`: especifica as configurações de cache para a imagem do mapa.
+ `ContentType`: indica o formato da imagem do mapa (JPEG ou PNG).
+ `ETag`: um identificador para a versão da imagem estática do mapa.
+ `Blob`: representa a imagem do mapa no formato JPEG ou PNG.

# Personalizar mapas estáticos
<a name="customizing-static-maps"></a>

**nota**  
Os mapas estáticos permitem apenas o estilo Satélite. Para obter mais informações, consulte [AWS estilos e recursos do mapa](map-styles.md).

Esta seção é uma visão geral de como personalizar mapas estáticos gerados usando o Amazon Location Service. Ela abrange vários recursos, como ajustar a posição, o tamanho, o idioma, a escala, as sobreposições e a atribuição do mapa para que você adapte o mapa do seu jeito.

Para obter mais informações, consulte [GetStaticMap](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetStaticMap.html)a *Amazon Location Service API Reference*.

## Position
<a name="customizing-static-maps-position"></a>

A posição permite definir o centro e os limites do mapa. Você pode controlar o foco do mapa definindo as coordenadas centrais, uma caixa delimitadora ou usando um nível de zoom para determinar a área de exibição. Para saber como funciona, consulte [Como obter um mapa estático de uma posição específica](get-static-map-specific-position.md).
+ `Center`: define o ponto central do mapa usando coordenadas de longitude e latitude.
+ `Radius`: especifica o raio (distância do centro) que será exibido no mapa estático.
+ `Bounding Box`: define uma área retangular do mapa que é estipulada por meio das coordenadas dos cantos superior esquerdo e inferior direito.
+ `Zoom`: controla o nível do zoom do mapa. Níveis de zoom mais altos mostram mais detalhes em uma área menor, enquanto níveis mais baixos mostram menos detalhes em uma área maior.

## Dimensão e qualidade
<a name="customizing-static-maps-dimension-quality"></a>

Para personalizar o tamanho e a qualidade visual do mapa estático, basta definir suas dimensões (altura e largura) e adicionar preenchimento para melhor exibição de marcadores e outros elementos. Para saber como funciona, consulte [Como obter um mapa estático de uma dimensão específica](get-static-map-specific-dimension.md).
+ `Height and Width`: especifica o tamanho da imagem estática do mapa definindo sua altura e largura em pixels.
+ `Padding`: adiciona espaço extra ao redor das bordas do mapa, o que possibilita melhor visualização ao colocar marcadores, linhas ou formas.

## Escala
<a name="customizing-static-maps-scale"></a>

A escala fornece controle sobre a escala do mapa e define as unidades (quilômetros, milhas) para medir distâncias. É útil para representar com precisão as relações de tamanho e distância do mapa. Para saber como funciona, consulte [Como adicionar escala para um mapa estático](add-scale-static-map.md).
+ `Scale Unit`: define as unidades da barra de escala do mapa (por exemplo, quilômetros ou milhas), permitindo que os usuários avaliem com precisão as distâncias no mapa.

## sobreposição
<a name="customizing-static-maps-overlay"></a>

Você pode adicionar marcadores, linhas para mostrar rotas, polígonos para mostrar áreas e muito mais. Para saber como funciona, consulte [Como adicionar um marcador a um mapa estático](add-marker-static-map.md), [Como adicionar uma linha a um mapa estático](how-to-add-line-static.md) ou[Como adicionar uma rota a um mapa estático](how-to-add-route.md).

# Sobreposição no mapa estático
<a name="overlaying-static-map"></a>

Esta seção explica como sobrepor informações adicionais em mapas estáticos usando o Amazon Location Service. Você pode personalizar seus mapas estáticos adicionando vários atributos geográficos, como pontos, linhas e polígonos, para aprimorar a representação visual do mapa. O Amazon Location Service oferece suporte a vários formatos, incluindo GeoJSON e um formato de sobreposição compacto, para fornecer formas flexíveis e eficientes de adicionar sobreposições.

Para obter mais informações, consulte [GetStaticMap](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetStaticMap.html)a *Amazon Location Service API Reference*.

## Com GeoJSON
<a name="overlaying-static-map-geojson"></a>

O GeoJSON é um formato versátil que permite sobrepor dados personalizados em mapas estáticos. Quando define atributos geográficos, como pontos, linhas e polígonos, você pode aprimorar a representação visual de seus mapas, fornecendo um contexto valioso para os usuários. O GeoJSON é amplamente suportado e oferece flexibilidade quando se trata de estilizar e personalizar sobreposições de mapas, tornando-o um formato ideal para exibir regiões, traçar rotas ou mostrar relações espaciais.

Com o Amazon Location Service, você pode aproveitar o GeoJSON para adicionar atributos dinâmicos baseados em localização diretamente em seus mapas estáticos. Isso permite que você crie sobreposições altamente personalizáveis que podem ser adaptadas para atender às suas necessidades comerciais específicas. O GeoJSON suporta vários tipos de geometria, incluindo `Point`, `LineString`, `Polygon` e `MultiPolygon`, permitindo que você exiba uma ampla variedade de atributos, desde marcadores e rotas até representações de áreas complexas.

## Cores
<a name="overlaying-static-map-geojson-colors"></a>

Quando estilizar os atributos do GeoJSON, você tem flexibilidade na definição de cores. Você pode especificar cores usando formatos diferentes, como valores hexadecimais (como \$1ff0000 para vermelho) ou com transparência alfa (como \$1ff000080 para vermelho semitransparente). Isso garante que suas sobreposições possam ser visualmente consistentes com o estilo do mapa. Se nenhuma cor for especificada, a cor padrão para o estilo de mapa selecionado será aplicada.

## Ordem de desenho
<a name="overlaying-static-map-drawing-order"></a>

As sobreposições personalizadas são desenhadas em uma ordem específica para manter a clareza e evitar confusão visual. No Amazon Location Service, atributos de sobreposição, como polígonos, linhas e pontos, aparecerão acima do mapa base, mas abaixo dos rótulos do mapa. A ordem do desenho prioriza primeiro os polígonos, seguidos pelas linhas e depois pelos pontos ou marcadores.

## Unidades de medida
<a name="overlaying-static-map-measurement-units"></a>

Para propriedades como `width` e `outline-width`, você pode usar unidades de medida diferentes para especificar o tamanho, incluindo pixels (px), metros (m), quilômetros (km), milhas (mi) e porcentagens (%). A unidade percentual ajusta a propriedade em relação a um valor padrão, oferecendo mais flexibilidade no estilo de suas sobreposições.

## Tipos de geometria
<a name="overlaying-static-map-geometry-types"></a>

O Amazon Location Service oferece suporte a vários tipos de geometria GeoJSON, como `Point`, `LineString`, `Polygon` e `MultiPolygon`. Cada tipo de geometria pode ser estilizado e ajustado usando o objeto de propriedades no GeoJSON, permitindo uma ampla personalização de marcadores, rotas e áreas em seu mapa.

## Com sobreposição compacta
<a name="overlaying-static-map-compact-overlay"></a>

**nota**  
A sobreposição compacta suporta os tipos de geometria: ponto, linha e polígono a seguir. Não há suporte para `multiPoint`, `multiLine` ou `multiPolgyon`.

A opção de sobreposição compacta permite que você exiba com eficiência várias geometrias em um mapa estático usando um único parâmetro de consulta. Essa abordagem simplificada simplifica o formato da solicitação e reduz o tamanho da solicitação, facilitando a transmissão de dados de sobreposição. Os clientes podem inserir vários tipos de geometria e suas propriedades de estilo correspondentes em um parâmetro de consulta, e o Amazon Location Service cuidará do trabalho pesado analisando e renderizando a sobreposição conforme especificado.

Quando for usar o formato de sobreposição compacto, lembre-se de que há limites no tamanho do URL da solicitação. Embora o Amazon Location Service otimize a consulta, certifique-se de que sua solicitação permaneça dentro de limites razoáveis, especialmente quando for lidar com várias geometrias e suas propriedades associadas.

## Formato
<a name="overlaying-static-map-compact-overlay-format"></a>

O formato de sobreposição compacto é estruturado da seguinte forma: `geometry_type:geometry;property_1=value_1;property_2=value_2|geometry_type:geometry;property_1=value_1...`

Cada tipo de geometria é definido junto com as propriedades de estilo dela. Várias geometrias são separadas por um operador pipe (\$1) e as propriedades de cada geometria são separadas usando-se ponto e vírgula.

## Tipos de geometria compatíveis
<a name="overlaying-static-map-supported-geometry-types"></a>

O Amazon Location Service oferece suporte a vários tipos de geometria, incluindo `Point`, `MultiPoint`, `LineString`, `Polygon` e `MultiPolygon`. Esses tipos de geometria podem ser combinados e estilizados dentro do mesmo parâmetro de consulta usando-se o formato de sobreposição compacto.

## Propriedades de estilo
<a name="overlaying-static-map-styling-properties"></a>

Cada geometria pode ser personalizada usando-se várias propriedades de estilo, como cor, cor do contorno, tamanho e muito mais. Essas propriedades permitem que você controle a aparência de cada geometria no mapa, garantindo que a sobreposição esteja alinhada às suas necessidades comerciais.

# Instruções de uso
<a name="maps-how-to"></a>

Esta seção contém uma variedade de guias e exemplos de como usar as APIs dos Mapas.

**Topics**
+ [Como usar mapas dinâmicos](dynamic-maps-how-to.md)
+ [Como usar mapas estáticos](static-maps-how-to.md)

# Como usar mapas dinâmicos
<a name="dynamic-maps-how-to"></a>

Estes tópicos de instruções oferecem um guia abrangente que ensina a aprimorar suas aplicações de mapeamento usando o Amazon Location Service. Desde a exibição de mapas interativos até a adição de marcadores, linhas e polígonos, esses tutoriais demonstram como utilizar atributos essenciais, como definir controles de mapas, adicionar ícones personalizados e gerenciar dados em tempo real. Além disso, os tópicos também abordam aspectos de localização e internacionalização, como definir idiomas preferidos, ajustar visões políticas e garantir a conformidade com as leis regionais, personalizando o conteúdo do mapa com base na localização ou perspectiva do usuário.

Cada tutorial foi projetado para ser acessível, com step-by-step instruções para implementar esses recursos em aplicativos da Web usando o MapLibre GL JS. Se seu objetivo é criar uma experiência de mapa dinâmico com ícones e pop-ups personalizados ou adaptar visualizações de mapa para perspectivas políticas e idiomas específicos, esses exemplos serão muito úteis, além de garantir uma experiência de mapeamento valiosa e localizada para usuários em diferentes regiões. Com esses tutoriais, você pode aproveitar totalmente os recursos do Amazon Location Service, desde funções básicas de mapeamento até necessidades geopolíticas e de localização complexas.

**Topics**
+ [Como exibir um mapa](how-to-display-a-map.md)
+ [Como adicionar controle no mapa](how-to-add-control-on-map.md)
+ [Como adicionar um marcador ao mapa](how-to-add-marker-on-map.md)
+ [Como adicionar um ícone ao mapa](how-to-add-icon-on-map.md)
+ [Como adicionar uma linha ao mapa](how-to-add-line-on-map.md)
+ [Como adicionar um polígono ao mapa](how-to-add-polygon-on-map.md)
+ [Como adicionar um pop-up a um mapa](how-to-add-popup-to-map.md)
+ [Como definir um idioma preferido para um mapa](how-to-set-preferred-language-map.md)
+ [Como definir a visão política de um mapa](how-to-set-political-view-map.md)
+ [Como filtrar o POI no mapa](how-to-filter-poi-map.md)
+ [Como criar mapas topográficos](how-to-create-topographic-maps.md)
+ [Como mostrar o tráfego em tempo real em um mapa](how-to-set-real-time-traffic-map.md)
+ [Como criar um mapa logístico](how-to-create-logistic-map.md)
+ [Como mostrar detalhes do transporte público em um mapa](how-to-show-transit-details-map.md)
+ [Como criar um mapa 3D](how-to-create-a-3d-map.md)

# Como exibir um mapa
<a name="how-to-display-a-map"></a>

O Amazon Location Service permite que você exiba mapas interativos e não interativos usando nossos estilos de mapas. Para saber mais, consulte [AWS estilos e recursos do mapa](map-styles.md).

## Mapa interativo
<a name="interactive-map"></a>

Neste exemplo, você exibirá um mapa interativo que permite aos usuários ampliar, deslocar, pinçar e inclinar.

### Exemplo de código de mapa interativo
<a name="interactive-map-web-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Display a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard"; // e.g., Standard, Monochrome, Hybrid, Satellite
            const awsRegion = "eu-central-1"; // e.g., us-east-2, us-east-1, us-west-2, etc.
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map', // container id
                style: styleUrl, // style URL
                center: [25.24, 36.31], // starting position [lng, lat]
                zoom: 2, // starting zoom
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Restringir a panorâmica do mapa além de uma área
<a name="restrict-map-panning"></a>

Neste exemplo, você impedirá que o mapa seja deslocado além de um limite definido.

### Exemplo de código de restrição da panorâmica do mapa
<a name="restrict-map-panning-web-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Display a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard"; // e.g., Standard, Monochrome, Hybrid, Satellite
            const awsRegion = "eu-central-1"; // e.g., us-east-2, us-east-1, us-west-2, etc.
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            var bounds = [
                [90.0, -21.943045533438166], // Southwest coordinates
                [146.25, 31.952162238024968] // Northeast coordinates
            ];

            const map = new maplibregl.Map({
                container: 'map', // container id
                style: styleUrl, // style URL
                maxBounds: bounds, // Sets bounds of SE Asia
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Mapa não interativo
<a name="non-interactive-map"></a>

Neste exemplo, você exibirá um mapa não interativo desativando a interação do usuário.

### Exemplo de código de mapa não interativo
<a name="non-interactive-map-web-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Display a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard"; // e.g., Standard, Monochrome, Hybrid, Satellite
            const awsRegion = "eu-central-1"; // e.g., us-east-2, us-east-1, us-west-2, etc.
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map', // container id
                style: styleUrl, // style URL
                center: [25.24, 36.31], // starting position [lng, lat]
                zoom: 2, // starting zoom
                interactive: false, // Disable pan & zoom handlers
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

# Como adicionar controle no mapa
<a name="how-to-add-control-on-map"></a>

O Amazon Location Service permite que você adicione vários controles ao mapa, incluindo navegação, geolocalização, tela cheia, escala e controles de atribuição.
+ **Controle de navegação**: contém botões de zoom e uma bússola.
+ **Controle de geolocalização**: fornece um botão que usa a API de geolocalização do navegador para localizar o usuário no mapa.
+ **Controle de tela cheia**: contém um botão para colocar ou tirar o mapa do modo de tela cheia.
+ **Controle de escala**: exibe a proporção de uma distância no mapa com a distância correspondente no solo.
+ **Controle de atribuição**: apresenta as informações de atribuição do mapa. Por padrão, o controle de atribuição é expandido (independentemente da largura do mapa).

Você pode adicionar os controles a qualquer canto do mapa: canto superior esquerdo, canto inferior esquerdo, canto inferior direito ou canto superior direito.

## Adicionar controles do mapa
<a name="add-map-controls"></a>

No exemplo a seguir, você adicionará os controles do mapa listados acima.

### Exemplo de código de controle do mapa
<a name="web-code-example"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Map Controls</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard"; // e.g., Standard, Monochrome, Hybrid, Satellite
            const awsRegion = "eu-central-1"; // e.g., us-east-2, us-east-1, us-west-2, etc.
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map', // container id
                style: styleUrl, // style URL
                center: [-123.13203602550998, 49.28726257639254], // starting position [lng, lat]
                zoom: 10, // starting zoom
                attributionControl: false, // hide default attributionControl in bottom left
            });

            // Adding controls to the map
            map.addControl(new maplibregl.NavigationControl()); // Zoom and rotation controls
            map.addControl(new maplibregl.FullscreenControl()); // Fullscreen control
            map.addControl(new maplibregl.GeolocateControl()); // Geolocation control
            map.addControl(new maplibregl.AttributionControl(), 'bottom-left'); // Attribution in bottom-left
            map.addControl(new maplibregl.ScaleControl(), 'bottom-right'); // Scale control in bottom-right
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Dicas para o desenvolvedor
<a name="developer-tips"></a>

### Opções de controle de navegação
<a name="navigationcontrol-options"></a>

```
new maplibregl.NavigationControl({ 
    showCompass: true, // show or hide compass (default: true)
    showZoom: true // show or hide zoom controls (default: true)
});
```

### Opções de controle de geolocalização
<a name="geolocatecontrol-options"></a>

```
new maplibregl.GeolocateControl({ 
    positionOptions: { enableHighAccuracy: true }, // default: false
    trackUserLocation: true // default: false
});
```

### Opções de controle de atribuição
<a name="attributioncontrol-options"></a>

```
new maplibregl.AttributionControl({
    compact: true, // compact (collapsed) mode (default: false)
});
```

### Opções de controle de escala
<a name="scalecontrol-options"></a>

```
new maplibregl.ScaleControl({ 
    maxWidth: 100, // width of the scale (default: 50)
    unit: 'imperial' // imperial or metric (default: metric)
});
```

### Opções de controle de tela cheia
<a name="fullscreencontrol-options"></a>

```
map.addControl(new maplibregl.FullscreenControl({
    container: document.querySelector('body') // container for fullscreen mode
}));
```

# Como adicionar um marcador ao mapa
<a name="how-to-add-marker-on-map"></a>

Com o Amazon Location, você pode adicionar marcadores fixos e arrastáveis, além de personalizar a cor dos marcadores com base em seus dados e preferências.

## Adicionar um marcador fixo
<a name="add-marker"></a>

### Exemplo de código de marcador fixo
<a name="web-code-example-fixed-marker"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Add marker on a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard";  // e.g., Standard, Monochrome, Hybrid, Satellite  
            const awsRegion = "eu-central-1"; // e.g., us-east-2, us-east-1, us-west-2, etc.
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map', // container id
                style: styleUrl, // style URL
                center: [0, 0], // starting position [lng, lat]
                zoom: 1, // starting zoom
            });

            const marker = new maplibregl.Marker() // Create fixed marker
                .setLngLat([85.1376, 25.5941]) // Set coordinates [long, lat] for marker (e.g., Patna, BR, IN)
                .addTo(map); // Add marker to the map
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Adicionar um marcador arrastável
<a name="add-draggable-marker"></a>

### Exemplo de código de marcador arrastável
<a name="web-code-example-draggable-marker"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Add draggable marker on a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard";  // e.g., Standard, Monochrome, Hybrid, Satellite  
            const awsRegion = "eu-central-1"; // e.g., us-east-2, us-east-1, us-west-2, etc.
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map', // container id
                style: styleUrl, // style URL
                center: [0, 0], // starting position [lng, lat]
                zoom: 1, // starting zoom
            });

            const marker = new maplibregl.Marker({ draggable: true }) // Create draggable marker
                .setLngLat([85.1376, 25.5941]) // Set coordinates [long, lat] for marker (e.g., Patna, BR, IN)
                .addTo(map); // Add marker to the map
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Alterar a cor do marcador
<a name="change-marker-color"></a>

### Exemplo de código de marcador colorido
<a name="web-code-example-change-marker-color"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Adding colorful marker on a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Monochrome";  // e.g., Standard, Monochrome, Hybrid, Satellite  
            const awsRegion = "eu-central-1"; // e.g., us-east-2, us-east-1, us-west-2, etc.
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map', // container id
                style: styleUrl, // style URL
                center: [0, 0], // starting position [lng, lat]
                zoom: 1, // starting zoom
            });

            const marker = new maplibregl.Marker({ color: "black" }) // Create colored marker
                .setLngLat([85.1376, 25.5941]) // Set coordinates [long, lat] for marker (e.g., Patna, BR, IN)
                .addTo(map); // Add marker to the map
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Adicionar vários marcadores
<a name="add-multiple-markers"></a>

### Exemplo de código de vários marcadores
<a name="web-code-example-multiple-markers"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Adding multiple markers on a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard";  // e.g., Standard, Monochrome, Hybrid, Satellite  
            const awsRegion = "eu-central-1"; // e.g., us-east-2, us-east-1, us-west-2, etc.
            const colorScheme ="Dark"; // e.g., Dark, Light (default)
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?color-scheme=${colorScheme}&key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map', // container id
                style: styleUrl, // style URL
                center: [0, 0], // starting position [lng, lat]
                zoom: 1, // starting zoom
            });

            const locations = [
                { lng: 85.1376, lat: 25.5941, label: 'Patna', color: '#FF5722' }, 
                { lng: 77.1025, lat: 28.7041, label: 'Delhi', color: '#2196F3' }, 
                { lng: 77.5946, lat: 12.9716, label: 'Bangalore', color: '#FF9800' }, 
                { lng: 78.4867, lat: 17.3850, label: 'Hyderabad', color: '#9C27B0' }, 
                { lng: -87.6298, lat: 41.8781, label: 'Chicago', color: '#4CAF50' }, 
                { lng: -122.3321, lat: 47.6062, label: 'Seattle', color: '#FFC107' }, 
                { lng: 4.3517, lat: 50.8503, label: 'Brussels', color: '#3F51B5' },   
                { lng: 2.3522, lat: 48.8566, label: 'Paris', color: '#E91E63' },   
                { lng: -0.1276, lat: 51.5074, label: 'London', color: '#795548' },  
                { lng: 28.0473, lat: -26.2041, label: 'Johannesburg', color: '#673AB7' },  
                { lng: -123.1216, lat: 49.2827, label: 'Vancouver', color: '#FF5722' }, 
                { lng: -104.9903, lat: 39.7392, label: 'Denver', color: '#FF9800' }, 
                { lng: -97.7431, lat: 30.2672, label: 'Austin', color: '#3F51B5' }  
            ];

            // Loop through the locations array and add a marker for each one
            locations.forEach(location => {           
                const marker = new maplibregl.Marker({ color: location.color, draggable: true }) // Create colored marker
                    .setLngLat([location.lng, location.lat]) // Set longitude and latitude
                    .addTo(map); // Add marker to the map
            }); 
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

# Como adicionar um ícone ao mapa
<a name="how-to-add-icon-on-map"></a>

O Amazon Location Service permite que você adicione ícones, preferencialmente no formato PNG, ao mapa. Você pode adicionar ícones a geolocalizações específicas e colocar o estilo que preferir, conforme necessário.

## Adicionar um ícone estático
<a name="add-static-icon"></a>

Neste exemplo, você usará uma URL externa para adicionar um ícone ao mapa usando uma camada de símbolo.

### Exemplo de código de ícone estático
<a name="web-code-example-static-icon"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Static icon on map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard";  // e.g., Standard, Monochrome, Hybrid, Satellite  
            const awsRegion = "eu-central-1"; // e.g., us-east-2, us-east-1, us-west-2, etc.
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map', // container id
                style: styleUrl, // style URL
                center: [-123.1144289, 49.2806672], // starting position [lng, lat] (e.g., Vancouver)
                zoom: 12, // starting zoom
            });

            map.on('load', async () => {
                image = await map.loadImage('https://upload.wikimedia.org/wikipedia/commons/1/1e/Biking_other.png');
                map.addImage('biking', image.data);
                map.addSource('point', {
                    'type': 'geojson',
                    'data': {
                        'type': 'FeatureCollection',
                        'features': [
                            {
                                'type': 'Feature',
                                'geometry': {
                                    'type': 'Point',
                                    'coordinates': [-123.1144289, 49.2806672]
                                }
                            }
                        ]
                    }
                });
                map.addLayer({
                    'id': 'points',
                    'type': 'symbol',
                    'source': 'point',
                    'layout': {
                        'icon-image': 'biking',
                        'icon-size': 0.25
                    }
                });
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

# Como adicionar uma linha ao mapa
<a name="how-to-add-line-on-map"></a>

Com o Amazon Location Service, você pode adicionar traços de GPS pré-gravados como sequências de linhas e traços de GPS em tempo real aos mapas dinâmicos.

## Adicionar uma linha pré-gravada
<a name="add-pre-recorded-line"></a>

Neste exemplo, você adicionará um traço de GPS pré-gravado como GeoJSON (main.js) ao mapa dinâmico. Para fazer isso, você precisa adicionar uma fonte (como GeoJSON) e uma camada com estilo de linha de sua escolha ao mapa. 

### Exemplo de código de linha pré-gravado
<a name="web-code-example-pre-recorded-line"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Add a line on the map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
        <script src='main.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard";
            const awsRegion = "eu-central-1";
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map',
                style: styleUrl,
                center: [-123.126575, 49.290585],
                zoom: 12.5
            });

            map.on('load', () => {
                map.addSource('vancouver-office-to-stanley-park-route', {
                    type: 'geojson',
                    data: routeGeoJSON
                });

                map.addLayer({
                    id: 'vancouver-office-to-stanley-park-route',
                    type: 'line',
                    source: 'vancouver-office-to-stanley-park-route',
                    layout: {
                        'line-cap': 'round',
                        'line-join': 'round'
                    },
                    paint: {
                        'line-color': '#008296',
                        'line-width': 2
                    }
                });
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------
#### [ main.js ]

```
const routeGeoJSON = {
    type: "FeatureCollection",
    features: [
        {
            type: "Feature",
            geometry: {
                type: "LineString",
                coordinates: [
                    [-123.117011, 49.281306],
                    [-123.11785, 49.28011],
                    ...
                    [-123.135735, 49.30106]
                ]
            },
            properties: {
                name: "Amazon YVR to Stanley Park",
                description: "An evening walk from Amazon office to Stanley Park."
            }
        }
    ]
};
```

------

## Adicionar uma linha em tempo real
<a name="add-real-time-line"></a>

Neste exemplo, você simulará a adição de novas coordenadas GPS, uma por uma, para criar um traço de GPS em tempo real. Isso é útil para rastrear atualizações de dados em tempo real.

### Exemplo de código de linha em tempo real
<a name="web-code-example-real-time-line"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Add a line on the map in real-time</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
        <script src='main.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard";
            const awsRegion = "eu-central-1";
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map',
                style: styleUrl,
                center: [-123.126575, 49.290585],
                zoom: 12.5
            });

            map.on('load', () => {
                const coordinates = routeGeoJSON.features[0].geometry.coordinates;
                routeGeoJSON.features[0].geometry.coordinates = [coordinates[0], coordinates[20]];

                map.addSource('vancouver-office-to-stanley-park-route', {
                    type: 'geojson',
                    data: routeGeoJSON
                });

                map.addLayer({
                    id: 'vancouver-office-to-stanley-park-route',
                    type: 'line',
                    source: 'vancouver-office-to-stanley-park-route',
                    layout: {
                        'line-cap': 'round',
                        'line-join': 'round'
                    },
                    paint: {
                        'line-color': '#008296',
                        'line-width': 2
                    }
                });

                map.jumpTo({center: coordinates[0], zoom: 14});
                map.setPitch(30);

                let i = 0;
                const timer = window.setInterval(() => {
                    if (i < coordinates.length) {
                        routeGeoJSON.features[0].geometry.coordinates.push(coordinates[i]);
                        map.getSource('vancouver-office-to-stanley-park-route').setData(routeGeoJSON);
                        map.panTo(coordinates[i]);
                        i++;
                    } else {
                        window.clearInterval(timer);
                    }
                }, 100);
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------
#### [ main.js ]

```
const routeGeoJSON = {
    type: "FeatureCollection",
    features: [
        {
            type: "Feature",
            geometry: {
                type: "LineString",
                coordinates: [
                    [-123.117011, 49.281306],
                    [-123.11785, 49.28011],
                    ...
                    [-123.135735, 49.30106]
                ]
            },
            properties: {
                name: "Amazon YVR to Stanley Park",
                description: "An evening walk from Amazon office to Stanley Park."
            }
        }
    ]
};
```

------

## Dicas para o desenvolvedor
<a name="developer-tips"></a>

**Ajustar limites:** você pode ajustar a linha aos limites do mapa calculando os limites das coordenadas da linha:

```
const coordinates = routeGeoJSON.features[0].geometry.coordinates;
const bounds = coordinates.reduce((bounds, coord) => bounds.extend(coord), new maplibregl.LngLatBounds(coordinates[0], coordinates[0]));
map.fitBounds(bounds, { padding: 20 });
```

# Como adicionar um polígono ao mapa
<a name="how-to-add-polygon-on-map"></a>

O Amazon Location Service permite que você adicione polígonos ao mapa. Você pode estilizar o polígono com base nas necessidades da sua empresa, incluindo a adição de estilos de preenchimento e borda.

## Adicionar um polígono
<a name="add-polygon"></a>

Neste exemplo, você adicionará um polígono ao mapa, aplicando estilo com uma cor de preenchimento e uma borda.

### Exemplo de código de polígono
<a name="web-code-example-polygon"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Overlay a Polygon on a Map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
        <script src='main.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard";
            const awsRegion = "eu-central-1";
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map',
                style: styleUrl,
                center: [-123.13203602550998, 49.28726257639254],
                zoom: 16
            });

            map.on('load', () => {
                map.addSource('barclayHeritageSquare', {
                    type: 'geojson',
                    data: barclayHeritageSquare
                });

                map.addLayer({
                    id: 'barclayHeritageSquare-fill',
                    type: 'fill',
                    source: 'barclayHeritageSquare',
                    layout: {},
                    paint: {
                        'fill-color': '#008296',
                        'fill-opacity': 0.25
                    }
                });

                map.addLayer({
                    id: 'barclayHeritageSquare-outline',
                    type: 'line',
                    source: 'barclayHeritageSquare',
                    layout: {},
                    paint: {
                        'line-color': '#008296',
                        'line-width': 2
                    }
                });
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------
#### [ main.js ]

```
const barclayHeritageSquare = {
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "properties": {
                "park_id": 200,
                "park_name": "Barclay Heritage Square",
                "area_ha": 0.63255076039675,
                "park_url": "http://covapp.vancouver.ca/parkfinder/parkdetail.aspx?inparkid=200"
            },
            "geometry": {
                "type": "MultiPolygon",
                "coordinates": [
                    [
                        [-123.1320948511985, 49.287379401361406],
                        [-123.13179672786798, 49.2871908081159],
                        [-123.13148154587924, 49.28739992437733],
                        [-123.1313830551372, 49.28733617069321],
                        [-123.13118648745055, 49.287208851500054],
                        [-123.13128257706838, 49.28714532642171],
                        [-123.13147941881572, 49.28727228533418],
                        ...
                        [-123.13177619357138, 49.28759081706052],
                        [-123.1320948511985, 49.287379401361406]
                    ]
                ]
            }
        }
    ]
};
```

------

# Como adicionar um pop-up a um mapa
<a name="how-to-add-popup-to-map"></a>

O Amazon Location Service permite que você adicione pop-ups ao mapa. Você pode adicionar pop-ups simples, pop-ups acionados por clique em marcadores, pop-ups acionados pelo mouse e pop-ups para vários marcadores. 

## Adicionar seu primeiro pop-up
<a name="add-first-popup"></a>

Neste exemplo, você vai adicionar seu primeiro pop-up.

### Exemplo de código do primeiro pop-up
<a name="first-popup-web"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Display a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard";
            const awsRegion = "eu-central-1";
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map',
                style: styleUrl,
                center: [-96, 37.8],
                zoom: 2
            });

            const popup = new maplibregl.Popup({closeOnClick: false})
                .setLngLat([-96, 37.8])
                .setHTML('<h1>Hello USA!</h1>')
                .addTo(map);
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Mostrar pop-up ao clicar em um marcador
<a name="show-popup-on-click"></a>

Neste exemplo, você anexará um pop-up a um marcador e o exibirá ao clicar.

### Exemplo de clique no pop-up do marcador
<a name="click-popup-web"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Display a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard";
            const awsRegion = "eu-central-1";
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const centralpark_nyc = [-73.966,40.781];
            const map = new maplibregl.Map({
                container: 'map',
                style: styleUrl,
                center: centralpark_nyc,
                zoom: 13
            });

            const popup = new maplibregl.Popup({offset: 25}).setText(
                'Central Park, NY is one of the most filmed locations in the world, appearing in over 240 feature films since 1908.'
            );

            new maplibregl.Marker()
                .setLngLat(centralpark_nyc)
                .setPopup(popup)
                .addTo(map);
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Mostrar pop-up ao passar o mouse sobre um marcador
<a name="show-popup-on-hover"></a>

Neste exemplo, você anexará um pop-up a um marcador e o exibirá ao passar o mouse.

### Exemplo de pop-up no marcador ao passar o mouse
<a name="hover-popup-web"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Display a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "<API_KEY>";
            const mapStyle = "Standard";
            const awsRegion = "eu-central-1";
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            const centralpark_nyc = [-73.966,40.781];
            const map = new maplibregl.Map({
                container: 'map',
                style: styleUrl,
                center: centralpark_nyc,
                zoom: 13
            });

            const marker = new maplibregl.Marker().setLngLat([-73.968285, 40.785091]).addTo(map);
            const popup = new maplibregl.Popup({ offset: 25 })
                .setHTML("<h3>Central Park</h3><p>Welcome to Central Park, NYC!</p>");

            const markerElement = marker.getElement();
            markerElement.addEventListener('mouseenter', () => {
                popup.setLngLat([-73.968285, 40.785091]).addTo(map);
            });
            markerElement.addEventListener('mouseleave', () => {
                popup.remove();
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Mostrar pop-up ao clicar em vários marcadores
<a name="popup-on-multiple-markers"></a>

Neste exemplo, você anexará um pop-up a vários marcadores e o exibirá ao clicar.

### Exemplo de pop-up ao clicar em vários marcadores
<a name="popup-on-multiple-markers-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Display a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div id="map"></div>
        <script>
            const apiKey = "Your API Key";
            const mapStyle = "Monochrome";  
            const awsRegion = "eu-central-1";
            const colorScheme ="Light";
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?color-scheme=${colorScheme}&key=${apiKey}`;

            const map = new maplibregl.Map({
                container: 'map', 
                style: styleUrl, 
                center: [-123.126979, 49.2841563],
                zoom: 15,
                minZoom: 13,
                maxZoom: 17
            });

            const locations = [
                { id: 1, lat: 49.281108, lng: -123.117049, name: "Amazon - YVR11 office" },
                { id: 2, lat: 49.285580, lng: -123.115806, name: "Amazon - YVR20 office" },
                { id: 3, lat: 49.281661, lng: -123.114174, name: "Amazon - YVR14 office" },
                { id: 4, lat: 49.280663, lng: -123.114379, name: "Amazon - YVR26 office" },
                { id: 5, lat: 49.285343, lng: -123.129119, name: "Amazon - YVR25 office" }
            ];

            const geojson = {
                type: "FeatureCollection",
                features: locations.map(location => ({
                    type: "Feature",
                    properties: { id: location.id, name: location.name },
                    geometry: {
                        type: "Point",
                        coordinates: [location.lng, location.lat]
                    }
                }))
            };
            
            map.on('load', async () => {
                try {
                    const image = await loadImage('https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Amazon_Web_Services_Logo.svg/1200px-Amazon_Web_Services_Logo.svg.png');
                    map.addImage('aws', image);

                    map.addSource('places', { type: 'geojson', data: geojson });

                    map.addLayer({
                        'id': 'places',
                        'type': 'symbol',
                        'source': 'places',
                        'layout': {
                            'icon-image': 'aws',
                            'icon-size': 0.025,
                            'icon-allow-overlap': true
                        }
                    });

                    const popup = new maplibregl.Popup({ closeButton: false, closeOnClick: false });

                    map.on('click', 'places', (e) => {
                        map.getCanvas().style.cursor = 'pointer';
                        const coordinates = e.features[0].geometry.coordinates.slice();
                        const name = e.features[0].properties.name;
                        popup.setLngLat(coordinates).setHTML(name).addTo(map);
                    });

                    map.on('mouseleave', 'places', () => {
                        map.getCanvas().style.cursor = '';
                        popup.remove();
                    });
                } catch (error) {
                    console.error('Error loading image:', error);
                }
            });

            async function loadImage(url) {
                return new Promise((resolve, reject) => {
                    const img = new Image();
                    img.crossOrigin = 'anonymous';
                    img.onload = () => resolve(img);
                    img.onerror = (error) => reject(error);
                    img.src = url;
                });
            }
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Mostrar pop-up ao passar o mouse sobre vários marcadores
<a name="popup-on-hover-multiple-markers"></a>

Neste exemplo, você anexará um pop-up a vários marcadores e o exibirá ao passar o mouse.

### Exemplo de pop-up ao passar o mouse sobre vários marcadores
<a name="popup-on-hover-multiple-markers-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Display a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body>
        <!-- Map container --> 
        <div id="map" style="width: 100%; height: 100vh;"></div>
        <script>
            const apiKey = "You API Key";
            const mapStyle = "Monochrome";  // eg. Standard, Monochrome, Hybrid, Satellite  
            const awsRegion = "eu-central-1"; // eg. us-east-2, us-east-1, etc.
            const colorScheme ="Light"; // eg Dark, Light (default)
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?color-scheme=${colorScheme}&key=${apiKey}`;

            // Initialize the map
            const map = new maplibregl.Map({
                container: 'map', // Container id
                style: styleUrl, // Style URL
                center: [-123.126979, 49.2841563], // Starting position [lng, lat]
                zoom: 15, // Starting zoom
                minZoom: 13, // Minimum zoom level
                maxZoom: 17 // Maximum zoom level
            });

            const locations = [
                { id: 1, lat: 49.281108, lng: -123.117049, name: "Amazon - YVR11 office" },
                { id: 2, lat: 49.285580, lng: -123.115806, name: "Amazon - YVR20 office" },
                { id: 3, lat: 49.281661, lng: -123.114174, name: "Amazon - YVR14 office" },
                { id: 4, lat: 49.280663, lng: -123.114379, name: "Amazon - YVR26 office" },
                { id: 5, lat: 49.285343, lng: -123.129119, name: "Amazon - YVR25 office" }
            ];

            // Convert locations to GeoJSON
            const geojson = {
                type: "FeatureCollection",
                features: locations.map(location => ({
                    type: "Feature",
                    properties: { 
                        id: location.id,
                        name: location.name // Use the name property for popup
                    },
                    geometry: {
                        type: "Point",
                        coordinates: [location.lng, location.lat] // GeoJSON uses [lng, lat]
                    }
                }))
            };
            
            // Add the GeoJSON source and layers when the map loads
            map.on('load', async () => {
                try {
                    // Load the PNG image for the marker
                    const image = await loadImage('https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Amazon_Web_Services_Logo.svg/1200px-Amazon_Web_Services_Logo.svg.png'); // Ensure this URL points to a valid PNG
                    map.addImage('aws', image);

                    // Add a GeoJSON source
                    map.addSource('places', {
                        type: 'geojson',
                        data: geojson
                    });

                    // Add a layer showing the places with custom icons
                    map.addLayer({
                        'id': 'places',
                        'type': 'symbol',
                        'source': 'places',
                        'layout': {
                            'icon-image': 'aws',
                            'icon-size': 0.025, // Adjust as needed
                            'icon-allow-overlap': true // Allow icons to overlap
                        }
                    });

                    // Create a popup
                    const popup = new maplibregl.Popup({
                        closeButton: false,
                        closeOnClick: false
                    });

                    // Event handlers for mouse enter and leave
                    map.on('mouseenter', 'places', (e) => {
                        map.getCanvas().style.cursor = 'pointer';
                        const coordinates = e.features[0].geometry.coordinates.slice();
                        const name = e.features[0].properties.name;

                        // Set popup content and position
                        popup.setLngLat(coordinates).setHTML(name).addTo(map);
                    });

                    map.on('mouseleave', 'places', () => {
                        map.getCanvas().style.cursor = '';
                        popup.remove();
                    });
                } catch (error) {
                    console.error('Error loading image:', error);
                }
            });

            // Helper function to load the image
            async function loadImage(url) {
                return new Promise((resolve, reject) => {
                    const img = new Image();
                    img.crossOrigin = 'anonymous'; // Enable CORS
                    img.onload = () => resolve(img);
                    img.onerror = (error) => reject(error);
                    img.src = url;
                });
            }
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; } 
html, body, #map { height: 100%; }
```

------

# Como definir um idioma preferido para um mapa
<a name="how-to-set-preferred-language-map"></a>

O Amazon Location Service permite que você defina o idioma preferido no lado do cliente atualizando o descritor de estilo para um idioma específico. Você pode definir um idioma preferido e exibir o conteúdo nesse idioma quando incorporado. Caso contrário, ele voltará para outro idioma.

**nota**  
Para obter mais informações, consulte [Localização e internacionalização](maps-localization-internationalization.md).

## Defina o idioma preferido como japonês e mostre o mapa do Japão
<a name="set-preferred-language-japanese"></a>

Neste exemplo, você definirá o estilo de atualização para mostrar os rótulos do mapa em japonês (ja).

### Defina o idioma preferido para o exemplo japonês
<a name="set-preferred-language-japanese-example"></a>

------
#### [ index.html ]

```
<html>
<head>
    <link href="https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css" rel="stylesheet" />
    <script src="https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js"></script>
    <link href="style.css" rel="stylesheet" />
    <script src="main.js"></script>
</head>
<body>
    <div id="map" />
    <script>
        const apiKey = "Add Your Api Key";
        const mapStyle = "Standard";
        const awsRegion = "eu-central-1";
        const initialLocation = [139.76694, 35.68085]; //Japan   
        
        async function initializeMap() {
            // get updated style object for preferred language. 
            const styleObject = await getStyleWithPreferredLanguage("ja");
            // Initialize the MapLibre map with the fetched style object
            const map = new maplibregl.Map({
                container: 'map',
                style: styleObject,
                center: initialLocation,
                zoom: 15,
                hash:true,
            });
            map.addControl(new maplibregl.NavigationControl(), "top-left");
        
            return map; 
        }
  
        initializeMap();
    </script>
</body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; }
#map { height: 100vh; }
```

------
#### [ main.js ]

```
async function getStyleWithPreferredLanguage(preferredLanguage) {
    const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

    return fetch(styleUrl)
        .then(response => {
            if (!response.ok) {
                throw new Error('Network response was not ok ' + response.statusText);
            }
            return response.json();
        })
        .then(styleObject => {
            if (preferredLanguage !== "en") {
                styleObject = setPreferredLanguage(styleObject, preferredLanguage);
            }

            return styleObject;
        })
        .catch(error => {
            console.error('Error fetching style:', error);
        });
}

const setPreferredLanguage = (style, language) => {
    let nextStyle = { ...style };

    nextStyle.layers = nextStyle.layers.map(l => {
        if (l.type !== 'symbol' || !l?.layout?.['text-field']) return l;
        return updateLayer(l, /^name:([A-Za-z\-\_]+)$/g, `name:${language}`);
    });

    return nextStyle;
};

const updateLayer = (layer, prevPropertyRegex, nextProperty) => {
    const nextLayer = {
        ...layer,
        layout: {
            ...layer.layout,
            'text-field': recurseExpression(
                layer.layout['text-field'],
                prevPropertyRegex,
                nextProperty
            )
        }
    };
    return nextLayer;
};

const recurseExpression = (exp, prevPropertyRegex, nextProperty) => {
    if (!Array.isArray(exp)) return exp;
    if (exp[0] !== 'coalesce') return exp.map(v =>
        recurseExpression(v, prevPropertyRegex, nextProperty)
    );

    const first = exp[1];
    const second = exp[2];

    let isMatch =
    Array.isArray(first) &&
    first[0] === 'get' &&
    !!first[1].match(prevPropertyRegex)?.[0];

    isMatch = isMatch && Array.isArray(second) && second[0] === 'get';
    isMatch = isMatch && !exp?.[4];

    if (!isMatch) return exp.map(v =>
        recurseExpression(v, prevPropertyRegex, nextProperty)
    );

    return [
        'coalesce',
        ['get', nextProperty],
        ['get', 'name:en'],
        ['get', 'name']
    ];
};
```

------

## Defina o idioma preferido com base no idioma do navegador do usuário final
<a name="set-preferred-language-browser"></a>

Neste exemplo, você definirá o estilo de atualização para mostrar os rótulos do mapa no idioma do dispositivo do usuário. 

### Defina o idioma preferido com base no exemplo de idioma do navegador
<a name="set-preferred-language-browser-code"></a>

------
#### [ index.html ]

```
<html>
<head>
    <link href="https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css" rel="stylesheet" />
    <script src="https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js"></script>
    <link href="style.css" rel="stylesheet" />
    <script src="main.js"></script>
</head>
<body>
    <div id="map" />
    <script>
        const apiKey = "Add Your Api Key";
        const mapStyle = "Standard";
        const awsRegion = "eu-central-1";
        const initialLocation = [139.76694, 35.68085]; //Japan     
        const userLanguage = navigator.language || navigator.userLanguage;
        const languageCode = userLanguage.split('-')[0];

        async function initializeMap() {
             const styleObject = await getStyleWithPreferredLanguage(languageCode);
             const map = new maplibregl.Map({
                 container: 'map',
                 style: styleObject,
                 center: initialLocation,
                 zoom: 15,
                 hash:true,
             });
             map.addControl(new maplibregl.NavigationControl(), "top-left");
             return map; 
        }

        initializeMap();
    </script>
</body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; }
#map { height: 100vh; }
```

------
#### [ main.js ]

```
async function getStyleWithPreferredLanguage(preferredLanguage) {
    const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

    return fetch(styleUrl)
        .then(response => {
            if (!response.ok) {
                throw new Error('Network response was not ok ' + response.statusText);
            }
            return response.json();
        })
        .then(styleObject => {
            if (preferredLanguage !== "en") {
                styleObject = setPreferredLanguage(styleObject, preferredLanguage);
            }

            return styleObject;
        })
        .catch(error => {
            console.error('Error fetching style:', error);
        });
}

const setPreferredLanguage = (style, language) => {
    let nextStyle = { ...style };

    nextStyle.layers = nextStyle.layers.map(l => {
        if (l.type !== 'symbol' || !l?.layout?.['text-field']) return l;
        return updateLayer(l, /^name:([A-Za-z\-\_]+)$/g, `name:${language}`);
    });

    return nextStyle;
};

const updateLayer = (layer, prevPropertyRegex, nextProperty) => {
    const nextLayer = {
        ...layer,
        layout: {
            ...layer.layout,
            'text-field': recurseExpression(
                layer.layout['text-field'],
                prevPropertyRegex,
                nextProperty
            )
        }
    };
    return nextLayer;
};

const recurseExpression = (exp, prevPropertyRegex, nextProperty) => {
    if (!Array.isArray(exp)) return exp;
    if (exp[0] !== 'coalesce') return exp.map(v =>
        recurseExpression(v, prevPropertyRegex, nextProperty)
    );

    const first = exp[1];
    const second = exp[2];

    let isMatch =
    Array.isArray(first) &&
    first[0] === 'get' &&
    !!first[1].match(prevPropertyRegex)?.[0];

    isMatch = isMatch && Array.isArray(second) && second[0] === 'get';
    isMatch = isMatch && !exp?.[4];

    if (!isMatch) return exp.map(v =>
        recurseExpression(v, prevPropertyRegex, nextProperty)
    );

    return [
        'coalesce',
        ['get', nextProperty],
        ['get', 'name:en'],
        ['get', 'name']
    ];
};
```

------

# Como definir a visão política de um mapa
<a name="how-to-set-political-view-map"></a>

O Amazon Location Service permite que você defina a visão política para garantir que sua inscrição esteja em conformidade com as leis locais. Você pode definir uma visão política e comparar mapas de diferentes perspectivas políticas.

**nota**  
Para obter mais informações, consulte [Localização e internacionalização](maps-localization-internationalization.md).

## Defina a visão política e compare com a perspectiva internacional
<a name="set-political-view"></a>

Neste exemplo, você criará e comparará mapas de duas visões políticas diferentes: uma perspectiva internacional e a visão da Turquia sobre Chipre.

### Exemplo de comparação de visões políticas
<a name="set-political-view-compare-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Display a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <link rel='stylesheet' href='style.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
        <script src="https://unpkg.com/@mapbox/mapbox-gl-sync-move@0.3.1"></script>
        <script src='main.js'></script>
    </head>
    <body>
        <!-- Map container -->
        <div class="maps">
        <div id="internationalView"></div>
        <div id="turkeyView"></div>
        </div>
        <script>

            const apiKey = "Add Your Api Key";
            const mapStyle = "Standard";
            const awsRegion = "eu-central-1";

            // International perspective without political-view query parameter
            const internationalViewMapStyleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;

            // Turkey perspective with political-view query parameter
            const turkeyViewMapStyleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?political-view=TUR&key=${apiKey}`;

            const internationalViewMap = new maplibregl.Map({
                container: 'internationalView', // container id
                style: internationalViewMapStyleUrl, // style URL
                center: [33.0714561, 35.1052139], // starting position [lng, lat]
                zoom: 7.5,
                validateStyle: false, // Disable style validation for faster map load
            });

            const turkeyViewMap = new maplibregl.Map({
                container: 'turkeyView', // container id
                style: turkeyViewMapStyleUrl, // style URL
                center: [33.0714561, 35.1052139],
                zoom: 7.5,
                validateStyle: false, // Disable style validation for faster map load
            });

            // Sync map zoom and center
            syncMaps(internationalViewMap, turkeyViewMap);

            // Informational popup for international view
            new maplibregl.Popup({closeOnClick: false})
                .setLngLat([33, 35.5])
                .setHTML('<h4>International view <br> recognizes <br> Cyprus</h4>')
                .addTo(internationalViewMap);

            // Informational popup for Turkey's view
            new maplibregl.Popup({closeOnClick: false})
                .setLngLat([33, 35.5])
                .setHTML('<h4>Turkey does not <br> recognize <br> Cyprus</h4>')
                .addTo(turkeyViewMap);
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body { height: 100%; }
#internationalView, #turkeyView { height: 100%; width: 100%; }
.maps {
    display: flex;
    width: 100%;
    height: 100%;
}
```

------

# Como filtrar o POI no mapa
<a name="how-to-filter-poi-map"></a>

O Amazon Location Service permite que você selecione as categorias de POI (point-of-interest) relevantes para seu caso de uso. Saiba mais sobre o estilo de mapa padrão, [POI completo](https://docs.aws.amazon.com/location/latest/developerguide/standard-map-style.html#rich-poi) 

## Filtrar o POI
<a name="test-collapse-me"></a>

Neste exemplo, você exibe um mapa interativo que permite aos usuários filtrar por categorias de POI.

------
#### [ Index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>POI demo</title>
        <meta property="og:description" content="" />
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <link rel="stylesheet" href="https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css" />
        <link rel='stylesheet' href='style.css' />
        <script src="https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js"></script>

    </head>
    <body>

        <div id="map"></div>
        <ul id="buttons"></ul>
        <script>
            // -------------------------------------------------------------------------------------------
            // Function to set layer state
            // -------------------------------------------------------------------------------------------

            const initialLayerState = {
                Buildings: {
                    layers: ['poi_900_areas_buildings'],
                    visibility: 'visible'
                },
                'Business & Services': {
                    layers: ['poi_700_business_services'],
                    visibility: 'visible'
                },
                Shopping: { layers: ['poi_600_shopping'], visibility: 'visible' },
                'Leisure & Outdoors': {
                    layers: ['poi_550_leisure_outdoor'],
                    visibility: 'visible'
                },
                Facilities: { layers: ['poi_800_facilities'], visibility: 'visible' },
                Transit: { layers: ['poi_400_transit'], visibility: 'visible' },
                'Sights & Museums': {
                    layers: ['poi_300_sights_museums'],
                    visibility: 'visible'
                },
                'Food & Drink': {
                    layers: ['poi_100_food_drink'],
                    visibility: 'visible'
                },
                'Going Out & Entertainment': {
                    layers: ['poi_200_going_out_entertainment'],
                    visibility: 'visible'
                },
                Accommodations: {
                    layers: ['poi_500_accommodations'],
                    visibility: 'visible'
                },
                Parks: { layers: ['poi_landuse_park'], visibility: 'visible' },
                'Public Complexes': {
                    layers: ['poi_landuse_public_complex'],
                    visibility: 'visible'
                }
            };

            // -------------------------------------------------------------------------------------------
            // Setup auth and state
            // -------------------------------------------------------------------------------------------

            let state = { ...initialLayerState };

                const API_KEY = "<api key>"; // check how to create api key for Amazon Location
                const AWS_REGION = "eu-central-1"; // Replace with your AWS region

                const mapStyle = "Standard";
                const colorScheme = "Light";


            // Style URL
            const styleUrl = `https://maps.geo.${AWS_REGION}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${API_KEY}&color-scheme=${colorScheme}`;


            // Render the map with the stylesheet
            map = new maplibregl.Map({
                container: 'map',
                style: styleUrl,
                center: [-73.966148, 40.781803],
                zoom: 17
            });

            const buttonContainer = document.getElementById('buttons');

            for (const category of Object.keys(state)) {
                const newButton = document.createElement('li');
                newButton.classList.add('button');
                newButton.classList.add('active');
                newButton.id = category;

                // Each config has a label
                newButton.textContent = category;

                // On click, we want to switch the value between 'on' and 'off'
                // We could check the config for available options in more complex cases
                newButton.onclick = () => {
                    onClickCategory(category);
                };

                // Append the button to our button container
                buttonContainer.appendChild(newButton);
            }

            // -------------------------------------------------------------------------------------------
            // LAYER VISIBILITY FUNCTION
            // -------------------------------------------------------------------------------------------

            // On click, get the stylesheet, update the language, and set the style
            const onClickCategory = category => {
                const categoryState = state[category];
                const { visibility, layers } = categoryState;

                let nextState;

                // For active button styling
                const activeButton = document.getElementById(category);

                if (visibility === 'visible') {
                    nextState = 'none';
                    activeButton.classList.remove('active');
                } else {
                    nextState = 'visible';
                    activeButton.classList.add('active');
                }

                layers.forEach(id =>
                    map.setLayoutProperty(id, 'visibility', nextState)
                );

                state[category].visibility = nextState;
            };
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body {
    margin: 0;
    padding: 0;
}
html,
body,
#map {
    height: 100%;
}


#buttons {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: absolute;
    top: 0;
    min-width: 100px;
    max-height: calc(100% - 2rem);
    overflow: auto;
    padding: 1rem;
    background-color: white;
    margin: 0;
}

.button {
    display: inline-block;
    cursor: pointer;
    padding: 8px;
    border-radius: 3px;
    margin-top: 10px;
    font-size: 12px;
    text-align: center;
    color: #fff;
    background: #8a8a8a;
    font-family: sans-serif;
    font-weight: bold;
}

.button:first-child {
    margin-top: 0;
}

.active {
    background: #ee8a65;
}
```

------

# Como criar mapas topográficos
<a name="how-to-create-topographic-maps"></a>

O Amazon Location Service permite que você crie mapas topográficos usando recursos de densidade de terreno e contorno para visualizar mudanças de elevação e características geográficas.

## Mostrar Hillshade
<a name="show-hillshade"></a>

O recurso Terrain permite que você visualize Hillshade, mudanças de elevação e características geográficas relacionadas.

### Exemplo de Hillshade
<a name="hillshade-example"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Terrain Map</title>
        <meta charset='utf-8'>
            <meta name="viewport" content="width=device-width, initial-scale=1">
                <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
                <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body style="margin: 0; padding: 0;">
        <div id="map" style="width: 100%; height: 100vh;"></div>
        <script>
            const apiKey = "Add Your Api Key";
            const mapStyle = "Standard";
            const awsRegion = "us-east-1";

            const map = new maplibregl.Map({
                container: 'map',
                style: `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?terrain=Hillshade&key=${apiKey}`,
                center: [-119.5383, 37.8651], // Yosemite coordinates for terrain visibility
                zoom: 12,
                validateStyle: false, // Disable style validation for faster map load
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Mostrar elevação com linhas de densidade de contorno
<a name="show-contour-density"></a>

O Amazon Location Service permite que você adicione recursos de densidade de contorno ao seu mapa. Isso fornece a visualização da inclinação geográfica e das mudanças de elevação.

### Exemplo de densidade de contorno
<a name="contour-density-example"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Contour Map</title>
        <meta charset='utf-8'>
            <meta name="viewport" content="width=device-width, initial-scale=1">
                <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
                <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body style="margin: 0; padding: 0;">
        <div id="map" style="width: 100%; height: 100vh;"></div>
        <script>
            const apiKey = "Add Your Api Key";
            const mapStyle = "Standard";
            const awsRegion = "us-east-1";

            const map = new maplibregl.Map({
                container: 'map',
                style: `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?contour-density=Medium&key=${apiKey}`,
                center: [-119.3047, 37.7887], 
                zoom: 12,
                validateStyle: false, // Disable style validation for faster map load
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

## Mostrar as linhas Hillshade e Contour Density
<a name="show-hillshade-contour"></a>

Com o Amazon Location Service, você pode combinar os recursos Hillshade e Contour Density em seu mapa para uma visualização abrangente do terreno. Isso proporciona uma percepção aprimorada da profundidade e uma compreensão completa das variações topográficas e das características do terreno.

### Exemplo de Hillshade com densidade de contorno
<a name="hillshade-contour-example"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Hillshade and Contour Map</title>
        <meta charset='utf-8'>
            <meta name="viewport" content="width=device-width, initial-scale=1">
                <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
                <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body style="margin: 0; padding: 0;">
        <div id="map" style="width: 100%; height: 100vh;"></div>
        <script>
            const apiKey = "Add Your Api Key";
            const mapStyle = "Standard";
            const awsRegion = "us-east-1";

            const map = new maplibregl.Map({
                container: 'map',
                style: `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?contour-density=Medium&terrain=Hillshade&key=${apiKey}`,
                center: [-119.3047, 37.7887],
                zoom: 12,
                validateStyle: false, // Disable style validation for faster map load
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body { margin: 0; padding: 0; }
html, body, #map { height: 100%; }
```

------

# Como mostrar o tráfego em tempo real em um mapa
<a name="how-to-set-real-time-traffic-map"></a>

 Usando o Amazon Location Service, você pode adicionar recursos de tráfego ao seu mapa. Isso fornece dados de tráfego em tempo real para mostrar as condições atuais do tráfego, como congestionamento rodoviário atual, construção e incidentes, ajudando você a fazer escolhas de rota.

## Faça um mapa com tráfego em tempo real
<a name="how-to-set-real-time-traffic"></a>

Este exemplo mostra como criar um mapa com dados de tráfego em tempo real.

### Exemplo de tráfego em tempo real
<a name="how-to-set-real-time-traffic-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Traffic Map</title>
        <meta charset='utf-8'>
            <meta name="viewport" content="width=device-width, initial-scale=1">
                <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
                <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body style="margin: 0; padding: 0;">
        <div id="map" style="width: 100%; height: 100vh;"></div>
        <script>
            const apiKey = "Add Your Api Key";
            const mapStyle = "Standard";
            const awsRegion = "us-east-1";

            const map = new maplibregl.Map({
                container: 'map',
                style: `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?traffic=All&key=${apiKey}`,
                center: [-74.0060 ,40.7128], // New York City coordinates for traffic visibility
                zoom: 12,
                validateStyle: false, // Disable style validation for faster map load
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body {
    margin: 0;
    padding: 0;
}

#map {
    width: 100%;
    height: 100vh;
}
```

------

# Como criar um mapa logístico
<a name="how-to-create-logistic-map"></a>

O TravelModes recurso permite criar mapas logísticos usando o Amazon Location Service. TravelModes exibe informações de roteamento relevantes para navegação de caminhões com restrições rodoviárias relacionadas. Use o [Transit TravelMode](https://docs.aws.amazon.com/location/latest/developerguide/how-to-show-transit-details-map.html) para mostrar detalhes do transporte público.

## Crie um mapa com Truck TravelMode
<a name="how-to-create-truck-map"></a>

Este exemplo mostra como criar um mapa com `Truck` `TravelMode` roteamento logístico.

### Exemplo de caminhão
<a name="how-to-create-truck-map-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Truck Map</title>
        <meta charset='utf-8'>
            <meta name="viewport" content="width=device-width, initial-scale=1">
                <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
                <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body style="margin: 0; padding: 0;">
        <div id="map" style="width: 100%; height: 100vh;"></div>
        <script>
            const apiKey = "Add Your Api Key";
            const mapStyle = "Standard";
            const awsRegion = "us-east-1";

            const map = new maplibregl.Map({
                container: 'map',
                style: `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?travel-modes=Truck&key=${apiKey}`,
                center: [-74.0060 ,40.7128],
                zoom: 12,
                validateStyle: false, // Disable style validation for faster map load
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body {
    margin: 0;
    padding: 0;
}

#map {
    width: 100%;
    height: 100vh;
}
```

------

# Como mostrar detalhes do transporte público em um mapa
<a name="how-to-show-transit-details-map"></a>

O Amazon Location Service permite que você adicione recursos de transporte público aos mapas. `Transit``TravelMode`Exibe informações de roteamento para transporte público, como linhas de trem codificadas por cores. Veja também como configurar a [logística TravelMode](https://docs.aws.amazon.com/location/latest/developerguide/how-to-create-logistic-map.html) para opções adicionais.

## Crie um mapa com detalhes do trânsito
<a name="how-to-show-transit-map"></a>

Este exemplo mostra como criar um mapa com detalhes do transporte público com o Transit TravelMode for public transport.

### Exemplo de trânsito
<a name="how-to-show-transit-map-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Transit Map</title>
        <meta charset='utf-8'>
            <meta name="viewport" content="width=device-width, initial-scale=1">
                <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
                <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body style="margin: 0; padding: 0;">
        <div id="map" style="width: 100%; height: 100vh;"></div>
        <script>
            const apiKey = "Add Your Api Key";
            const mapStyle = "Standard";
            const awsRegion = "us-east-1";

            const map = new maplibregl.Map({
                container: 'map',
                style: `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?travel-modes=Transit&key=${apiKey}`,
                center: [-74.0060 ,40.7128],
                zoom: 12,
                validateStyle: false, // Disable style validation for faster map load
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body {
    margin: 0;
    padding: 0;
}

#map {
    width: 100%;
    height: 100vh;
}
```

------

# Como criar um mapa 3D
<a name="how-to-create-a-3d-map"></a>

O Amazon Location Service permite adicionar recursos tridimensionais aos mapas, como `Terrain3D` exibir dados de elevação como uma superfície tridimensional ou `Buildings3D` exibir estruturas urbanas com altura e volume. 

## Crie um mapa com detalhes tridimensionais do terreno
<a name="how-to-show-3d-terrain-map"></a>

Este exemplo mostra como criar um mapa com `Terrain3D` parâmetros. 

### Exemplo de Terrain3D
<a name="how-to-show-3d-terrain-map-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>3D Terrain</title>
        <meta charset='utf-8'>
            <meta name="viewport" content="width=device-width, initial-scale=1">
                <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
                <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body style="margin: 0; padding: 0;">
        <div id="map" style="width: 100%; height: 100vh;"></div>
        <script>
            const apiKey = "Add Your Api Key";
            const mapStyle = "Standard";
            const awsRegion = "us-east-1";

            const map = new maplibregl.Map({
                container: 'map',
                style: `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?terrain=Terrain3D&key=${apiKey}`,
                center: [7.6583, 45.9763],
                zoom: 12,
                pitch: 60, // Tilt angle (0-85 degrees)
                validateStyle: false, // Disable style validation for faster map load
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body {
    margin: 0;
    padding: 0;
}

#map {
    width: 100%;
    height: 100vh;
}
```

------

## Crie um mapa com detalhes tridimensionais de edifícios
<a name="how-to-show-3d-buildings-map"></a>

Este exemplo mostra como criar um mapa com `Buildings3D` parâmetros. 

### Exemplo de edifícios 3D
<a name="how-to-show-3d-buildings-map-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>3D Buildings</title>
        <meta charset='utf-8'>
            <meta name="viewport" content="width=device-width, initial-scale=1">
                <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
                <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body style="margin: 0; padding: 0;">
        <div id="map" style="width: 100%; height: 100vh;"></div>
        <script>
            const apiKey = "Add Your Api Key";
            const mapStyle = "Standard";
            const awsRegion = "us-east-1";

            const map = new maplibregl.Map({
                container: 'map',
                style:
                `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?buildings=Buildings3D&key=${apiKey}`,
                center: [7.6583, 45.9763],
                zoom: 12,
                pitch: 60, // Tilt angle (0-85 degrees)
                validateStyle: false, // Disable style validation for faster map load
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body {
    margin: 0;
    padding: 0;
}

#map {
    width: 100%;
    height: 100vh;
}
```

------

## Ativar/desativar a visualização do globo
<a name="how-to-enable-disable-globe-view"></a>

Este exemplo mostra como ativar ou desativar a projeção da vista do globo. Por padrão, a visualização do globo está ativada. 

### Exemplo de visualização do globo
<a name="how-to-enable-disable-globe-view-code"></a>

------
#### [ index.html ]

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Globe View</title>
        <meta charset='utf-8'>
            <meta name="viewport" content="width=device-width, initial-scale=1">
                <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
                <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
    </head>
    <body style="margin: 0; padding: 0;">
        <div id="map" style="width: 100%; height: 100vh;"></div>
        <script>
            const apiKey = "Add Your Api Key";
            const mapStyle = "Standard";
            const awsRegion = "us-east-1";

            const map = new maplibregl.Map({
                container: 'map',
                style:
                `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`,
                center: [-74.5, 40],
                zoom: 2,
                validateStyle: false, // Disable style validation for faster map load
            });

            map.on('style.load', () => {
                // Globe view is enabled by default
                // To disable globe view, uncomment the next line:
                // map.setProjection({});
            });
        </script>
    </body>
</html>
```

------
#### [ style.css ]

```
body {
    margin: 0;
    padding: 0;
}

#map {
    width: 100%;
    height: 100vh;
}
```

------

# Como usar mapas estáticos
<a name="static-maps-how-to"></a>

Estes tópicos de instruções oferecem orientação passo a passo para personalizar mapas estáticos com sobreposições e elementos visuais, utilizando os recursos de mapeamento do Amazon Location Service. Cada guia orienta você pelas principais tarefas, como ajustar as dimensões do mapa, escolher entre zoom ou raio e adicionar vários elementos geoespaciais, como marcadores, polígonos, linhas e círculos de proximidade. Esses guias usam formatos compactos e GeoJSON para garantir flexibilidade no estilo e na configuração.

Se você está otimizando mapas para aplicativos voltados para o cliente ou realizando análises geoespaciais, esses tópicos fornecem instruções claras sobre como personalizar seus mapas estáticos para atender a requisitos específicos. Seguindo os exemplos detalhados, você aprenderá como aprimorar as apresentações de mapas e gerenciar com eficiência os dados geográficos para uma variedade de necessidades comerciais.

**Topics**
+ [Como obter um mapa estático de uma posição específica](get-static-map-specific-position.md)
+ [Como obter um mapa estático de uma dimensão específica](get-static-map-specific-dimension.md)
+ [Como decidir entre raio e zoom para um mapa estático](choose-radius-vs-zoom.md)
+ [Como adicionar escala para um mapa estático](add-scale-static-map.md)
+ [Como adicionar um marcador a um mapa estático](add-marker-static-map.md)
+ [Como adicionar uma linha a um mapa estático](how-to-add-line-static.md)
+ [Como adicionar uma rota a um mapa estático](how-to-add-route.md)
+ [Como adicionar um polígono a um mapa estático](how-to-add-polygon-static.md)
+ [Como definir o idioma para mapas estáticos](set-language-static-map.md)
+ [Como adicionar um círculo de proximidade a um mapa estático](how-to-add-proximity-circle.md)

# Como obter um mapa estático de uma posição específica
<a name="get-static-map-specific-position"></a>

Neste tópico, você aprenderá a recuperar mapas estáticos do Amazon Location Service com base em parâmetros específicos. Você aprenderá a gerar um mapa estático para uma posição central, uma caixa delimitadora e um conjunto de posições limitadas. Os exemplos fornecidos ajudarão você a personalizar a largura, a altura e o estilo do mapa.

**nota**  
Você deve passar `map` ou `map@2x` ao gerar um mapa estático.

## Obter imagem do mapa para uma posição central
<a name="get-map-center-position"></a>

Neste exemplo, você criará uma imagem de mapa com largura `1024` e altura `1024` com as coordenadas centrais definidas em `-123.1143,49.2763`, em que `longitude=-123.1143` e `latitude=49.2763`, e um nível de zoom de `15`.

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&zoom=15&center=-123.1156126,49.2767046&key=API_KEY
```

------
#### [ Response image ]

![\[Aerial view of a coastal city with dense urban layout, harbor, and large stadium visible.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-center.png)


------

## Obter imagem do mapa para a caixa delimitadora
<a name="get-map-bounding-box"></a>

Neste exemplo, você gerará uma imagem de mapa do Sudeste Asiático definindo a caixa delimitadora da área. 

O formato de `bbox` é `{southwest_longitude},{southwest_latitude},{northeast_longitude},{northeast_latitude}`.

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&bounding-box=90.00,-21.94,146.25,31.95&key=API_KEY
```

------
#### [ Response image ]

![\[Satellite view of Southeast Asia, showing mainland, islands, and surrounding waters.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-bounding-box.png)


------

## Obter imagem do mapa para posições limitadas
<a name="get-map-bounded-positions"></a>

Neste exemplo, você gerará um mapa que abrange vários lugares imperdíveis em Paris, cada um especificado por suas coordenadas (longitude, latitude). As posições delimitadas incluem: Torre Eiffel, Museu do Louvre, Catedral de Notre-Dame, Champs-Élysées, Arco do Triunfo, Basílica do Sagrado Coração, Jardins de Luxemburgo, Musée d'Orsay, Place de la Concorde e Palais Garnier. 

O formato para posições delimitadoras é `{longitude1},{latitude1},{longitude2},{latitude2} ... {longitudeN},{latitudeN}`.

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&bounded-positions=2.2945,48.8584,2.3376,48.8606,2.3500,48.8529,2.3076,48.8698,2.2950,48.8738,2.3431,48.8867,2.3372,48.8462,2.3266,48.8600,2.3212,48.8656,2.3317,48.8719&key=API_KEY
```

------
#### [ Response image ]

![\[Aerial view of Paris showing dense urban layout, Seine River, and iconic landmarks.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-bounding-position.png)


------

# Como obter um mapa estático de uma dimensão específica
<a name="get-static-map-specific-dimension"></a>

Neste tópico, você aprenderá a definir as dimensões (altura e largura) para mapas estáticos usando o Amazon Location Service. A personalização das dimensões de uma imagem de mapa permite equilibrar desempenho, qualidade visual e usabilidade. Os valores máximos para `width` e `height` são 1400 pixels, enquanto os valores mínimos são 64 pixels. O tamanho máximo do resultado é 6 MB.

Além disso, você pode usar os parâmetros `bbox` e `bounds` com `padding` para garantir que os atributos importantes do mapa próximos às bordas estejam totalmente visíveis e não sejam cortados.

## Obter imagem do mapa com altura e largura específicas
<a name="get-map-specific-dimension"></a>

Neste exemplo, você criará uma imagem de mapa de baixa e média resoluções de Helsinque, Finlândia.

------
#### [ Request URL for low-resolution thumbnail ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=200&height=200&zoom=11.5&center=24.9460,60.1690&key=API_KEY
```

------
#### [ Response (Thumbnail 200x200) ]

![\[Aerial view of a coastal city with intricate waterways, islands, and urban development.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-specific-dimension-low.png)


------
#### [ Request URL for mid-resolution image ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=700&height=700&zoom=13&center=24.9460,60.1690&key=API_KEY
```

------
#### [ Response image (700x700) ]

![\[Aerial view of a coastal city with dense urban development, harbors, and surrounding waters.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-specific-dimension-mid.png)


------

## Obter imagem do mapa com preenchimento em todos os lados
<a name="get-map-with-padding"></a>

Neste exemplo, você gerará um mapa usando vários lugares imperdíveis em Helsinque, Finlândia, com suas coordenadas (longitude, latitude), com e sem preenchimento.

------
#### [ Request URL with padding ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&padding=150&bounded-positions=24.9526,60.1692,24.9850,60.1465,24.9270,60.1725,24.9226,60.1826,24.9509,60.1675,24.9566,60.1685,24.9457,60.1674,24.9397,60.1719,24.9414,60.1715,24.9387,60.1720&key=API_KEY
```

------
#### [ Response image (with padding) ]

![\[Aerial view of a coastal city with dense urban areas, harbors, and surrounding islands.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-specific-dimension-padding.png)


------
#### [ Request URL without padding ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&bounded-positions=24.9526,60.1692,24.9850,60.1465,24.9270,60.1725,24.9226,60.1826,24.9509,60.1675,24.9566,60.1685,24.9457,60.1674,24.9397,60.1719,24.9414,60.1715,24.9387,60.1720&key=API_KEY
```

------
#### [ Response image (without padding) ]

![\[Aerial view of a coastal city with dense urban areas, harbors, and small islands.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-specific-dimension-no-padding.png)


------

# Como decidir entre raio e zoom para um mapa estático
<a name="choose-radius-vs-zoom"></a>

Neste tópico, você aprenderá a escolher entre usar `radius` ou `zoom` ao gerar mapas estáticos com o Amazon Location Service. O parâmetro `radius` fornece um controle mais preciso sobre a área de cobertura, tornando-o ideal para aplicações voltadas para o cliente em que você conhece a área de cobertura exata. O parâmetro `zoom` é mais adequado para análise geoespacial quando você deseja ajustar o nível de detalhe exibido.

## Com raio
<a name="with-radius"></a>

Neste exemplo, você criará uma imagem de mapa do Sri Lanka usando o parâmetro `radius` com uma localização central.

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=700&height=700&center=80.60596,7.76671&radius=235000&scale-unit=KilometersMiles&key=API_KEY
```

------
#### [ Response image ]

![\[Satellite view of Sri Lanka, showing the teardrop-shaped island nation surrounded by ocean.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-radius.png)


------

## Com zoom
<a name="with-zoom"></a>

Neste exemplo, você criará uma imagem de mapa do Sri Lanka usando o parâmetro `zoom` com uma localização central.

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=700&height=700&zoom=8&center=80.60596,7.76671&scale-unit=KilometersMiles&key=API_KEY
```

------
#### [ Response image ]

![\[Satellite view of Sri Lanka, showing the teardrop-shaped island nation surrounded by ocean.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-zoom.png)


------

# Como adicionar escala para um mapa estático
<a name="add-scale-static-map"></a>

Neste tópico, você aprenderá a exibir uma escala no canto inferior direito de um mapa estático gerado com o Amazon Location Service. A escala pode mostrar uma única unidade, como `Miles` ou `Kilometers`, ou as duas unidades, como `KilometersMiles` ou `MilesKilometers`, em que uma unidade é exibida na parte superior e a outra, na parte inferior.

## Adicionar escala com uma única unidade
<a name="add-scale-single-unit"></a>

Neste exemplo, você exibirá um mapa de Helsinque, Finlândia, com a escala definida em `Kilometers` no canto inferior direito.

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&zoom=13.5&center=24.9189564,60.1645772&scale-unit=Kilometers&key=API_KEY
```

------
#### [ Response image ]

![\[Aerial view of a coastal city with dense urban areas, waterways, and islands.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-scale-single.png)


------

## Adicionar escala com as duas unidades
<a name="add-scale-both-units"></a>

Neste exemplo, você exibirá um mapa de Helsinque, Finlândia, tanto em `Kilometers` como em `Miles`, que aparecem no canto inferior direito da escala, com uma unidade exibida acima da outra.

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&zoom=14&center=24.9189564,60.1645772&scale-unit=KilometersMiles&key=API_KEY
```

------
#### [ Response image ]

![\[Aerial view of a coastal city with dense urban areas, harbors, and islands surrounded by water.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-scale-both.png)


------

# Como adicionar um marcador a um mapa estático
<a name="add-marker-static-map"></a>

Neste tópico, você aprenderá a adicionar marcadores aos mapas estáticos gerados com o Amazon Location Service. Você pode personalizar o ícone, o rótulo, o tamanho, a cor e outras opções de estilo do marcador. Isso permite que você destaque locais específicos com dicas visuais que se alinham com a finalidade do seu mapa.

## Estilos de marcador
<a name="marker-styling"></a>


| Name | Tipo | Padrão | Descrição | 
| --- | --- | --- | --- | 
| `style` | String | `marker` | O estilo da geometria de pontos. Para criar um marcador, defina o valor como `marker` ou não inclua o atributo `style` no objeto de propriedades do GeoJSON. | 
| `icon` | String | `pin` | O tipo de ícone do marcador. Os valores disponíveis incluem: `cp` (círculo de proximidade), `diamond`, `pin`, `poi`, `square`, `triangle`, `bubble`. | 
| `label` | String | `<empty>` | O texto a ser exibido nas coordenadas. Para definir rótulos automáticos, use os seguintes valores: `$alpha` (alfabeto latino) ou `$num` (algarismos arábicos). | 
| `color` | Cor | Dependente do estilo | A cor do ícone. | 
| `outline-color` | Cor | Dependente do estilo | A cor de contorno do ícone. | 
| `text-color` | Cor | Dependente do estilo | A cor do texto do rótulo. | 
| `text-outline-color` | Cor | Dependente do estilo | A cor de contorno do texto. | 
| `outline-width` | Inteiro | `0` (desativado) | A largura do contorno do texto. | 
| `size` | String | `medium` | O tamanho do rótulo e do ícone. Valores disponíveis: `small`, `medium`, `large`. | 

## Adicionar um marcador a uma imagem do mapa
<a name="add-marker-single"></a>

Neste exemplo, você colocará um marcador com rótulo na imagem do mapa de BC Place, Vancouver.

`Geo JSON`:

```
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -123.11210,
          49.2767875
        ]
        },
      "properties": {
          "color":"#EE4B2B",
          "size":"large",
          "label":"BC Place, Vancouver",
          "text-color":"#0000FF"
       }
    }
  ]
}
```

`Compact`:

```
point: -123.11210,49.27678;
label=BC Place, Vancouver;
size=large;
text-color=#0000FF;
color=#EE4B2B
```

------
#### [ Request URL ]

Com a sobreposição GeoJSON

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&zoom=15&scale-unit=KilometersMiles&geojson-overlay=%7B%22type%22%3A%22FeatureCollection%22,%22features%22%3A%5B%7B%22type%22%3A%22Feature%22,%22properties%22%3A%7B%22color%22%3A%22%23EE4B2B%22,%22size%22%3A%22large%22,%22label%22%3A%22BC%20Place,%20Vancouver%22,%22text-color%22%3A%22%230000FF%22%7D,%22geometry%22%3A%7B%22coordinates%22%3A%5B-123.11210974152168,49.27678753813112%5D,%22type%22%3A%22Point%22%7D%7D%5D%7D&key=API_KEY
```

------
#### [ Response image ]

![\[Aerial view of Vancouver's downtown and harbor, with BC Place stadium marked.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-add-marker.png)


------

## Adicionar vários marcadores a uma imagem do mapa
<a name="add-multiple-markers"></a>

Neste exemplo, você adicionará marcadores para lugares imperdíveis em Helsinque, Finlândia, usando suas coordenadas (longitude, latitude). Você também pode aplicar preenchimento para garantir que o mapa acomode todos os marcadores adequadamente.

**nota**  
O tipo de ícone de marcador disponível inclui: `cp` para círculo de proximidade, `diamond, pin, poi, square, triangle, bubble`.

`Geo JSON`:

```
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "MultiPoint",
        "coordinates": [
          [24.9526, 60.1692],
          [24.9270, 60.1725],
          [24.9226, 60.1826],
          [24.9509, 60.1675],
          [24.9566, 60.1685],
          [24.9457, 60.1674],
          [24.9397, 60.1719],
          [24.9414, 60.1715],
          [24.9387, 60.1720]
        ]
      },
      "properties": {
        "icon":"diamond",
        "label":"$num",
        "size":"large",
        "text-color":"%23972E2B",
        "text-outline-color":"%23FFF",
        "text-outline-width":2
      }
    }
  ]
}
```

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&padding=150&geojson-overlay=%7B%22type%22%3A%22FeatureCollection%22,%22features%22%3A%5B%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22type%22%3A%22MultiPoint%22,%22coordinates%22%3A%5B%5B24.9526,60.1692%5D,%5B24.927,60.1725%5D,%5B24.9226,60.1826%5D,%5B24.9509,60.1675%5D,%5B24.9566,60.1685%5D,%5B24.9457,60.1674%5D,%5B24.9397,60.1719%5D,%5B24.9414,60.1715%5D,%5B24.9387,60.172%5D%5D%7D,%22properties%22%3A%7B%22icon%22%3A%22diamond%22,%22label%22%3A%22%24num%22,%22size%22%3A%22large%22,%22text-color%22%3A%22%23972E2B%22,%22text-outline-color%22%3A%22%23FFF%22,%22text-outline-width%22%3A2%7D%7D%5D%7D&key=API_KEY
```

------
#### [ Response image ]

![\[Aerial view of a city with lakes, buildings, roads, and numbered markers indicating points of interest.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-add-multi-markers.png)


------

## Alterar a cor do marcador em uma imagem do mapa
<a name="change-marker-color"></a>

Neste exemplo, você usará marcadores de bolhas de cores diferentes para representar cidades em todo o mundo. Você pode personalizar a cor, o rótulo e outras propriedades do marcador de acordo com o contexto do mapa.

`Geo JSON`:

```
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [85.1376, 25.5941]
      },
      "properties": {
        "label": "Patna",
        "icon": "bubble",
        "color": "#FF5722",
        "outline-color": "#D74D3D",
        "text-color": "#FFFFFF"
      }
    },
    .....redacted.....
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [2.3522, 48.8566]
      },
      "properties": {
        "label": "Paris, France",
        "icon": "bubble",
        "color": "#FF9800",
        "outline-color": "#D76B0B",
        "text-color": "#FFFFFF"
      }
    }
  ]
}
```

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1400&height=1024&padding=150&geojson-overlay=%7B%22type%22%3A%22FeatureCollection%22,%22features%22%3A%5B%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22type%22%3A%22Point%22,%22coordinates%22%3A%5B85.1376,25.5941%5D%7D,%22properties%22%3A%7B%22label%22%3A%22Patna%22,%22icon%22%3A%22bubble%22,%22color%22%3A%22%23FF5722%22,%22outline-color%22%3A%22%23D74D3D%22,%22text-color%22%3A%22%23FFFFFF%22%7D%7D,%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22type%22%3A%22Point%22,%22coordinates%22%3A%5B105.8542,21.0285%5D%7D,%22properties%22%3A%7B%22label%22%3A%22Hanoi,%20Vietnam%22,%22icon%22%3A%22bubble%22,%22color%22%3A%22%232196F3%22,%22outline-color%22%3A%22%231A78C2%22,%22text-color%22%3A%22%23FFFFFF%22%7D%7D,%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22type%22%3A%22Point%22,%22coordinates%22%3A%5B116.4074,39.9042%5D%7D,%22properties%22%3A%7B%22label%22%3A%22Beijing,%20China%22,%22icon%22%3A%22bubble%22,%22color%22%3A%22%23FF9800%22,%22outline-color%22%3A%22%23D76B0B%22,%22text-color%22%3A%22%23FFFFFF%22%7D%7D,%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22type%22%3A%22Point%22,%22coordinates%22%3A%5B106.9101,47.918%5D%7D,%22properties%22%3A%7B%22label%22%3A%22Ulaanbaatar,%20Mongolia%22,%22icon%22%3A%22bubble%22,%22color%22%3A%22%239C27B0%22,%22outline-color%22%3A%22%237B1FA2%22,%22text-color%22%3A%22%23FFFFFF%22%7D%7D,%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22type%22%3A%22Point%22,%22coordinates%22%3A%5B151.2093,-33.8688%5D%7D,%22properties%22%3A%7B%22label%22%3A%22Sydney,%20Australia%22,%22icon%22%3A%22bubble%22,%22color%22%3A%22%234CAF50%22,%22outline-color%22%3A%22%23388E3C%22,%22text-color%22%3A%22%23FFFFFF%22%7D%7D,%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22type%22%3A%22Point%22,%22coordinates%22%3A%5B174.7633,-41.2865%5D%7D,%22properties%22%3A%7B%22label%22%3A%22Wellington,%20New%20Zealand%22,%22icon%22%3A%22bubble%22,%22color%22%3A%22%23FFC107%22,%22outline-color%22%3A%22%23FFA000%22,%22text-color%22%3A%22%23000000%22%7D%7D%5D%7D&key=API_KEY
```

------
#### [ Response image ]

![\[World map showing locations of major cities across continents with colored labels.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-change-marker-color.png)


------

# Como adicionar uma linha a um mapa estático
<a name="how-to-add-line-static"></a>

 Neste tópico, você aprenderá a adicionar uma linha a um mapa estático usando o Amazon Location Service. Vamos abordar as opções de estilo aceitas, como definir uma linha usando GeoJSON e aplicar estilos personalizados, como cor, largura e contorno. Também vamos explorar como usar diferentes unidades de medida para propriedades como a largura da linha. 

## Estilos permitidos
<a name="supported-styling"></a>


| Name | Tipo | Padrão | Descrição | 
| --- | --- | --- | --- | 
| `color` | Cor | dependente do estilo | A cor da linha. | 
| `width` | Inteiro/string | 2 | A largura da linha. Para obter mais informações, consulte [Como adicionar uma linha a um mapa estático](#how-to-add-line-static). | 
| `outline-color`  | Cor | dependente do estilo | A cor de contorno da linha. | 
|  `outline-width`  | Inteiro/string | 0 (desativado) | A largura do contorno. Para obter mais informações, consulte [Como adicionar uma linha a um mapa estático](#how-to-add-line-static). | 

## Unidade permitida
<a name="supported-unit"></a>


| Unidade | Descrição | 
| --- | --- | 
| Inteiro, por exemplo, `5` | Pixels | 
| String sem unidade, por exemplo, `"5"` | Pixels | 
| `"px"` | Pixels | 
| `"m"` | Metros | 
|  `"km"`  | Quilômetros | 
| `"mi"` | Milhas | 
| `"ft"` | Pés | 
| `"yd"` | Jardas | 
| `"%"` | A porcentagem do valor padrão de uma propriedade específica, em pixels. Por exemplo, se o valor padrão para `width` for `2` pixels, então `200%` será `4` pixels. `%` é um caractere sensível, que deve ser codificado na URL da solicitação como `%25`. | 

## Adicionar uma linha
<a name="add-a-line"></a>

 Neste exemplo, você adicionará uma linha de um lugar em Vancouver até o Stanley Park. A linha é criada usando um formato GeoJSON com coordenadas definidas. 

------
#### [ Request ]

```
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [-123.11813, 49.28246],
          [-123.11967, 49.28347],
          [-123.12108, 49.28439],
          [-123.12216, 49.28507],
          [-123.12688, 49.28812],
          [-123.1292, 49.28964],
          [-123.13216, 49.2916],
          [-123.13424, 49.29291],
          [-123.13649, 49.2944],
          [-123.13678, 49.29477],
          [-123.13649, 49.29569],
          [-123.13657, 49.29649],
          [-123.13701, 49.29715],
          [-123.13584, 49.29847],
          [-123.13579, 49.29935],
          [-123.13576, 49.30018],
          [-123.13574, 49.30097]
        ]
      },
      "properties": {
        "name": "To Stanley Park",
        "description": "An evening walk to Stanley Park."
      }
    }
  ]
}
```

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&padding=200&scale-unit=KilometersMiles&geojson-overlay=%7B%22type%22%3A%22FeatureCollection%22,%22features%22%3A%5B%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22type%22%3A%22LineString%22,%22coordinates%22%3A%5B%5B-123.11813,49.28246%5D,%5B-123.11967,49.28347%5D,%5B-123.12108,49.28439%5D,%5B-123.12216,49.28507%5D,%5B-123.12688,49.28812%5D,%5B-123.1292,49.28964%5D,%5B-123.13216,49.2916%5D,%5B-123.13424,49.29291%5D,%5B-123.13649,49.2944%5D,%5B-123.13678,49.29477%5D,%5B-123.13649,49.29569%5D,%5B-123.13657,49.29649%5D,%5B-123.13701,49.29715%5D,%5B-123.13584,49.29847%5D,%5B-123.13579,49.29935%5D,%5B-123.13576,49.30018%5D,%5B-123.13574,49.30097%5D%5D%7D,%22properties%22%3A%7B%22name%22%3A%22To%20Stanley%20Park%22,%22description%22%3A%22An%20evening%20walk%20to%20Stanley%20Park.%22%7D%7D%5D%7D&key=API_KEY
```

------
#### [ Response image ]

![\[Aerial view of coastal city with dense urban area, marina, and surrounding forests.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-add-line.png)


------

## Adicionar estilo à linha
<a name="add-styling"></a>

 Neste exemplo, você vai inserir estilo na linha adicionada do exemplo anterior. Isso inclui definir a cor, a largura, a cor do contorno e a largura do contorno da linha para personalizar a aparência visual da linha no mapa. 

------
#### [ Request ]

```
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [-123.11813, 49.28246],
          [-123.11967, 49.28347],
          [-123.12108, 49.28439],
          [-123.12216, 49.28507],
          [-123.12688, 49.28812],
          [-123.1292, 49.28964],
          [-123.13216, 49.2916],
          [-123.13424, 49.29291],
          [-123.13649, 49.2944],
          [-123.13678, 49.29477],
          [-123.13649, 49.29569],
          [-123.13657, 49.29649],
          [-123.13701, 49.29715],
          [-123.13584, 49.29847],
          [-123.13579, 49.29935],
          [-123.13576, 49.30018],
          [-123.13574, 49.30097]
        ]
      },
      "properties": {
        "color": "#6d34b3", 
        "width": "9m",
        "outline-color": "#a8b9cc",  
        "outline-width": "2px"
      }
    }
  ]
}
```

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&padding=200&scale-unit=KilometersMiles&geojson-overlay=%7B%22type%22%3A%22FeatureCollection%22,%22features%22%3A%5B%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%22LineString%22,%22coordinates%22%3A%5B%5B-123.11813,49.28246%5D,%5B-123.11967,49.28347%5D,%5B-123.12108,49.28439%5D,%5B-123.12216,49.28507%5D,%5B-123.12688,49.28812%5D,%5B-123.1292,49.28964%5D,%5B-123.13216,49.2916%5D,%5B-123.13424,49.29291%5D,%5B-123.13649,49.2944%5D,%5B-123.13678,49.29477%5D,%5B-123.13649,49.29569%5D,%5B-123.13657,49.29649%5D,%5B-123.13701,49.29715%5D,%5B-123.13584,49.29847%5D,%5B-123.13579,49.29935%5D,%5B-123.13576,49.30018%5D,%5B-123.13574,49.30097%5D%5D%7D,%22properties%22%3A%7B%22color%22%3A%22%236d34b3%22,%22width%22%3A%229m%22,%22outline-color%22%3A%22%23a8b9cc%22,%22outline-width%22%3A%222px%22%7D%7D%5D%7D&key=API_KEY
```

------
#### [ Response image ]

![\[Aerial view of coastal city with dense urban area, marina, and surrounding forests.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-add-line-styling.png)


------

# Como adicionar uma rota a um mapa estático
<a name="how-to-add-route"></a>

Neste tópico, você aprenderá a adicionar uma rota a um mapa estático usando o Amazon Location Service. Você seguirá as etapas para obter uma rota usando a API CalculateRoutes e, em seguida, visualizá-la em um mapa estático usando GeoJSON e um estilo personalizado para pontos e linhas. 

## Etapas para adicionar uma rota
<a name="steps-to-add-route"></a>

1. Obtenha rotas da API `CalculateRoutes`. Remova as coordenadas que estão na mesma linha reta para otimizar o LineString, impedindo que a string de consulta chegue ao limite.

1. Crie um objeto GeoJSON com base no conjunto otimizado de coordenadas.

1. Use o primeiro e o último pontos de LineString e adicione geometrias de pontos para marcar os locais de início e término.

1. Aplique estilo nos pontos e em LineString de acordo com suas necessidades, ajustando propriedades como cor, tamanho e rótulos.

## Adicionar uma rota usando um estilo compacto
<a name="add-route-using-compact-style"></a>

Neste exemplo, você adicionará uma rota com pontos de início e término à linha criada em [Como adicionar uma linha a um mapa estático](how-to-add-line-static.md). A rota será definida com um estilo personalizado, incluindo cor, tamanho e rótulos para os pontos de início e término.

```
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [-123.11813, 49.28246],
          [-123.11967, 49.28347],
          [-123.12108, 49.28439],
          [-123.12216, 49.28507],
          [-123.12688, 49.28812],
          [-123.1292, 49.28964],
          [-123.13216, 49.2916],
          [-123.13424, 49.29291],
          [-123.13649, 49.2944],
          [-123.13678, 49.29477],
          [-123.13649, 49.29569],
          [-123.13657, 49.29649],
          [-123.13701, 49.29715],
          [-123.13584, 49.29847],
          [-123.13579, 49.29935],
          [-123.13576, 49.30018],
          [-123.13574, 49.30097]
        ]
      },
      "properties": {
        "color": "#000000", 
        "width": "20m",
        "outline-color": "#a8b9cc",  
        "outline-width": "2px"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [-123.11813, 49.28246]
      },
      "properties": {
        "label": "Pacific Centre",
        "icon": "bubble",
        "size": "large",
        "color": "#34B3A4",
        "outline-color": "#006400",
        "text-color": "#FFFFFF"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [-123.13574, 49.30097]
      },
      "properties": {
        "label": "Stanley Park",
        "icon": "bubble",
        "size": "large",
        "color": "#B3346D",
        "outline-color": "#FF0000",
        "text-color": "#FFFFFF"
      }
    }
  ]
}
```

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&padding=200&scale-unit=KilometersMiles&geojson-overlay=%7B%22type%22%3A%22FeatureCollection%22,%22features%22%3A%5B%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22type%22%3A%22LineString%22,%22coordinates%22%3A%5B%5B-123.11813,49.28246%5D,%5B-123.11967,49.28347%5D,%5B-123.12108,49.28439%5D,%5B-123.12216,49.28507%5D,%5B-123.12688,49.28812%5D,%5B-123.1292,49.28964%5D,%5B-123.13216,49.2916%5D,%5B-123.13424,49.29291%5D,%5B-123.13649,49.2944%5D,%5B-123.13678,49.29477%5D,%5B-123.13649,49.29569%5D,%5B-123.13657,49.29649%5D,%5B-123.13701,49.29715%5D,%5B-123.13584,49.29847%5D,%5B-123.13579,49.29935%5D,%5B-123.13576,49.30018%5D,%5B-123.13574,49.30097%5D%5D%7D,%22properties%22%3A%7B%22color%22%3A%22%23000000%22,%22width%22%3A%2220m%22,%22outline-color%22%3A%22%23a8b9cc%22,%22outline-width%22%3A%222px%22%7D%7D,%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%22Point%22,%22coordinates%22%3A%5B-123.11813,49.28246%5D%7D,%22properties%22%3A%7B%22label%22%3A%22Pacific%20Centre%22,%22icon%22%3A%22bubble%22,%22size%22%3A%22large%22,%22color%22%3A%22%2334B3A4%22,%22outline-color%22%3A%22%23006400%22,%22text-color%22%3A%22%23FFFFFF%22%7D%7D,%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%22Point%22,%22coordinates%22%3A%5B-123.13574,49.30097%5D%7D,%22properties%22%3A%7B%22label%22%3A%22Stanley%20park%22,%22icon%22%3A%22bubble%22,%22size%22%3A%22large%22,%22color%22%3A%22%23B3346D%22,%22outline-color%22%3A%22%23FF0000%22,%22text-color%22%3A%22%23FFFFFF%22%7D%7D%5D%7D&key=API_KEY
```

------
#### [ Response image ]

![\[Aerial view of Vancouver with Stanley Park and Pacific Centre marked, showing urban layout and coastline.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/static-add-route-compact.png)


------

# Como adicionar um polígono a um mapa estático
<a name="how-to-add-polygon-static"></a>

Edifícios e locais podem ser destacados em um mapa com a designação de um polígono ao redor deles, por exemplo, o Pentágono (localizado em Washington, D.C.). 

## Adicionar um único polígono
<a name="polygon-single"></a>

Neste exemplo, você adiciona um polígono (um pentágono) para o prédio do Pentágono no mapa.

------
#### [ Geo JSON ]

```
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "coordinates": [
          [
            [
              -77.0579282196337,
              38.87264268371487
            ],
            [
              -77.05868880963534,
              38.87003145971428
            ],
            [
              -77.05560979468949,
              38.86876862025221
            ],
            [
              -77.05305311263672,
              38.87059509268525
            ],
            [
              -77.0546384387842,
              38.872985132206225
            ],
            [
              -77.0579282196337,
              38.87264268371487
            ]
          ]
        ],
        "type": "Polygon"
      }
    }
  ]
}
```

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=600&height=1024&padding=200&scale-unit=KilometersMiles&geojson-overlay=%7B%22type%22%3A%22FeatureCollection%22,%22features%22%3A%5B%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22coordinates%22%3A%5B%5B%5B-77.0579282196337,38.87264268371487%5D,%5B-77.05868880963534,38.87003145971428%5D,%5B-77.05560979468949,38.86876862025221%5D,%5B-77.05305311263672,38.87059509268525%5D,%5B-77.0546384387842,38.872985132206225%5D,%5B-77.0579282196337,38.87264268371487%5D%5D%5D,%22type%22%3A%22Polygon%22%7D%7D%5D%7D&key=your_API_Key
```

------
#### [ Response image ]

![\[Exemplo de mapa mostrando um polígono ao redor do Pentágono.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/mapsV2/addPolygonStaticMap.png)


------

## Adicionar um polígono como estilo
<a name="polygon-restyle"></a>

Neste exemplo, vamos refazer o estilo do polígono mostrado no exemplo anterior. Desenhamos o polígono com outra cor (**\$1E3F70550**). Os componentes de cores são os seguintes.
+ **E3** representa o componente vermelho.
+ **F7** representa o componente verde.
+ **05** representa o componente azul.
+ **50** representa o componente alfa (opacidade).

------
#### [ Geo JSON ]

```
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "coordinates": [
          [
            [
              -77.0579282196337,
              38.87264268371487
            ],
            [
              -77.05868880963534,
              38.87003145971428
            ],
            [
              -77.05560979468949,
              38.86876862025221
            ],
            [
              -77.05305311263672,
              38.87059509268525
            ],
            [
              -77.0546384387842,
              38.872985132206225
            ],
            [
              -77.0579282196337,
              38.87264268371487
            ]
          ]
        ],
        "type": "Polygon"
      },
      "properties": {
        "color": "#E3F70550"
      }
    }
  ]
}
```

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&padding=100&scale-unit=KilometersMiles&geojson-overlay=%7B%22type%22%3A%22FeatureCollection%22,%22features%22%3A%5B%7B%22type%22%3A%22Feature%22,%22geometry%22%3A%7B%22coordinates%22%3A%5B%5B%5B-77.0579282196337,38.87264268371487%5D,%5B-77.05868880963534,38.87003145971428%5D,%5B-77.05560979468949,38.86876862025221%5D,%5B-77.05305311263672,38.87059509268525%5D,%5B-77.0546384387842,38.872985132206225%5D,%5B-77.0579282196337,38.87264268371487%5D%5D%5D,%22type%22%3A%22Polygon%22%7D,%22properties%22%3A%7B%22color%22%3A%22%23E3F70550%22%7D%7D%5D%7D&key=your_API_Key
```

------
#### [ Response image ]

![\[Exemplo de mapa mostrando um polígono colorido diferente ao redor do Pentágono.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/mapsV2/addPolygonStaticMap-color.png)


------

## Adicionar vários polígonos
<a name="polygon-multiple"></a>

Neste exemplo, adicionamos vários polígonos para destacar parques na cidade de Nova York.

------
#### [ Geo JSON ]

```
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "color": "#00800050"
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              -73.95824708489555,
              40.80055774655358
            ],
            [
              -73.9818875523859,
              40.76810261850716
            ],
            [
              -73.9729556303776,
              40.7642422333698
            ],
            [
              -73.94916953372382,
              40.79699323614054
            ],
            [
              -73.95824708489555,
              40.80055774655358
            ]
          ]
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {
        "color": "#FF000050"
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              -73.94432602794981,
              40.80634757577718
            ],
            [
              -73.94607200977896,
              40.803869579741644
            ],
            [
              -73.94301654157768,
              40.80263972513214
            ],
            [
              -73.94127055974795,
              40.805099411561145
            ],
            [
              -73.94432602794981,
              40.80634757577718
            ]
          ]
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {
        "color": "#0000FF50"
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              -73.9947948382843,
              40.7691390468232
            ],
            [
              -73.99564708262241,
              40.76802192177411
            ],
            [
              -73.99372953286147,
              40.76723992306512
            ],
            [
              -73.99289367783732,
              40.76835706126087
            ],
            [
              -73.9947948382843,
              40.7691390468232
            ]
          ]
        ]
      }
    }
  ]
}
```

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map?style=Satellite&width=1024&height=1024&padding=100&scale-unit=KilometersMiles&geojson-overlay=%7B%22type%22%3A%22FeatureCollection%22,%22features%22%3A%5B%7B%22type%22%3A%22Feature%22,%22properties%22%3A%7B%22color%22%3A%22%2300800050%22%7D,%22geometry%22%3A%7B%22type%22%3A%22Polygon%22,%22coordinates%22%3A%5B%5B%5B-73.95824708489555,40.80055774655358%5D,%5B-73.9818875523859,40.76810261850716%5D,%5B-73.9729556303776,40.7642422333698%5D,%5B-73.94916953372382,40.79699323614054%5D,%5B-73.95824708489555,40.80055774655358%5D%5D%5D%7D%7D,%7B%22type%22%3A%22Feature%22,%22properties%22%3A%7B%22color%22%3A%22%23FF000050%22%7D,%22geometry%22%3A%7B%22type%22%3A%22Polygon%22,%22coordinates%22%3A%5B%5B%5B-73.94432602794981,40.80634757577718%5D,%5B-73.94607200977896,40.803869579741644%5D,%5B-73.94301654157768,40.80263972513214%5D,%5B-73.94127055974795,40.805099411561145%5D,%5B-73.94432602794981,40.80634757577718%5D%5D%5D%7D%7D,%7B%22type%22%3A%22Feature%22,%22properties%22%3A%7B%22color%22%3A%22%230000FF50%22%7D,%22geometry%22%3A%7B%22type%22%3A%22Polygon%22,%22coordinates%22%3A%5B%5B%5B-73.9947948382843,40.7691390468232%5D,%5B-73.99564708262241,40.76802192177411%5D,%5B-73.99372953286147,40.76723992306512%5D,%5B-73.99289367783732,40.76835706126087%5D,%5B-73.9947948382843,40.7691390468232%5D%5D%5D%7D%7D%5D%7D&key=your_API_Key
```

------
#### [ Response image ]

![\[Exemplo de mapa mostrando vários polígonos ao redor de parques em Nova York.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/mapsV2/addPolygonStaticMap-multiple.png)


------

# Como definir o idioma para mapas estáticos
<a name="set-language-static-map"></a>

Você poderá definir o idioma de um mapa estático, caso não queira usar o idioma padrão.

Nesse exemplo, uma localização em Tóquio que geralmente usaria texto em japonês como padrão é solicitada em inglês, substituindo o padrão regional.

O exemplo mostra a imagem de resposta para uma solicitação em que o idioma é fornecido e outra em que o idioma não é fornecido. Os rótulos correspondentes refletem a diferença entre um mapa mostrando o idioma solicitado e um mapa que mostra o idioma padrão.

------
#### [ Request URL - English set as the language ]

```
https://maps.geo.us-east-1.amazonaws.com/v2/static/map?center=139.4575,35.539&style=Standard&lang=en&height=700&width=700&zoom=14
```

------
#### [ Response image ]

![\[Exemplo de mapa mostrando um polígono ao redor do Pentágono.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/mapsV2/setLanguageEnglishStaticMap.png)


------

------
#### [ Request URL - default language ]

```
https://maps.geo.us-east-1.amazonaws.com/v2/static/map?center=139.4575,35.539&style=Standard&height=700&width=700&zoom=14
```

------
#### [ Response image ]

![\[Exemplo de mapa mostrando um polígono ao redor do Pentágono.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/mapsV2/setLanguageDefaultStaticMap.png)


------

# Como adicionar um círculo de proximidade a um mapa estático
<a name="how-to-add-proximity-circle"></a>

Os círculos de proximidade contêm informações importantes sobre a precisão de um dispositivo ou localização do usuário relatada ou estimada. Ao mostrar um círculo ao redor do ponto relatado, os usuários recebem a informação de que a posição real pode estar em qualquer lugar dentro do círculo, devido a vários fatores que afetam a precisão do posicionamento. Essa clareza adicional ajuda na tomada de decisões e aumenta a segurança da navegação.

Neste exemplo, você adiciona um círculo de proximidade de 500 metros perto da Torre Eiffel em Paris.

------
#### [ Request ]

```
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          2.298151,
          48.855921
        ]
      },
      "properties": {
        "style": "circle",
        "color": "#007BFF50",
        "width": "500m"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          2.298151,
          48.855921
        ]
      },
      "properties": {
        "icon": "cp",
        "color": "#007BFF",
        "text-color":"#DC3545",
        "text-outline-color":"#007BFF",
        "outline-width":"20px",
        "label": "You are here",
        "size": "large"
      }
    }
  ]
}
```

------
#### [ Request URL ]

```
https://maps.geo.eu-central-1.amazonaws.com/v2/static/map@2x?style=Satellite&width=700&height=700&zoom=17&center=2.2958,48.8570&geojson-overlay=%7B%20%20%22type%22%3A%20%22FeatureCollection%22,%20%20%22features%22%3A%20%5B%20%20%20%20%7B%20%20%20%20%20%20%22type%22%3A%20%22Feature%22,%20%20%20%20%20%20%22geometry%22%3A%20%7B%20%20%20%20%20%20%20%20%22type%22%3A%20%22Point%22,%20%20%20%20%20%20%20%20%22coordinates%22%3A%20%5B%20%20%20%20%20%20%20%20%20%202.298151,%20%20%20%20%20%20%20%20%20%2048.855921%20%20%20%20%20%20%20%20%5D%20%20%20%20%20%20%7D,%20%20%20%20%20%20%22properties%22%3A%20%7B%20%20%20%20%20%20%20%20%22style%22%3A%20%22circle%22,%20%20%20%20%20%20%20%20%22color%22%3A%20%22%23007BFF50%22,%20%20%20%20%20%20%20%20%22width%22%3A%20%22500m%22%20%20%20%20%20%20%7D%20%20%20%20%7D,%20%20%20%20%7B%20%20%20%20%20%20%22type%22%3A%20%22Feature%22,%20%20%20%20%20%20%22geometry%22%3A%20%7B%20%20%20%20%20%20%20%20%22type%22%3A%20%22Point%22,%20%20%20%20%20%20%20%20%22coordinates%22%3A%20%5B%20%20%20%20%20%20%20%20%20%202.298151,%20%20%20%20%20%20%20%20%20%2048.855921%20%20%20%20%20%20%20%20%5D%20%20%20%20%20%20%7D,%20%20%20%20%20%20%22properties%22%3A%20%7B%20%20%20%20%20%20%20%20%22icon%22%3A%20%22cp%22,%20%20%20%20%20%20%20%20%22color%22%3A%20%22%23007BFF%22,%20%20%20%20%20%20%20%20%22text-color%22%3A%22%23DC3545%22,%20%20%20%20%20%20%20%20%22text-outline-color%22%3A%22%23007BFF%22,%20%20%20%20%20%20%20%20%22outline-width%22%3A%2220px%22,%20%20%20%20%20%20%20%20%22label%22%3A%20%22You%20are%20here%22,%20%20%20%20%20%20%20%20%22size%22%3A%20%22large%22%20%20%20%20%20%20%7D%20%20%20%20%7D%20%20%5D%7D&key=your_API_Key             
```

------
#### [ Response image ]

![\[Exemplo de mapa mostrando um círculo de proximidade ao redor da Torre Eiffel.\]](http://docs.aws.amazon.com/pt_br/location/latest/developerguide/images/mapsV2/addPproximityCircleStaticMap.png)


------

# Gerenciar custos e uso
<a name="maps-whats-next"></a>

À medida que você continua aprendendo sobre os mapas do Amazon Location, é importante entender como gerenciar a capacidade do serviço, garantir que você siga os limites de uso e obter os melhores resultados por meio de otimizações de cotas e APIs. Quando aplica as práticas recomendadas de desempenho e precisão, você pode personalizar o aplicativo para lidar com consultas relacionadas ao local de forma eficiente e maximizar as solicitações de API.

**Topics**
+ [Práticas recomendadas do Amazon Location Service](maps-best-practices.md)
+ [Preços dos mapas](maps-pricing.md)
+ [Mapear cotas e uso](map-quota-and-usage.md)

# Práticas recomendadas do Amazon Location Service
<a name="maps-best-practices"></a>

Ao trabalhar com o Amazon Location Service, seguir as práticas recomendadas garante que os mapas sejam otimizados para desempenho, precisão e experiência do usuário. Esta seção descreve as principais considerações para trabalhar com mapas estáticos, limites geográficos e dados GeoJSON para aprimorar a funcionalidade e a visualização do mapa.

## Mapas dinâmicos
<a name="next-dynamic-maps"></a>

A seguir estão algumas das práticas recomendadas para se trabalhar com mapas dinâmicos no Amazon Location Service.

### Otimização de renderização com MapLibre
<a name="next-dynamic-rendering"></a>

A seguir estão alguns recursos MapLibre que ajudam a otimizar a renderização para estilos de AWS mapa. Para obter mais informações, consulte [AWS estilos e recursos do mapa](map-styles.md).

#### Ignorar a validação do estilo
<a name="next-dynamic-validation"></a>

Se você estiver usando o estilo de AWS mapa, `validateStyle` defina como`false`. Essa ação desativará a validação do estilo de tempo de carregamento, acelerando o carregamento inicial do mapa. A validação de estilo não é necessária com estilos de mapa da AWS , porque eles são pré-validados.

------
#### [ Example ]

```
const map = new maplibregl.Map({
    container: 'map', // ID of the div where the map will render
    style: `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`, // Map style URL
    center: [0, 0], // Starting position [lng, lat]
    zoom: 2, // Starting zoom
    validateStyle: false, // Disable style validation for faster map load
});
```

------
#### [ Explanation ]
+ `validateStyle: true`: Isso permite a validação do estilo do mapa em relação à especificação do estilo MapLibre GL. Se houver algum problema no estilo, eles serão registrados no console.
+ Se você definir isso como `false`, o mapa ignorará o processo de validação de estilo, o que pode resultar em um carregamento mais rápido, mas sem verificação de erros.

------

#### Pré-aquecimento do mapa
<a name="next-dynamic-prewarm"></a>

Para aplicativos de página única (SPAs) que podem criar e destruir o mapa várias vezes enquanto o usuário navega pelo aplicativo, a função de pré-aquecimento pode reduzir os atrasos na recriação do mapa após sua destruição. 

Esse recurso só é recomendado para SPAs.

## Mapas estáticos
<a name="next-static-maps"></a>

### Limites, caixa delimitadora (caixa)
<a name="bounds-bbox"></a>

Ao trabalhar com mapas e dados geográficos, é essencial definir os parâmetros de caixa delimitadora (`bbox`) e de limites (bounds) com precisão, pois eles definem a área geográfica de interesse. Qualquer imprecisão pode levar a resultados indesejáveis.

**Garantir limites precisos**  
Confira se os limites especificados representam com precisão a região que você deseja exibir. Mesmo pequenas imprecisões podem cortar ou excluir partes da área desejada, anulando o propósito da visualização.

**Verificar o nível de zoom apropriado**  
O nível de zoom do mapa é calculado automaticamente com base nos parâmetros bbox ou bounds especificados. Verifique se o nível de zoom resultante fornece detalhes e visibilidade adequados para toda a área de interesse. Se o zoom for muito alto ou baixo, o mapa pode falhar em transmitir as informações desejadas de forma eficaz.

**Verificar a visibilidade personalizada da sobreposição**  
Quando for usar bbox ou bounds com sobreposições personalizadas, como atributos GeoJSON, confira se a extensão dos atributos está dentro da imagem resultante do mapa. Os atributos que se estendem além dos limites podem ser recortados ou omitidos, resultando em visualizações incompletas ou enganosas.

**Usar preenchimento com bbox**  
Use bbox junto com o parâmetro padding para garantir que os atributos do mapa próximos às bordas estejam totalmente visíveis e não sejam cortados.

Quando define com precisão os parâmetros bbox e bounds, você pode garantir que os mapas representem corretamente a área geográfica desejada, forneçam um nível apropriado de detalhes e incorporem efetivamente sobreposições personalizadas ou camadas de dados.

## GeoJSON
<a name="geojson-best-practices"></a>

Quando se usa dados GeoJSON, otimizar a string de consulta reduzindo o recurso GeoJSON pode ajudar a permanecer dentro dos limites da string de consulta, especialmente para grandes conjuntos de dados.

# Preços dos mapas
<a name="maps-pricing"></a>

O Amazon Location Service oferece preços competitivos para sua API de mapas com base no tipo de solicitação de mapa e no número de chamadas de API feitas. Esta seção fornece uma visão geral da estrutura de definição de preço dos mapas dinâmicos e estáticos. 

Para obter mais informações, consulte os [preços do Amazon Location Service](https://aws.amazon.com/location/pricing/).

## Mapas dinâmicos
<a name="dynamic-maps-pricing"></a>

O preço da API dos mapas é baseado no número de blocos recuperados pela API `GetTiles`

Outras APIs relacionadas a mapas, como`GetGlyphs`, `GetStyleDescriptor` e `GetSprites` são gratuitas.

## Imagens estáticas dos mapas
<a name="static-maps-pricing"></a>

O preço das imagens dos mapas estáticos é baseado no número de solicitações feitas na API `GetStaticMap`. Cada solicitação de uma imagem estática do mapa é contabilizada no cálculo do preço.

# Mapear cotas e uso
<a name="map-quota-and-usage"></a>

O Amazon Location Service impõe cotas de serviço e limites de uso específicos para mapas dinâmicos e estáticos. Esses limites são estabelecidos para garantir o uso justo e a eficiência do desempenho para todos os usuários. Abaixo estão as cotas de serviço e os limites ajustáveis para cada serviço.

## Cotas de serviço
<a name="service-quota"></a>

O Amazon Location Service define cotas padrão APIs para ajudar a gerenciar a capacidade do serviço, que podem ser visualizadas no console de [gerenciamento AWS de cotas de serviço](https://console.aws.amazon.com/servicequotas/home#!/services/geo/quotas). Você pode solicitar um aumento das cotas em até duas vezes o limite padrão para cada API por meio do [console de autoatendimento](https://console.aws.amazon.com/servicequotas/home#!/services/geo/quotas). 

Para limites de cota que excedam o dobro do limite padrão, solicite por meio do console de autoatendimento e ele enviará automaticamente um tíquete de suporte. Você também pode conectar sua equipe de suporte premium. 

Não há cobranças diretas para solicitações de aumento de cota, mas níveis mais altos de uso podem levar ao aumento dos custos de serviço com base nos recursos adicionais consumidos. Para obter mais informações, consulte [Gerenciar cotas com o Service Quotas](manage-quotas.md).

### Mapa dinâmico
<a name="dynamic-map-quota"></a>


| Nome da API | Padrão | Limite máximo ajustável | Mais do que o Limite máximo ajustável | 
| --- | --- | --- | --- | 
|  `GetTiles`  |  2000  |  4000  | Solicitar no [console de cota de serviço](https://console.aws.amazon.com/servicequotas/home#!/services/geo/quotas) ou entrar em contato com a equipe de suporte | 

### Mapa estático
<a name="static-map-quota"></a>


| Nome da API | Padrão | Limite máximo ajustável | Mais do que o Limite máximo ajustável | 
| --- | --- | --- | --- | 
|  `GetStaticMap`  |  50  |  100  | Solicitar no [console de cota de serviço](https://console.aws.amazon.com/servicequotas/home#!/services/geo/quotas) ou entre em contato com a equipe de suporte | 

## Limites de uso
<a name="other-usage-limits"></a>


| Nome da API | Limite | Valor | 
| --- | --- | --- | 
|  `GetStyleDescriptor`  |  Número máximo de solicitações, por segundo, por endereço IP.  |  5000  | 
|  `GetGlyphys`  |  Número máximo de solicitações, por segundo, por endereço IP.  | 5000 | 
|  `GetSprites`  |  Número máximo de solicitações, por segundo, por endereço IP.  | 5000 | 
|  `GetStaticMap`  |  Tamanho da carga útil de resposta após a compactação.  |  6 MB  | 
|  `GetTiles`  |  Tamanho da carga útil de resposta após a compactação.  |  6 MB  | 

## Termos
<a name="terms-to-use"></a>

Para obter mais informações, consulte [Termos de uso e atribuição de dados](data-attribution.md).