

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

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


Amazon Location Service Maps te da acceso a los datos de mapas básicos de 190 países con 5 millones de actualizaciones diarias. Las capacidades de mapas estáticos y dinámicos proporcionan la flexibilidad necesaria para satisfacer las diversas necesidades de los usuarios y ofrecer soluciones cartográficas envolventes y contextualmente relevantes.

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

Amazon Location Service ofrece mapas dinámicos y estáticos.

**Mapas dinámicos**  
Utilice estilos de AWS mapa, incluidos el estándar, el monocromo, el híbrido y el satelital. Añada mapas interactivos a su aplicación mediante el estilo de AWS mapa y el motor de [MapLibre](https://maplibre.org/)representación. Los mapas dinámicos admiten gestos como acercar, encuadrar, alisar, volar, inclinar, girar y orientar. Para obtener más información, consulte los [mapas dinámicos](https://docs.aws.amazon.com/location/latest/developerguide/dynamic-maps.html).

**Mapas estáticos**  
Utilice un mapa estático URLs para incrustar imágenes de mapas simples en sitios web, informes o correos electrónicos sin un motor de representación de mapas. Los mapas estáticos admiten superposiciones que incluyan marcadores (pines), rutas y áreas poligonales para su aplicación. Para obtener más información, consulte los mapas [estáticos](https://docs.aws.amazon.com/location/latest/developerguide/static-maps.html).

## Estilos de mapas prediseñados
<a name="prebuilt-map-styles"></a>

AWS los estilos de mapa siguen las convenciones reconocidas del sector y ofrecen una apariencia visual profesional y pulida. Estos estilos listos para usar aceleran el desarrollo sin necesidad de un diseño cartográfico personalizado. Cree mapas atractivos y listos para el usuario con un mínimo esfuerzo. Para obtener más información, consulte [Estilos de mapas de AWS](https://docs.aws.amazon.com/location/latest/developerguide/map-styles.html).

## Características
<a name="maps-features"></a>

AWS Las características de los mapas proporcionan opciones de visualización mejoradas de datos geográficos, [topográficos](https://docs.aws.amazon.com/location/latest/developerguide/maps-topographic-map.html) y de [navegación](https://docs.aws.amazon.com/location/latest/developerguide/maps-navigation-map.html), como el tránsito, la logística y los datos de tráfico en tiempo real. Cree experiencias cartográficas informativas y contextuales que se adapten a sus necesidades específicas. AWS los mapas permiten la [internacionalización y la localización,](https://docs.aws.amazon.com/location/latest/developerguide/maps-localization-internationalization.html) incluidas las opiniones políticas y los idiomas. Elija el punto de interés (POI) y las [combinaciones de colores](https://docs.aws.amazon.com/location/latest/developerguide/maps-color-scheme.html) que se adapten a su caso de uso. Para obtener más información, consulte las [características del mapa](https://docs.aws.amazon.com/location/latest/developerguide/maps-concepts.html).

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

**Incrustación de los mapas en la aplicación**  
Incorpore mapas a las aplicaciones para crear experiencias basadas en la ubicación. Visualice las ubicaciones comerciales, busque puntos de interés y ayude a los usuarios a encontrar direcciones específicas. Habilite características de geoetiquetado y uso compartido de ubicaciones sin interrupciones para captar la atención de los clientes. Utilice datos cartográficos completos, una geocodificación sólida y una representación flexible para crear mapas personalizados e interactivos que se adapten a sus necesidades. Integre experiencias cartográficas dinámicas y de alta calidad que fomenten la participación de los usuarios y la información empresarial en la aplicación, ya sea que esté creando un directorio, una aplicación para compartir viajes o una plataforma social.

**Mapas estáticos para generar informes o imprimirlos**  
Agregue sin problemas imágenes de mapas de calles, imágenes de satélite e imágenes basadas en la ubicación en los sitios web, documentos y aplicaciones. Los mapas estáticos le permiten crear imágenes de mapas personalizables que proporcionan un contexto geográfico, sin una representación compleja del cliente. Muestre la ruta de entrega en los recibos, incluya detalles de ubicación en los documentos o integre mapas en las experiencias digitales.

**Análisis y visualización de datos**  
Superponga los datos en mapas de alta calidad para detectar patrones y tendencias espaciales transformadores. Capacite a los equipos para crear visualizaciones de mapas interactivas y personalizables con los datos geográficos. Utilice mapas y datos para optimizar la selección de sitios, planificar la infraestructura o analizar las oportunidades de mercado.

**Mejora de las experiencias inmobiliarias**  
Proporcione a los posibles compradores un contexto de ubicación completo para las publicaciones inmobiliarias. Muestre la ubicación exacta de la propiedad junto con los detalles del vecindario circundante, como los límites jurisdiccionales, los negocios locales, los parques y las escuelas. Ayude a los clientes a encontrar indicaciones para llegar a las jornadas de puertas abiertas. Cree experiencias inmobiliarias informativas y centradas en la ubicación que atraigan e informen a los clientes.

**Creación de experiencias de viaje atractivas**  
Muestre mapas dinámicos que muestren los destinos, con vistas detalladas de las calles y las principales características geográficas. Destaque hoteles, restaurantes y otros puntos de interés para turistas y viajeros. Planifique servicios al aire libre, como rutas de senderismo, para ayudar a los usuarios a planificar su itinerario ideal.

**Uso de mapas para apoyar las iniciativas de respuesta a desastres**  
La información de ubicación precisa y oportuna es fundamental durante las crisis. Utilice las capacidades de mapeo para crear sitios web y aplicaciones que proporcionen un contexto esencial a las comunidades durante los desastres inminentes, como incendios, huracanes e inundaciones. Muestre mapas dinámicos que muestren las rutas de evacuación, los refugios seguros, los cierres de carreteras y la congestión del tráfico para ayudar a las comunidades a evaluar rápidamente la situación y tomar decisiones fundamentadas.

## Mapa independiente APIs
<a name="maps-apis"></a>


|  Nombre de API  |  Descripción breve  |  Recursos  | 
| --- | --- | --- | 
|  GetStyleDescriptor  |  Recupera los estilos de mapa disponibles, como el estándar, el monocromo, el híbrido y el satelital, que se pueden aplicar a los mapas.  |  [AWS estilos y características del mapa](map-styles.md)  | 
|  GetTile  |  Busca mosaicos de mapas individuales en función de un estilo y un nivel de zoom específicos, lo que permite renderizar los mapas con varios niveles de detalle.  |  [Azulejos](tiles.md)  | 
|  GetStaticMap  |  Genera una imagen de mapa estática basada en coordenadas y parámetros específicos, útil para incrustar mapas en informes o correos electrónicos.  |  [Mapas estáticos](static-maps.md)  | 

## Visualización de mapas
<a name="maps-display"></a>


|  Topic  |  Descripción breve  |  Recursos  | 
| --- | --- | --- | 
|  Estilos de mapa dinámico  |  Amazon Location Service ofrece dos opciones para aplicar estilos a sus mapas dinámicos, a saber, utilizar estilos de AWS mapa prediseñados y personalizar el estilo del mapa mediante descriptores de estilo.  | [Estilos de mapa dinámicos](styling-dynamic-maps.md) [Estilo de mapa estándar](standard-map-style.md) [Estilo de mapa monocromo](monochrome-map-style.md) [Estilo de mapa híbrido](hybrid-map-style.md) | 
|  Representación de mapa dinámico  |  Amazon Location Service recomienda renderizar los mapas con el motor de renderizado [MapLibre](https://github.com/maplibre/maplibre-gl-js). MapLibre es un motor para mostrar mapas en aplicaciones web o móviles.  |  [SDK de representación de mapas por idioma](map-rendering-by-language.md)  | 
|  Personalización de un mapa estático  |  Cómo personalizar mapas estáticos generados mediante Amazon Location Service.  |  [Personalización de mapas estáticos](customizing-static-maps.md)  | 
|  Superposición de un mapa estático  |  Superponga los mapas estáticos para mejorar la representación visual del mapa.  |  [Superposición en el mapa estático](overlaying-static-map.md)  | 

# Conceptos de mapas
<a name="maps-concepts"></a>

Amazon Location Service ofrece funciones cartográficas integrales que le permiten crear mapas personalizados y visualmente coherentes para sus aplicaciones. Puede aprovechar los estilos de mapas y los principios de diseño de AWS para personalizar la apariencia de sus mapas y garantizar la coherencia visual y la imagen de marca.

En `ap-southeast-1` el caso de los clientes`ap-southeast-5`, los campos de solicitud y respuesta admitidos pueden diferir. Consulta la referencia de la [API de Maps](https://docs.aws.amazon.com/location/latest/APIReference/API_Operations_Amazon_Location_Service_Maps_V2.html) para obtener más información.

En este tema se tratan los conceptos cartográficos esenciales, como la terminología, la localización, la internacionalización y las características de los mapas.

## Características
<a name="maps-concepts-features"></a>

Amazon Location Service te permite personalizar los mapas con funciones de estilo avanzadas. Añada elementos topográficos, como la densidad del terreno y los contornos, además de características relacionadas con las rutas, como el tráfico y los modos de viaje (camión o transporte público). Estas opciones de personalización le ayudan a adaptar la apariencia de los mapas a casos de uso específicos, como la logística, el tránsito o la visualización del terreno exterior.


| Nombre de la característica  | Description (Descripción) | Valores admitidos | Estilos de mapa compatibles | 
| --- | --- | --- | --- | 
| Combinación de colores | Establece la combinación de colores para los mapas | Light y Dark | Standard, Monochrome, Hybrid, Satellite | 
| Terreno | Mostrar sombreado topográfico | Hillshade y Terrain3D | Standard,Monochrome, Hybrid (Terrain3D) (Terrain3D) , Satellite | 
| ContourDensity | Mostrar líneas de elevación topográficas | Low, Medium, High | Standard, Monochrome, Hybrid | 
| Tráfico | Muestra las condiciones del tráfico en tiempo real | All, Congestion | Standard, Monochrome, Hybrid | 
| Edificios | Muestra estructuras de edificios tridimensionales | Buildings3D | Standard, Monochrome | 
| TravelModes | Optimice el estilo del mapa para los modos de viaje | Transit y Truck | Standard, Monochrome, Hybrid | 
| Idioma | Establece el idioma local | BCP47 códigos de idioma (por ejemplo, en-US, es-ES, fr-CH) | Standard, Monochrome, Hybrid | 
| PoliticalView | Vistas geopolíticas personalizadas de un país específico | Argentina, Chipre, Egipto, Georgia, Grecia, Kenia, Marruecos, Palestina, Serbia, Rusia, Sudán, Surinam, Siria, Turquía, Tanzania, Uruguay | Standard, Monochrome, Hybrid | 

Para obtener más información sobre los estilos Estándar, Monocromo e Híbrido, consulta Estilos de [mapa de Amazon Location Service](https://docs.aws.amazon.com/location/latest/developerguide/map-styles.html).

**Topics**
+ [Características](#maps-concepts-features)
+ [Terminología de DNS](maps-terminology.md)
+ [Combinación de colores](maps-color-scheme.md)
+ [Topografía](maps-topographic-map.md)
+ [Navegación](maps-navigation-map.md)
+ [Localización e internacionalización](maps-localization-internationalization.md)
+ [Funciones 3D](maps-3d-map.md)

# Terminología de DNS
<a name="maps-terminology"></a>

Entender estos términos clave te ayuda a utilizar de forma eficaz los recursos APIs y los mapas de Amazon Location Service.

**Mapa base**  
Un mapa base proporciona contexto geográfico al mapa, que se almacena como capas de mosaicos vectoriales. Estas capas de mosaicos incluyen características geográficas como nombres de calles, edificios y uso del suelo para referencia visual.

**Vector**  
Los datos vectoriales se componen de puntos, líneas y polígonos, y se utilizan para representar carreteras, ubicaciones y áreas en un mapa. Las formas vectoriales también se pueden utilizar como iconos para los marcadores de un mapa.

**Ráster**  
Los datos ráster son datos de imagen compuestos por una cuadrícula, normalmente representan datos continuos como terreno, imágenes de satélite o mapas térmicos. Las imágenes rasterizadas también se pueden utilizar como iconos o texturas en un mapa.

**Renderizado de mapas**  
La biblioteca de renderizado de mapas extrae datos de Amazon Location Service en tiempo de ejecución y los procesa en función del recurso de mapa que seleccione. Un recurso de mapa define el proveedor de datos y el estilo de mapa. Amazon Location Service requiere el motor de [MapLibre](https://maplibre.org/)renderizado.

**Mosaico vectorial**  
Una tesela vectorial almacena los datos del mapa mediante formas vectoriales. Se ajusta a la resolución de la pantalla y renderiza las características de forma selectiva, manteniendo un tamaño de archivo pequeño para un rendimiento óptimo. Formato compatible: [Mapbox Vector Tiles](https://docs.mapbox.com/data/tilesets/guides/vector-tiles-standards/) (MVT).

**Estilos de mapa**  
Un estilo de mapa define el color y otra información de estilo de los datos del mapa, lo que determina el aspecto del mapa cuando se representa. Amazon Location Service proporciona estilos de mapa en función de las especificaciones de estilo de Mapbox GL.

**Archivo glifo**  
Un archivo binario que contiene caracteres Unicode codificados, utilizado por un renderizador de mapas para mostrar etiquetas.

**Archivo sprite**  
Un archivo de imagen de gráfico de red portátil (PNG) que contiene imágenes ráster pequeñas y descripciones de ubicación correspondientes en un archivo JSON. Lo utiliza un renderizador de mapas para mostrar iconos o texturas en un mapa.

**Cuadro delimitador**  
Un cuadro delimitador se define mediante dos vértices diagonales: los puntos noroeste (NW) (arriba a la izquierda) y sureste (SE) (abajo a la derecha). Estos puntos especifican la extensión espacial de un mapa.

# Combinación de colores
<a name="maps-color-scheme"></a>

Amazon Location Service te permite configurar la combinación de colores de los mapas. El parámetro de combinación de colores establece la paleta de colores del mapa, por ejemplo, `Light` o`Dark`, para adaptarla mejor a las necesidades de diseño y accesibilidad de la aplicación.

## Combinaciones de colores claros y oscuros
<a name="maps-color-scheme-light-dark"></a>

El `Light` modo es versátil y se adapta a cualquier contexto, mientras que el `Dark` modo presenta una paleta restringida diseñada para mostrar los detalles con claridad y mantener la legibilidad en entornos más oscuros.

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

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


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

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


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

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


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

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


------

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

Los elementos topográficos, como el terreno y las líneas de contorno, muestran los cambios de elevación y las características geográficas. Esto ayuda a los usuarios a comprender mejor el paisaje físico y las características del terreno de las áreas cartografiadas.

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

La función de terreno muestra la superficie terrestre con un sombreado de elevación, que representa los cambios de elevación y los accidentes geográficos naturales. Ayuda a los usuarios a interpretar la forma y la estructura del paisaje dentro de las regiones mapeadas.

Usa el `terrain` parámetro en tu solicitud de API para mostrar la topografía regional con un sombreado de elevación. Esta función resalta las variaciones en la elevación y las características geográficas, lo que ayuda a los usuarios a visualizar mejor el paisaje físico. Consulte [Cómo crear 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/es_es/location/latest/developerguide/images/map-topographic-terrain.gif)


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

La función 3D Terrain representa los datos de elevación de la superficie terrestre como una superficie tridimensional, lo que permite a los usuarios ver los paisajes desde múltiples ángulos y perspectivas. Al controlar el ángulo de visión, los usuarios pueden percibir más fácilmente la profundidad y evaluar la complejidad del terreno, las pendientes y las alturas relativas en las áreas cartografiadas.

Usa el `terrain` parámetro en tu solicitud de API para habilitar la visualización tridimensional del terreno. Esta función proporciona una perspectiva inmersiva de las características topográficas, lo que la hace particularmente útil para comprender las relaciones espaciales en terrenos montañosos o variados.

Combine el terreno 3D con el `contour-density` parámetro en su solicitud de API para mejorar la precisión de la elevación y el contexto visual. Consulte [Crear un 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/es_es/location/latest/developerguide/images/zoom-hybrid-3d-terrain.gif)


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

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


------

## Densidad de contornos
<a name="maps-topographic-contour-density"></a>

La función de densidad de contornos visualiza las líneas de contorno para representar la inclinación del terreno y la variación de elevación. Con esto, los usuarios pueden identificar fácilmente las pendientes, los gradientes de elevación y otros patrones topográficos.

Usa el `contour-density` parámetro en tu solicitud de API para representar curvas de nivel de elevación topográficas que representen la pendiente y la forma del terreno. Esto proporciona una visualización detallada de los accidentes geográficos con diferentes niveles de densidad para mejorar la comprensión topográfica. Consulte [Cómo crear 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/es_es/location/latest/developerguide/images/zoom-contours-low.gif)


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

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


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

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


------

# Navegación
<a name="maps-navigation-map"></a>

Las funciones de navegación, como `Traffic` y `Truck TravelModes` proporcionan herramientas de visualización dinámica que mejoran la navegación y la planificación de rutas. Ayudan a los usuarios a comprender el estado de las carreteras en tiempo real y a elegir las opciones de viaje más eficientes en función de sus necesidades de transporte.

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

La capa de tráfico proporciona una visualización en tiempo real de las condiciones del tráfico, incluida la congestión de las carreteras, las zonas de construcción y los incidentes notificados. Esta función ayuda a los usuarios a tomar decisiones de ruta informadas y a optimizar la eficiencia de los viajes en función de las condiciones actuales de la carretera.

Usa el `traffic` parámetro en tu solicitud de API para mostrar información de tráfico en tiempo real. Esto incluye datos sobre la congestión de las carreteras, las áreas de construcción y los incidentes, lo que ayuda a los usuarios a tomar decisiones de ruta informadas y eficientes. Vea [cómo mostrar el tráfico en tiempo real en un 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/es_es/location/latest/developerguide/images/zoom-traffic-all.gif)


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

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


------

## Modo de viaje
<a name="maps-navigation-travel-modes"></a>

La función de modos de viaje permite la visualización y selección de diferentes métodos de transporte. Admite información de rutas para varios modos, como el transporte público, el transporte por carretera u otros tipos de navegación especializados que tienen en cuenta las restricciones y normas de circulación. Esto ayuda a los usuarios a planificar rutas optimizadas para su modo de viaje específico.

Usa el `travel-modes` parámetro en tu solicitud de API para mostrar los datos de enrutamiento específicos del transporte. Descubre [cómo mostrar los detalles del transporte público en un mapa](https://docs.aws.amazon.com/location/latest/developerguide/how-to-show-transit-details-map.html) y [cómo crear un](https://docs.aws.amazon.com/location/latest/developerguide/how-to-create-logistic-map.html) mapa logístico.

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


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


# Localización e internacionalización
<a name="maps-localization-internationalization"></a>

Amazon Location Service admite funciones de localización que le permiten personalizar mapas para idiomas y regiones específicos. Esto incluye la compatibilidad con los nombres de lugares locales y la capacidad de renderizar mapas en diferentes idiomas.


| Style (Estilo) | Opinión política | Idiomas | 
| --- | --- | --- | 
| Standard | Argentina, Chipre, Egipto, Georgia, Grecia, Kenia, Marruecos, Palestina, Serbia, Rusia, Sudán, Surinam, Siria, Turquía, Tanzania, Uruguay | Compatible con la biblioteca del lado del cliente | 
| Monocromo | Argentina, Chipre, Egipto, Georgia, Grecia, Kenia, Marruecos, Palestina, Serbia, Rusia, Sudán, Surinam, Siria, Turquía, Tanzania, Uruguay | Compatible a través de la biblioteca del lado del cliente | 
| Híbrido | Argentina, Chipre, Egipto, Georgia, Grecia, Kenia, Marruecos, Palestina, Serbia, Rusia, Sudán, Surinam, Siria, Turquía, Tanzania, Uruguay | Compatible a través de la biblioteca del lado del cliente | 
| Satellite | No admitido | No admitido | 

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

Amazon Location Service proporciona mapas APIs que le permiten personalizar el idioma de las etiquetas de los mapas y los elementos de texto. Esta capacidad ayuda a que sus aplicaciones se adapten a una audiencia global o a regiones con varios idiomas. Al mostrar los mapas en el idioma preferido del usuario, mejora la experiencia general del usuario, haciendo que los mapas sean más accesibles y relevantes para su diversa base de usuarios.

Para obtener más información, consulte [Cómo establecer un idioma preferido para un 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/es_es/location/latest/developerguide/images/standard-language-switcher.gif)


## Opinión política
<a name="maps-political"></a>

De forma predeterminada, Amazon Location Service presenta una perspectiva internacional, que representa visualmente los territorios en disputa con fronteras discontinuas. Para pasar de la perspectiva internacional a una visión geopolítica específica de cada país, usa el parámetro de *vista política* en tu consulta de API. Esto ayuda a las empresas a cumplir con las leyes locales, ya que algunos países exigen que se respeten sus puntos de vista geopolíticos específicos para los mapas y los datos cartográficos.

Además de la perspectiva internacional predeterminada, Amazon Location Service apoya las opiniones geopolíticas de los siguientes países: Argentina, Chipre, Egipto, Georgia, Grecia, Kenia, Marruecos, Palestina, Serbia, Rusia, Sudán, Surinam, Siria, Turquía, Tanzania y Uruguay. Para activar una vista geopolítica, pase el valor correspondiente al parámetro de *vista política*.

Para obtener más información, consulte [Cómo configurar la vista política de un 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/es_es/location/latest/developerguide/images/maps-political-view.png)


# Funciones 3D
<a name="maps-3d-map"></a>

Las capacidades de visualización 3D de Amazon Location Service (terrenos y edificios) ayudan a los usuarios a tomar mejores decisiones al añadir profundidad y perspectiva a los datos geográficos. El terreno 3D revela los cambios de elevación fundamentales para la optimización de las rutas, la planificación de la respuesta a emergencias y la recreación al aire libre, mientras que los edificios 3D proporcionan un contexto espacial para la navegación urbana, la evaluación de bienes inmuebles y la identificación de puntos de referencia. Estas funciones se integran a la perfección mediante parámetros API sencillos (terreno, edificios), lo que permite a las aplicaciones de logística, seguridad pública, turismo e inmobiliario ofrecer experiencias de usuario más intuitivas y atractivas sin necesidad de una implementación compleja.

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

La función 3D Terrain representa los datos de elevación de la superficie terrestre como una superficie tridimensional, lo que permite a los usuarios ver los paisajes desde múltiples ángulos y perspectivas. Al controlar el ángulo de visión, los usuarios pueden percibir más fácilmente la profundidad y evaluar la complejidad del terreno, las pendientes y las alturas relativas en las áreas cartografiadas.

Usa el `terrain` parámetro en tu solicitud de API para habilitar la visualización tridimensional del terreno. Esta función proporciona una perspectiva inmersiva de las características topográficas, lo que la hace particularmente útil para comprender las relaciones espaciales en terrenos montañosos o variados.

Combine el terreno 3D con el `contour-density` parámetro en su solicitud de API para mejorar la precisión de la elevación y el contexto visual. Consulte [Crear un 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/es_es/location/latest/developerguide/images/zoom-hybrid-3d-terrain.gif)


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

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


------

## Edificios 3D
<a name="maps-3d-buildings"></a>

La función Edificios 3D representa las huellas de los edificios como estructuras tridimensionales con altura y volumen, lo que permite a los usuarios visualizar los entornos urbanos desde múltiples ángulos y perspectivas. Al controlar el ángulo de visión, los usuarios pueden comprender más fácilmente la densidad de los edificios, las relaciones de altura y el contexto espacial dentro de las ciudades y áreas desarrolladas.

Usa el `buildings` parámetro en tu solicitud de API para habilitar la visualización tridimensional de edificios. Esta función proporciona una perspectiva inmersiva de los paisajes urbanos, lo que la hace especialmente útil para comprender los diseños de las ciudades, identificar puntos de referencia y navegar por entornos urbanos complejos. Consulte [Crear un 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/es_es/location/latest/developerguide/images/zoom-3d-buildings.gif)


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

La función Globe View proporciona una representación esférica de la Tierra, lo que permite a los usuarios visualizar los datos geográficos en un globo tridimensional. Esta perspectiva ofrece una forma natural e intuitiva de entender las relaciones espaciales globales, los diseños continentales y la curvatura de la superficie terrestre.

Utilice Globe View para mostrar mapas con una curvatura terrestre realista y una perspectiva global. Consulte [Crear un 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/es_es/location/latest/developerguide/images/zoom-globe-view.gif)


# AWS estilos y características del mapa
<a name="map-styles"></a>

## Información general de estilos de mapas
<a name="map-style-overview"></a>

Para solicitar un mapa, primero debe elegir un estilo de mapa. Los estilos de mapa definen la apariencia visual del mapa renderizado, incluido el estilo de los mosaicos, los glifos y los sprites del mapa. Los mosaicos del mapa pueden ser vectoriales (MVT) o rasterizados (imagen). Aunque el estilo puede cambiar al acercar o alejar, generalmente mantiene un tema coherente. Puede invalidar parte o todo el estilo antes de pasarlo a la biblioteca de representación de mapas.

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

AWS los estilos de mapa cumplen con los estándares del sector y ofrecen un aspecto sofisticado y profesional. Estos estilos reducen time-to-market y eliminan la necesidad de que cartógrafos especializados creen estilos de mapa partiendo de cero. Estos estilos prediseñados le permiten crear de forma rápida y eficaz mapas visualmente atractivos para los usuarios finales.

Al utilizar los estilos de AWS mapa prediseñados, puede evitar el proceso de diseño y construcción de estilos de mapa partiendo de cero, que consume mucho tiempo y recursos. Esto acelera el proceso de desarrollo, lo que le permite centrarse en las funcionalidades principales.




| Nombre del estilo de mapa | Description (Descripción) | Combinación de colores | Soporta mapas dinámicos | Soporta mapas estáticos | 
| --- | --- | --- | --- | --- | 
| Standard | Estilo de mapa de coloreado | Oscuro y claro | Sí | Sí | 
| Monocromo | Estilos de mapas de escala de grises | Oscuro y claro | Sí | No | 
| Híbrido | Superposición de carreteras y etiquetas en las imágenes de satélite | No aplicable | Sí | No | 
| Satellite | Estilo de mapa basado en imágenes de satélite | No aplicable | Sí | Sí | 

Amazon Location Service proporciona estilos que siguen la [especificación de estilo de MapLibre GL](https://maplibre.org/maplibre-style-spec/).

## Estilo de mapa estándar
<a name="standard-map"></a>

El estilo de mapa estándar es un diseño de mapa limpio, moderno y de uso general que se adapta perfectamente a casi cualquier aplicación o sitio web.

Para obtener más información, consulte [Estilo de mapa estándar](standard-map-style.md).

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


## Estilo de mapa monocromo
<a name="monochrome-map"></a>

El estilo de mapa monocromo es un lienzo minimalista con una paleta de colores restringida, diseñado para usarse con superposiciones de visualización de datos. El estilo monocromo ofrece modos claros y oscuros, y comunica toda la información esencial necesaria para el contexto geográfico.

Para obtener más información, consulte [Estilo de mapa monocromo](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/es_es/location/latest/developerguide/images/map-monochrome.png)


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

El estilo de mapa híbrido combina imágenes satelitales globales con etiquetas claras y categorías de POI configurables de nuestros mapas vectoriales.

Para obtener más información, consulte [Estilo de mapa híbrido](hybrid-map-style.md).

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


## Estilo de mapa satelital
<a name="satellite-map"></a>

El estilo de mapa satelital presenta imágenes del mundo real de alta resolución capturadas por satélites, lo que ofrece una vista realista de los paisajes, los edificios y el terreno. Este estilo suele incluir etiquetas o superposiciones mínimas para centrarse en los detalles geográficos.

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


# Estilo de mapa estándar
<a name="standard-map-style"></a>

El estilo de mapa estándar ofrece un diseño de mapa limpio, moderno y de uso general que se adapta perfectamente a casi cualquier aplicación o sitio web.

## Combinación de colores
<a name="color-scheme"></a>

El estilo de mapa estándar está disponible en los modos claro y oscuro. El modo claro es versátil y se adapta a cualquier contexto, mientras que el modo oscuro presenta una paleta restringida, diseñada para mostrar los detalles con claridad y mantener la legibilidad en entornos más oscuros. Esto garantiza un mínimo de distracciones, especialmente en escenarios como la navegación nocturna.

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

![\[Map of Washington state and Vancouver area showing coastal regions and major cities.\]](http://docs.aws.amazon.com/es_es/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/es_es/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/es_es/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/es_es/location/latest/developerguide/images/color-scheme-neighborhood.png)


------

## Una paleta moderna y agradable
<a name="modern-palette"></a>

Los colores suaves proporcionan un contexto importante sobre el uso del suelo sin sobrecargar el mapa y ofrecen información útil tanto en los niveles de zoom altos como en los bajos. Al reducir la imagen, características como los bosques, los desiertos y los glaciares agregan riqueza al mapa. Cuando se amplía, una gama de colores resalta puntos de interés importantes, como escuelas, hospitales, áreas recreativas (como parques e instalaciones deportivas) y distritos urbanos, como zonas comerciales e industriales.

El estilo general presenta una paleta de colores coherente, que incluye marcadores de POI que complementan sus respectivas áreas de uso del suelo. La red de carreteras se muestra en tonos de gris, lo que proporciona detalles sin sobrecargar el mapa con colores brillantes y molestos.

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

![\[Map of San Francisco Bay Area showing cities and highways in standard and dark modes.\]](http://docs.aws.amazon.com/es_es/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/es_es/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/es_es/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/es_es/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/es_es/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/es_es/location/latest/developerguide/images/style-roundabout.png)


------

## Numerosos puntos de interés (POI)
<a name="rich-poi"></a>

El estilo de mapa estándar admite una amplia gama de puntos de interés configurables (POIs). Con tan solo unas pocas líneas de código, puede seleccionar las categorías de POI que sean relevantes para su caso de uso.

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


## Diseñado para el mundo
<a name="designed-for-the-world"></a>

El estilo estándar admite diferentes puntos de vista políticos, lo que garantiza que el mapa muestre las fronteras correctas para los usuarios. El estilo también permite cambiar fácilmente de idioma para las etiquetas de los mapas, con docenas de idiomas y sistemas de escritura compatibles.

Para obtener más información, consulte [Localización e internacionalización](maps-localization-internationalization.md).

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

![\[Map of Taiwan showing major cities and geographical features including Taiwan Strait.\]](http://docs.aws.amazon.com/es_es/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/es_es/location/latest/developerguide/images/maps-political-view.png)


------

## Topografía
<a name="topography"></a>

El estilo de mapa estándar proporciona una visualización topográfica detallada que resalta las variaciones de elevación y las características geográficas naturales. Las líneas de contorno, las sombras y las texturas del terreno crean una representación realista del paisaje, lo que permite a los usuarios interpretar fácilmente las pendientes, los valles y los picos. Esta representación topográfica es ideal para la planificación de actividades al aire libre, el análisis ambiental y las aplicaciones en las que la comprensión de las características del terreno mejora la toma de decisiones y la percepción del espacio.

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

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

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

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

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

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

------

## Navegación
<a name="navigation"></a>

El estilo de mapa estándar ofrece opciones para proporcionar una visualización dinámica diseñada para optimizar la navegación y la planificación de rutas. Los datos de tráfico en tiempo real destacan la congestión, los incidentes y el estado de las carreteras, lo que permite a los usuarios anticipar los retrasos y ajustar sus rutas en consecuencia. Con varios modos de viaje, como el camión o el transporte público, esta función permite a los usuarios seleccionar la opción más eficiente y adecuada al contexto para su ruta, lo que garantiza experiencias de ruta más fluidas e informadas.

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

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

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

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

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

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

------

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

El estilo de mapa estándar proporciona una visualización tridimensional inmersiva que representa la elevación del terreno y las estructuras de los edificios con profundidad y perspectiva espaciales. Los ángulos de visión ajustables, los controles de inclinación y la representación tridimensional crean una representación realista de los paisajes naturales y los entornos urbanos, lo que permite a los usuarios interpretar fácilmente los cambios de elevación, la complejidad del terreno y las relaciones espaciales. Esta representación tridimensional es ideal para la planificación de rutas, la navegación urbana y aplicaciones en las que comprender las dimensiones verticales y la percepción de la profundidad mejora la toma de decisiones y la percepción del espacio.

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

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

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

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

------

## Uso de suelo
<a name="land-use"></a>

El estilo de mapa estándar utiliza colores vibrantes para indicar los usos del suelo designados. Los verdes representan bosques, césped, campos de golf, centros deportivos y parques. Los colores relevantes se utilizan para cuerpos de agua, glaciares, desiertos y playas. Además, los usos del suelo, como los comerciales, los industriales, los aeropuertos, las zonas militares, las instalaciones médicas y las áreas educativas, se destacan con categorías vibrantes específicas.

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

![\[Color-coded squares representing various land uses with corresponding hex codes.\]](http://docs.aws.amazon.com/es_es/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/es_es/location/latest/developerguide/images/land-use-dark.png)


------

# Estilo de mapa monocromo
<a name="monochrome-map-style"></a>

El estilo monocromo es un lienzo minimalista con una paleta de colores restringida, diseñado para usarse con superposiciones de visualización de datos. Este estilo admite modos claro y oscuro, y cada uno comunica toda la información esencial necesaria para el contexto geográfico.

## Combinaciones de colores
<a name="color-schemes"></a>

El estilo monocromo ofrece opciones de color para los modos oscuro y claro.

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

![\[Map of North America showing the United States, Canada, Mexico, and parts of Central and South America.\]](http://docs.aws.amazon.com/es_es/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/es_es/location/latest/developerguide/images/monochrome-neighborhood-colors.png)


------

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

El estilo monocromo es ideal para la visualización de datos y las necesidades de diseño minimalista.

### Visualización de datos
<a name="data-visualization"></a>

El estilo monocromo utiliza deliberadamente solo tonos de gris, lo que le permite elegir el color con total libertad para las capas de superposición de datos, como coropletas, mapas térmicos o mapas de puntos.

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


### Diseño minimalista
<a name="minimalist"></a>

Para mantener un mapa limpio y discreto, los estilos monocromáticos incluyen un conjunto reducido de puntos de interés (POIs) para elementos esenciales, como aeropuertos, parques, hospitales y universidades.

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

![\[Map showing Miami International Airport and surrounding roads including Airport Expy and Dolphin Expy.\]](http://docs.aws.amazon.com/es_es/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/es_es/location/latest/developerguide/images/monochrome-neighborhood.png)


------

Aunque el estilo monocromo incluye un conjunto reducido de datos de puntos de interés POIs, las teselas subyacentes siguen conteniendo el conjunto completo de datos de puntos de interés. Esto le permite mostrar los elementos POIs que no están presentes visualmente en el estilo.

## Diseñado para el mundo
<a name="designed-for-the-world"></a>

El estilo monocromo admite diferentes puntos de vista políticos, lo que garantiza que el mapa muestre las fronteras correctas para los usuarios. El estilo también permite cambiar fácilmente entre idiomas para las etiquetas de los mapas, con docenas de idiomas y sistemas de escritura compatibles.

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


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

El estilo de mapa híbrido combina imágenes satelitales globales con las mismas etiquetas claras y categorías de puntos de interés (POI) configurables que se encuentran en el estilo de mapa estándar. Esta combinación proporciona detalles geográficos y, al mismo tiempo, garantiza la legibilidad y la usabilidad de la aplicación.

## Numerosos puntos de interés (POI)
<a name="rich-poi"></a>

Las etiquetas y los POI se han diseñado específicamente para ofrecer contraste y legibilidad, lo que proporciona el contexto necesario para la capa satelital sin distraer la atención de las imágenes detalladas. Las líneas de carretera claras resaltan la estructura urbana cuando se alejan y se difuminan gradualmente a medida que se acerca, lo que revela información más detallada por calle.

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

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


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

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


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

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


------

## Diseñado para el mundo
<a name="designed-for-the-world"></a>

El estilo híbrido admite diferentes puntos de vista políticos, lo que garantiza que el mapa muestre los bordes correctos para los usuarios. Este estilo también permite cambiar fácilmente de idioma para las etiquetas de los mapas, con docenas de idiomas y sistemas de escritura compatibles disponibles para garantizar una experiencia localizada.

# API de Mapas
<a name="choose-maps-apis"></a>

Los mapas proporcionan acceso a tipos de mapas dinámicos y estáticos para una variedad de aplicaciones. Para obtener más información, consulte [Amazon Location Service Maps](maps.md).
+ **Mapas dinámicos**: mapas interactivos que se pueden personalizar en tiempo real, lo que permite a los usuarios desplazar, hacer zoom y superponer datos. Para obtener más información, consulte [Mapas dinámicos](dynamic-maps.md).
+ **Mapas estáticos**: imágenes estáticas de mapas que muestran ubicaciones o rutas específicas sin elementos interactivos, adecuadas para aplicaciones con interactividad limitada. Para obtener más información, consulte [Mapas estáticos](static-maps.md).

La siguiente tabla presenta una serie de casos de uso empresariales que se resuelven mejor con las API de Mapas.

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

La siguiente sección presenta una serie de casos de uso empresariales que se resuelven mejor con las API de Mapas.


| **Necesidad empresarial** | **API útil** | **Ejemplos** | 
| --- | --- | --- | 
|  **Muestra de mapas interactivos** Admite gestos de mapa, como acercar, desplazar, inclinar, girar y orientar.  | `GetTile` y `GetStyleDescriptor` con motor de representación (MapLibre) | [Cómo mostrar un mapa](how-to-display-a-map.md) | 
|  **Agregación de marcadores a un mapa** Algunos ejemplos son los marcadores, los iconos, etc.  |  `GetTile` y `GetStyleDescriptor` con motor de representación (MapLibre) | [Cómo agregar un marcador en el mapa](how-to-add-marker-on-map.md) [Cómo agregar un icono en el mapa](how-to-add-icon-on-map.md) | 
|  **Agregación de componentes de interacción con el usuario a un mapa** Algunos ejemplos son mostrar el mapa en el idioma preferido o en una vista geopolítica. |  `GetTile` y `GetStyleDescriptor` con motor de representación (MapLibre) | [Cómo agregar el control en el mapa](how-to-add-control-on-map.md) [Cómo agregar una ventana emergente a un mapa](how-to-add-popup-to-map.md) | 
| **Visualización de datos pregrabados o en tiempo real en un mapa** Algunos ejemplos son mapas térmicos, KML, características de GeoJSON, polígonos, rectángulos, polilíneas, círculos, marcadores, etc. | `GetTile` y `GetStyleDescriptor` con motor de representación (MapLibre) | [Cómo agregar una línea en el mapa](how-to-add-line-on-map.md) [Cómo agregar un polígono en el mapa](how-to-add-polygon-on-map.md) | 
| **Muestra de mapa con localización**Algunos ejemplos son mostrar el mapa en el idioma preferido o en una vista geopolítica. |  `GetTile` y `GetStyleDescriptor` con motor de representación (MapLibre) | [Cómo establecer un idioma preferido para un mapa](how-to-set-preferred-language-map.md) [Cómo configurar la vista política de un mapa](how-to-set-political-view-map.md) | 
| **Muestra de una imagen de mapa estática** Por ejemplo, utilice una imagen de mapa en una aplicación, un correo electrónico, un informe o una impresión. | `GetStaticMap` | [Cómo obtener un mapa estático de una posición específica](get-static-map-specific-position.md) [Cómo obtener un mapa estático de una dimensión específica](get-static-map-specific-dimension.md) [Cómo decidir entre el radio y el zoom para un mapa estático](choose-radius-vs-zoom.md) [Cómo agregar una escala a un mapa estático](add-scale-static-map.md)  | 
| **Agregación de un marcador a una imagen de mapa** Algunos ejemplos son los marcadores, el círculo de proximidad, el icono, etc. | `GetStaticMap` | [Cómo agregar un marcador a un mapa estático](add-marker-static-map.md) | 
| **Visualización de los datos en una imagen de mapa** Algunos ejemplos son características de GeoJSON, polígonos, rectángulos, polilíneas, círculos, etc. |  `GetStaticMap` | [Cómo agregar una línea a un mapa estático](how-to-add-line-static.md)  | 
| **Visualización de un caso de uso del mundo real en un mapa** Los ejemplos incluyen rutas, círculos de proximidad, etc. |  `GetStaticMap` | [Cómo agregar una ruta a un mapa estático](how-to-add-route.md)  | 
| **Visualización de los resultados de la búsqueda o geocodificación de los lugares en un mapa**Todas las API devuelven geocoordenadas, excepto las que se autocompletan.  | GetTile y GetStyleDescriptor con motor de representación (MapLibre) con la API de Places |    | 
| **Dibujo de una ruta en un mapa**Admite el marcado de puntos de referencia. | GetTile y GetStyleDescriptor con motor de representación (MapLibre) con Cálculo de ruta  |  | 
| **Visualización de los rastros de GPS coincidentes en un mapa**Admite modos de viaje, como camión, peatón, coche y moto.  | GetStyleDescriptor con motor de representación (MapLibre) con Ajustar a la carretera  |  | 

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

**nota**  
Debe utilizar la característica de vista política para cumplir con las leyes aplicables, incluidas las relacionadas con los mapas del país o la región en los que están disponibles los mapas, las imágenes y otros datos a los que se accede a través de Amazon Location Service.

Los mapas dinámicos, también conocidos como mapas interactivos, son mapas digitales que admiten gestos como acercar, desplazar, inclinar, girar y orientar. Con Amazon Location Service, puede crear aplicaciones de mapas que proporcionen experiencias receptivas, interactivas e inmersivas para los usuarios. Estos mapas ayudan a los usuarios a visualizar y analizar datos históricos y en tiempo real en función de las entradas de los usuarios, lo que les permite desplazar, acercar y explorar el mapa en tiempo real. Los mapas que ofrece Amazon Location Service también admiten varios idiomas y visiones políticas.

Obtención de más información sobre [Localización e internacionalización](maps-localization-internationalization.md).

Para ver ejemplos de solicitudes, respuestas, cURL y comandos de la CLI para esta API, consulte [Cómo 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/es_es/location/latest/developerguide/images/dynamic-city.png)


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

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


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

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


------

Para obtener más información sobre estilos de mapas de AWS, consulte [AWS estilos y características del mapa](map-styles.md).

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

**Análisis y visualización de datos**  
Superponga los datos en mapas de alta calidad para detectar patrones y tendencias espaciales transformadores. Capacite a los equipos para crear visualizaciones de mapas interactivas y personalizables con los datos geográficos. Utilice mapas y datos para optimizar la selección de sitios, planificar la infraestructura o analizar las oportunidades de mercado.

**Mejora de las experiencias inmobiliarias**  
Proporcione a los posibles compradores un contexto de ubicación completo para las publicaciones inmobiliarias. Muestre la ubicación exacta de la propiedad junto con los detalles del vecindario circundante, como los límites jurisdiccionales, los negocios locales, los parques y las escuelas. Ayude a los clientes a encontrar cómo llegar a las jornadas de puertas abiertas y cree experiencias inmobiliarias informativas y centradas en la ubicación.

**Creación de experiencias de viaje atractivas**  
Muestre mapas dinámicos que muestren los destinos, con vistas detalladas de las calles y las principales características geográficas. Destaque los puntos de interés, como hoteles, restaurantes y atracciones para turistas y viajeros. Planifique servicios al aire libre, como rutas de senderismo, para ayudar a los usuarios a planificar su itinerario ideal.

## Representación de mapas dinámicos
<a name="rendering-dynamic-map"></a>

Un motor de representación de mapas es una biblioteca responsable de la representación visual de los mapas en pantallas digitales. El motor de representación combina mosaicos de mapas (vectoriales, híbridos, satelitales), datos de mapas (puntos, líneas, polígonos) o datos rasterizados (imágenes) para mostrar un mapa interactivo en navegadores web o aplicaciones nativas. Amazon Location Service recomienda utilizar el motor de renderizado [MapLibre](https://github.com/maplibre/maplibre-gl-js), que es compatible con plataformas web y móviles (iOS y Android). MapLibre también tiene un modelo de complemento y es compatible con las interfaces de usuario para la búsqueda y el enrutamiento en varios idiomas.

Para obtener más información, consulte [Creación de la primera aplicación de mapas y lugares de Amazon Location](first-app.md).

## Solicitud de activos de mapas
<a name="requesting-map-assets"></a>

El motor de representación utiliza un estilo de mapa que contiene referencias a mosaicos de mapas, sprites (iconos) y glifos (fuentes). A medida que los usuarios interactúan con el mapa (cargando, desplazando o haciendo zoom), el motor de representación llama a las API (para mosaicos, sprites y glifos) con los parámetros de entrada deseados. También puede llamar directamente a estas API en función de las necesidades de la aplicación.

**Mosaicos de mapas**  
Pequeños mosaicos cuadrados que contienen datos recuperados de los servidores y ensamblados por un motor de representación para crear un mapa digital interactivo.

**Estilo de mapa**  
Una recopilación de reglas que definen el aspecto visual del mapa, como los colores y los estilos. Amazon Location Service sigue la [especificación de estilo de Mapbox GL](https://docs.mapbox.com/style-spec/guides/).

**Archivo Glyph**  
Un archivo binario que contiene caracteres Unicode codificados, utilizado por el renderizador de mapas para mostrar etiquetas de texto.

**Archivo Sprite**  
Archivo de imagen de gráfico de red portátil (PNG) que contiene imágenes rasterizadas pequeñas, con descripciones de ubicación en un archivo JSON. Lo utiliza un renderizador de mapas para representar iconos o texturas en un mapa.

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

Los mosaicos de mapas se renderizan previamente, son pequeñas secciones de un mapa más grande y, por lo general, se muestran como imágenes cuadradas. Se utilizan para mostrar datos geográficos de manera eficiente al cargar solo las partes visibles en diferentes niveles de zoom. Hay tres tipos principales de mosaicos de mapas:

Para obtener más información, consulta [GetTile](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetTile.html)la *referencia de la API de Amazon Location Service*.

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

**Mosaicos de mapas vectoriales**  
Los mosaicos de mapas vectoriales almacenan los datos del mapa como formas geométricas (puntos, líneas, polígonos) en lugar de como imágenes. Esto permite crear mapas escalables y de alta calidad que permanecen nítidos en cualquier resolución.

**Mosaicos de mapas rasterizados**  
Los mosaicos de mapas rasterizados son imágenes renderizadas previamente que representan un área geográfica específica. A diferencia de los mosaicos vectoriales, los mosaicos rasterizados son más sencillos pero carecen de flexibilidad para rediseñarlos.

**Mosaicos de mapas híbridos**  
Los mosaicos de mapas híbridos combinan datos vectoriales y rasterizados. Utilizan datos vectoriales para los elementos principales del mapa, como las carreteras, mientras que utilizan imágenes rasterizadas para elementos más complejos, como fotografías aéreas o satelitales detalladas.

## Capas de mosaicos vectoriales
<a name="vector-tiles-layers"></a>

A continuación, se muestran las 10 capas de mosaicos de mapas vectoriales:
+ **Límites**: define los límites administrativos y geográficos, incluidos los límites del país, el estado y la ciudad.
+ **Edificios y direcciones**: representa las formas de los edificios y los puntos de dirección detallados.
+ **Tierra**: muestra la cobertura global del terreno y la superficie de elementos naturales como desiertos, montañas y bosques.
+ **Uso del suelo**: muestra áreas categorizadas, como parques, tierras de cultivo y zonas urbanas.
+ **Lugares**: identifica ubicaciones importantes, como ciudades, pueblos y puntos de referencia notables.
+ **Puntos de interés (POIs)**: Destacan las atracciones, los negocios y otros lugares clave.
+ **Carreteras**: representa la red de calles, autopistas y senderos.
+ **Etiquetas de carretera**: proporciona etiquetas de texto para los nombres de las carreteras y los números de ruta.
+ **Tránsito**: representa las líneas de transporte público, como autobuses, trenes y metros.
+ **Agua**: muestra cuerpos de agua, como lagos, ríos y océanos.

## Casos de uso
<a name="tiles-use-cases"></a>
+ Obtención de mosaicos de mapas para renderizar diferentes secciones de un mapa en varios niveles de zoom.
+ Optimización de las solicitudes de mosaicos de mapas en función de la interacción del usuario, como la panorámica y el zoom.
+ Acceso a mosaicos vectoriales o rasterizados para obtener una representación detallada.

## Explicación de la solicitud
<a name="tiles-understand-the-request"></a>

**nota**  
 Para los clientes que estén en `ap-southeast-1` y`ap-southeast-5`, los campos de solicitud y respuesta admitidos pueden diferir. Consulta la [referencia de la GetTile API](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetTile.html) para obtener más información. 

La solicitud requiere los siguientes parámetros: `Tileset`, `X`, `Y` y `Z` para identificar el mosaico específico que se va a buscar. El parámetro `Key` se puede incluir opcionalmente para la autorización.
+ **`Tileset`**: especifica el conjunto de mosaicos deseado para obtener el mosaico.
+ **`X`**: el valor del eje X del mosaico del mapa.
+ **`Y`**: el valor del eje Y del mosaico del mapa.
+ **`Z`**: el valor de zoom, que define el nivel de zoom del mosaico.
+ **`Key`**: se incluye opcionalmente con fines de autorización.

## Explicación de la respuesta
<a name="tiles-understand-the-response"></a>

La respuesta incluye encabezados como `CacheControl`, `ContentType` y `ETag`, y contiene los datos del mosaico del mapa como un blob binario en formato MVT. Estos encabezados administran el control de la memoria caché, proporcionan detalles del formato del contenido y controlan las versiones de los mosaicos.
+ **`CacheControl`**: controla el almacenamiento en caché del cliente para el mosaico del mapa.
+ **`ContentType`**: especifica el formato de los datos del mosaico.
+ **`ETag`**: proporciona un identificador de versión para el mosaico.
+ **`Blob`**: contiene los datos del mosaico vectorial en formato MVT.

# Estilos de mapa dinámicos
<a name="styling-dynamic-maps"></a>

Amazon Location Service ofrece dos opciones de estilos de los mapas dinámicos: uso de estilos de mapas de AWS prediseñados o personalización del estilo del mapa mediante descriptores de estilo.

Para obtener más información, consulta [GetStyleDescriptor](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetStyleDescriptor.html)la *referencia de la API de Amazon Location Service*.

## Usa estilos de AWS mapa prediseñados
<a name="using-aws-map-styles"></a>

AWS los estilos de mapa son estilos predefinidos que cumplen con los estándares del sector para ofrecer una estética sofisticada y profesional. Al aprovechar estos estilos en Amazon Location Service, puede reducir time-to-market y eliminar la necesidad de cartógrafos dedicados a crear estilos de mapas desde cero.

Para obtener más información, consulte [AWS estilos y características del mapa](map-styles.md).

Para obtener más información sobre los estilos de mapa predefinidos, consulte:
+ [Estilo de mapa estándar](map-styles.md#standard-map)
+ [Estilo de mapa monocromo](map-styles.md#monochrome-map)
+ [Estilo de mapa híbrido](map-styles.md#hybrid-map)
+ [Estilo de mapa satelital](map-styles.md#satellite-map)

## Añada características de estilo cartográfico a su mapa AWS
<a name="using-aws-map-features"></a>

AWS Las funciones de estilo de mapa le permiten personalizar sus mapas con funciones de estilo avanzadas, como el terreno, la densidad de los contornos, el tráfico y las superposiciones de camiones o vehículos de transporte público. Estas nuevas opciones de personalización le permiten adaptar la apariencia de los mapas a casos de uso específicos.

Para obtener más información, consulte las [características del mapa](https://docs.aws.amazon.com/location/latest/developerguide/maps-concepts.html).

## Ventajas de usar estilos de AWS mapa
<a name="benefits-aws-map-styles"></a>
+ **Eficiencia de tiempo y recursos**: los estilos de AWS mapa le permiten evitar el proceso lento y intensivo de recursos de diseñar estilos de mapa desde cero. Esto le permite centrarse en las funcionalidades principales y, al mismo tiempo, proporcionar mapas visualmente atractivos.
+ **Estética profesional y coherente**: los cartógrafos expertos han diseñado meticulosamente los estilos de AWS mapa siguiendo las mejores prácticas del sector. Todos los detalles, desde las paletas de colores hasta la ubicación de las etiquetas, se han optimizado para garantizar una mayor claridad y legibilidad.
+ **Integración perfecta**: los estilos de AWS mapa se integran a la perfección con el lenguaje de diseño de la aplicación, lo que proporciona a los usuarios finales una experiencia cartográfica pulida y coherente.

## Comience con los estilos de AWS mapas
<a name="getting-started-aws-map-styles"></a>
+ **Consulta la oferta de estilos de AWS mapas**: en la consola de Amazon Location Service, dirígete a la sección de **mapas** para explorar los estilos disponibles.
+ **Elija el estilo que mejor se adapte a sus necesidades**: seleccione el estilo que mejor se adapte a sus requisitos de diseño y experiencia de usuario de la aplicación.
+ **Integre el estilo**: siga la documentación proporcionada para integrar el estilo elegido en su aplicación mediante Amazon Location Service APIs o SDKs.

Obtener más información sobre [Cómo mostrar un mapa](how-to-display-a-map.md).

## Casos de uso
<a name="use-cases"></a>
+ Personalización de estilos de mapas en función de combinaciones de colores como `Light` o`Dark`.
+ Muestra de mapas de acuerdo con puntos de vista políticos o límites geográficos específicos.
+ Optimización de los estilos de los mapas para distintos casos de uso, como la logística, las actividades al aire libre, la navegación con datos de tráfico y las rutas específicas del transporte.

## Explicación de la solicitud
<a name="dynamic-understand-the-request"></a>

**nota**  
 Para los clientes que estén en `ap-southeast-1` y`ap-southeast-5`, los campos de solicitud y respuesta admitidos pueden diferir. Consulta la [referencia de la GetStyleDescriptor API](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetStyleDescriptor.html) para obtener más información. 

La solicitud admite parámetros como `ColorScheme`, `Key` y `PoliticalView` para definir el estilo y la presentación del mapa. El parámetro `Style` es necesario para especificar el estilo de mapa deseado.
+ **`ColorScheme`**: Establece la paleta de colores del mapa, como `Light` o`Dark`.
+ **`PoliticalView`**: especifica la vista política para la visualización del mapa.
+ **`Style`**: Define el estilo del mapa, como `Standard` o`Monochrome`.
+ **`Terrain`**: muestra las características topográficas mediante el sombreado de elevación y el resaltado geográfico.
+ **`ContourDensity`**: muestra la forma y la pendiente del terreno mediante curvas de nivel de elevación con distintos niveles de densidad.
+ **`Traffic`**: superpone las condiciones del tráfico en tiempo real en el mapa.
+ **`TravelMode`**: muestra información de transporte, incluidos los sistemas de transporte público o las rutas de camiones con restricciones de tráfico.

## Explicación de la respuesta
<a name="dynamic-understand-the-response"></a>

La respuesta proporciona encabezados como `CacheControl`, `ContentType` y `ETag`, y contiene el descriptor de estilo como un blob JSON. Los encabezados proporcionan información de almacenamiento en caché, detalles del formato del contenido y control de versiones para los cambios de estilo.
+ **`CacheControl`**: controla las configuraciones de almacenamiento en caché del descriptor de estilo.
+ **`ContentType`**: indica el formato de respuesta como JSON.
+ **`ETag`**: proporciona un identificador de versión para el descriptor de estilo.
+ **`Blob`**: contiene el cuerpo del descriptor de estilo en formato JSON.

## Personalización de los descriptores de estilo
<a name="customizing-style-descriptor"></a>

Para personalizar los estilos de los mapas, debe comprender la estructura del descriptor de estilo, que suele ser un objeto JSON que define la representación visual de los elementos del mapa. El descriptor de estilo consta de varias capas, cada una de las cuales controla el estilo de un tipo específico de elemento del mapa, como carreteras, parques, edificios o etiquetas.
+ **Utilice un descriptor de estilo predefinido como base**: puede empezar con un descriptor de estilo predefinido o crear uno desde cero con editores de estilos de mapas como [Maputnik](https://maputnik.github.io/).
+ **Comprenda la estructura**: el descriptor de estilo es un objeto JSON jerárquico que contiene capas, cada una de las cuales representa un elemento de mapa diferente. Cada capa tiene propiedades que controlan la apariencia visual de ese elemento, como el color, la opacidad y el ancho de la línea.
+ **Modifique los estilos de las capas**: según el editor de estilos de mapa que utilice, puede cambiar las capas existentes o agregar otras nuevas para personalizar el estilo. Por ejemplo, puede ajustar el color de las carreteras, modificar el tamaño de fuente de las etiquetas o agregar iconos personalizados para ubicaciones específicas.
+ **Defina estilos para diferentes niveles de zoom**: los editores de estilos de mapas le permiten definir diferentes estilos para diferentes niveles de zoom, lo que resulta útil para controlar el nivel de detalle y la visibilidad en función de las interacciones de zoom del usuario.
+ **Pruebe e itere**: después de modificar o crear el descriptor de estilo, pruebe el estilo personalizado en un mapa para asegurarse de que se muestra según lo previsto. Itérelo y ajústelo hasta lograr el estilo visual deseado.

# Iconografía de estilo con sprites
<a name="styling-iconography-with-sprites"></a>

Un sprite es un archivo de imagen de gráfico de red portátil (PNG) que contiene imágenes rasterizadas pequeñas, como iconos, marcadores y otros elementos renderizados en un mapa. Los sprites se pueden personalizar en función de parámetros como el estilo, la combinación de colores y la variante. Amazon Location Service proporciona una hoja de sprites a través de la API de `GetSprites`. También puede usar iconos personalizados cargando su propio conjunto de iconos (consulte [Cómo agregar un icono en el mapa](how-to-add-icon-on-map.md)) o personalizando el descriptor de estilo para cargar los sprites personalizados.

Para obtener más información, consulta [GetSprites](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetSprites.html)la *referencia de la API de Amazon Location Service*.

## Casos de uso
<a name="use-cases"></a>
+ Representa elementos de mapas personalizados mediante hojas de sprites para estilos y combinaciones de colores específicos.
+ Se obtienen sprites para varios estilos de mapas, como estándar, monocromo o híbrido.
+ Personalización de la iconografía del mapa mediante la modificación de los sprites.

## Explicación de la solicitud
<a name="styling-understand-the-request"></a>

La solicitud requiere parámetros de URI como `ColorScheme`, `FileName` y `Style`. Estos parámetros permiten personalizar la hoja de sprites en función de la combinación de colores del mapa, el estilo y el archivo de sprites específico requerido.
+ **`ColorScheme`**: define la combinación de colores de los sprites, como “claro” u “oscuro”.
+ **`FileName`**: el nombre del archivo de sprites que se va a recuperar, que puede ser un archivo PNG o JSON.
+ **`Style`**: especifica el estilo del mapa, como “estándar” o “monocromo”.

## Explicación de la respuesta
<a name="styling-understand-the-response"></a>

La respuesta contiene encabezados como `CacheControl`, `ContentType` y `ETag`, y devuelve los datos del sprite como un blob binario o un archivo JSON. Estos encabezados proporcionan información de almacenamiento en caché, el tipo de contenido de la respuesta y el control de versiones de los datos del sprite.
+ **`CacheControl`**: configuraciones de almacenamiento en caché para el archivo de sprites.
+ **`ContentType`**: el formato de la respuesta, que indica si contiene datos PNG o JSON.
+ **`ETag`**: identificador de la versión del sprite, que se utiliza para la validación de la caché.
+ **`Blob`**: contiene el cuerpo de la hoja de sprites o del archivo de desplazamiento JSON.

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

![\[Collection of colorful icons representing various services and concepts in cloud computing.\]](http://docs.aws.amazon.com/es_es/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/es_es/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/es_es/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/es_es/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/es_es/location/latest/developerguide/images/styling-hybrid.png)


------

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

Los glifos son archivos binarios que contienen caracteres Unicode codificados, que usa un renderizador de mapas para mostrar etiquetas. Amazon Location Service permite recuperar glifos específicos de una pila de fuentes para utilizarlos en la representación de mapas a través de la API de `GetGlyphs`.

Para obtener más información, consulte [GetGlyphs](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetGlyphs.html) en la *Referencia de la API de Amazon Location Service*.

## Casos de uso
<a name="glyphs-use-cases"></a>
+ Renderización de texto personalizado en mapas con fuentes y estilos específicos.
+ Obtención de glifos para la representación localizada del texto de un mapa.
+ Uso de rangos de caracteres Unicode para mostrar etiquetas y símbolos de mapas.
+ Optimización de la representación de las fuentes del mapa en función de las pilas de fuentes y los rangos de glifos.

## Fuentes compatibles en la API
<a name="supported-fonts"></a>

Las siguientes fuentes se admiten en la 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
+ Apertura de Sans Regular, Arial Unicode MS Regular

## Explicación de la solicitud
<a name="glyphs-understand-the-request"></a>

La solicitud acepta dos parámetros URI obligatorios, `FontStack` y `FontUnicodeRange` que determinan la fuente y el rango Unicode de los glifos. El parámetro `FontStack` especifica qué fuente usar, mientras que `FontUnicodeRange` define el rango de caracteres que se va a buscar. La solicitud no incluye un cuerpo y se centra solo en los parámetros del URI para su funcionalidad.
+ **`FontStack`**: especifica el nombre de la pila de fuentes que se va a recuperar. Ejemplo: “Amazon Ember Bold, Noto Sans Bold”.
+ **`FontUnicodeRange`**: un rango de caracteres Unicode para descargar glifos. El rango debe ser múltiplo de 256. Ejemplo: “0-255”.

## Explicación de la respuesta
<a name="glyphs-understand-the-response"></a>

La respuesta devuelve los datos de los glifos en forma de blob binario, junto con los encabezados HTTP para el almacenamiento en caché, el tipo de contenido, la ETag y la información sobre precios. Los datos de los glifos se devuelven como un blob binario para representarlos en los mapas y los encabezados proporcionan metadatos adicionales para gestionar la respuesta de forma eficaz.
+ **`CacheControl`**: indica al cliente las configuraciones de almacenamiento en caché de la respuesta.
+ **`ContentType`**: especifica el formato del cuerpo de la respuesta e indica el tipo de datos de glifos devueltos.
+ **`ETag`**: identificador de la versión del glifo, que se utiliza para la validación de la caché.
+ **`PricingBucket`**: indica el nivel de precios asociado a la solicitud.
+ **`Blob`**: los datos del glifo se devuelven como un blob binario y se utilizan para representar el texto del mapa.

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

**nota**  
Los mapas estáticos solo admiten los estilos Estándar y Satélite. Para obtener más información, consulte [AWS estilos y características del mapa](map-styles.md).

Los mapas estáticos ofrecen una representación prerenderizada de datos geográficos con la opción de superponer marcadores (o pines), rutas y áreas poligonales, según sea necesario para la aplicación. El mapa estático le permite generar imágenes de mapas estáticas (no interactivas) basadas en parámetros personalizables y entradas de datos. Al personalizar las superposiciones, las formas o la aplicación de estilos personalizados, el mapa estático le permite crear visualizaciones de mapas que satisfagan necesidades específicas, lo que mejora la experiencia del usuario final y comunica la información geográfica de forma eficaz. El servidor personaliza las imágenes de mapas solicitadas y las entrega al cliente como archivos JPEG. Puede solicitar y generar imágenes de mapas mediante programación que se adapten a sus requisitos específicos.

La *GetStaticMap API* genera una imagen estática de un mapa en función de parámetros específicos, como las coordenadas centrales, los cuadros delimitadores o las superposiciones. La API permite personalizar las características y el estilo del mapa, lo que permite su uso en aplicaciones web o móviles sin la funcionalidad de mapas interactivos.

Para obtener más información, consulta [GetStaticMap](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetStaticMap.html)la *referencia de la API de Amazon Location Service*.

Para ver ejemplos de solicitudes, respuestas, cURL y comandos de la CLI para esta API, consulte [Cómo usar mapas estáticos](https://docs.aws.amazon.com/location/latest/developerguide/static-maps-how-to.html).

## Casos de uso comunes
<a name="static-maps-use-cases"></a>
+ **Mapas incrustados en aplicaciones web o móviles:** las imágenes de mapas estáticos se pueden incrustar de manera eficiente en sitios web o aplicaciones móviles para proporcionar visualizaciones de ubicaciones, rutas o puntos de interés con mapas no interactivos, lo que reduce los tiempos de carga y el uso de datos. Algunos ejemplos son los motores de búsqueda (como Yahoo) que muestran imágenes de mapas con los resultados de búsqueda correspondientes POIs.
+ **Detalles de ubicación en los correos electrónicos:** las imágenes de mapas estáticos se pueden utilizar para compartir información de ubicación por correo electrónico y ayudar a los usuarios finales a entender el contexto del correo electrónico. Por ejemplo, las aplicaciones de entrega de comida a domicilio o de transporte compartido utilizan imágenes de mapas estáticas para mostrar los lugares de recogida o devolución, las rutas o las áreas circundantes en los correos electrónicos posteriores al viaje o a la entrega que contienen la factura y el resumen.
+ **Materiales de marketing y documentos impresos:** se pueden incorporar imágenes de mapas estáticos personalizados a folletos, volantes u otros materiales impresos, lo que proporciona representaciones visualmente atractivas de la información geográfica relevante para el contenido.

## Explicación de la solicitud
<a name="static-maps-understanding-request"></a>

La solicitud incluye parámetros de URI opcionales, como `BoundedPositions`, `BoundingBox` y `Center`, entre otros, para definir el área visible y las superposiciones del mapa. Los parámetros `Height` y `Width` son necesarios para definir el tamaño de la imagen. Para obtener más información, consulte [Personalización de mapas estáticos](customizing-static-maps.md) y [Superposición en el mapa estático](overlaying-static-map.md).
+ `BoundedPositions`: coordenadas que se van a incluir en la imagen.
+ `BoundingBox`: coordenadas que definen los bordes suroeste y noreste del mapa.
+ `Height`: especifica la altura de la imagen.
+ `Width`: especifica la anchura de la imagen.
+ `GeoJsonOverlay`: un objeto GeoJSON válido para agregar superposiciones.

## Explicación de la respuesta
<a name="static-maps-understanding-response"></a>

La respuesta contiene encabezados como`CacheControl`, `ContentType` y `ETag`, y devuelve el mapa estático como un blob binario en formato JPEG o PNG. Los encabezados proporcionan metadatos como el control de la caché, el tipo de contenido y la versión de las imágenes estáticas.
+ `CacheControl`: especifica las configuraciones de almacenamiento en caché para la imagen del mapa.
+ `ContentType`: indica el formato de la imagen del mapa (JPEG o PNG).
+ `ETag`: un identificador de la versión de la imagen del mapa estático.
+ `Blob`: representa la imagen del mapa en formato PNG o JPEG.

# Personalización de mapas estáticos
<a name="customizing-static-maps"></a>

**nota**  
Los mapas estáticos solo admiten el estilo satélite. Para obtener más información, consulte [AWS estilos y características del mapa](map-styles.md).

En esta sección se proporciona información general sobre cómo personalizar mapas estáticos generados mediante Amazon Location Service. Abarca varias características, como el ajuste de la posición, el tamaño, el idioma, la escala, las superposiciones y la atribución del mapa, lo que le permite adaptar el mapa a sus requisitos específicos.

Para obtener más información, consulta [GetStaticMap](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetStaticMap.html)la *referencia de la API de Amazon Location Service*.

## Posición
<a name="customizing-static-maps-position"></a>

La posición le permite definir el centro y los límites del mapa. Puede controlar el enfoque del mapa configurando las coordenadas del centro, un cuadro delimitador o utilizando un nivel de zoom para determinar la cantidad de área que se mostrará. Para saber cómo funciona, consulte [Cómo obtener un mapa estático de una posición específica](get-static-map-specific-position.md).
+ `Center`: define el punto central del mapa mediante las coordenadas de longitud y latitud.
+ `Radius`: especifica el radio (distancia desde el centro) que se mostrará en el mapa estático.
+ `Bounding Box`: define un área rectangular del mapa, que se establece proporcionando las coordenadas de las esquinas superior izquierda e inferior derecha.
+ `Zoom`: controla el nivel de zoom del mapa. Los niveles de zoom más altos muestran más detalles en un área más pequeña, mientras que los niveles de zoom más bajos muestran menos detalles en un área más grande.

## Dimensión y calidad
<a name="customizing-static-maps-dimension-quality"></a>

Puede personalizar el tamaño y la calidad visual del mapa estático definiendo sus dimensiones (altura y anchura) y agregando relleno para una mejor presentación de los marcadores y otros elementos. Para saber cómo funciona, consulte [Cómo obtener un mapa estático de una dimensión específica](get-static-map-specific-dimension.md).
+ `Height and Width`: especifica el tamaño de la imagen del mapa estático definiendo su altura y anchura en píxeles.
+ `Padding`: agrega espacio adicional alrededor de los bordes del mapa, lo que permite una mejor visualización al colocar marcadores, líneas o formas.

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

La escala permite controlar la escala del mapa y define las unidades (kilómetros, millas) para medir las distancias. Esto resulta útil para representar con precisión las relaciones entre el tamaño y la distancia del mapa. Para saber cómo funciona, consulte [Cómo agregar una escala a un mapa estático](add-scale-static-map.md).
+ `Scale Unit`: define las unidades de la barra de escala del mapa (por ejemplo, kilómetros o millas), lo que permite a los usuarios medir con precisión las distancias en el mapa.

## Superposición
<a name="customizing-static-maps-overlay"></a>

Puede agregar marcadores, líneas para mostrar rutas, polígonos para mostrar áreas, etc. Para saber cómo funciona, consulte [Cómo agregar un marcador a un mapa estático](add-marker-static-map.md), [Cómo agregar una línea a un mapa estático](how-to-add-line-static.md) o [Cómo agregar una ruta a un mapa estático](how-to-add-route.md).

# Superposición en el mapa estático
<a name="overlaying-static-map"></a>

En esta sección se explica cómo superponer información adicional en mapas estáticos mediante Amazon Location Service. Puede personalizar los mapas estáticos agregando varias características geográficas, como puntos, líneas y polígonos, para mejorar la representación visual del mapa. Amazon Location Service admite varios formatos, incluidos GeoJSON y un formato de superposición compacto, para ofrecer formas flexibles y eficaces de agregar superposiciones.

Para obtener más información, consulta [GetStaticMap](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetStaticMap.html)la *referencia de la API de Amazon Location Service*.

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

GeoJSON es un formato versátil que permite superponer datos personalizados en mapas estáticos. Al definir características geográficas como puntos, líneas y polígonos, puede mejorar la representación visual de los mapas, lo que proporciona un contexto valioso para los usuarios. GeoJSON es ampliamente compatible y ofrece flexibilidad a la hora de diseñar y personalizar las superposiciones de mapas, lo que lo convierte en un formato ideal para mostrar regiones, trazar rutas o mostrar relaciones espaciales.

Con Amazon Location Service, puede aprovechar GeoJSON para agregar características dinámicas basadas en la ubicación directamente a los mapas estáticos. Esto le permite crear superposiciones altamente personalizables que se pueden adaptar a las necesidades específicas de la empresa. GeoJSON admite varios tipos de geometría, incluidos `Point`, `LineString`, `Polygon` y `MultiPolygon`, lo que le permite mostrar una amplia gama de características, desde marcadores y rutas hasta representaciones de áreas complejas.

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

Al diseñar las características de GeoJSON, tiene flexibilidad para definir los colores. Puede especificar los colores utilizando diferentes formatos, como valores hexadecimales (como \$1ff0000 para el rojo) o con una transparencia alfa (como \$1ff000080 para el rojo semitransparente). Esto garantiza que las superposiciones sean visualmente coherentes con el estilo del mapa. Si no se especifica ningún color, se aplicará el color predeterminado para el estilo de mapa seleccionado.

## Orden de dibujo
<a name="overlaying-static-map-drawing-order"></a>

Las superposiciones personalizadas se dibujan en un orden específico para mantener la claridad y evitar el desorden visual. En Amazon Location Service, las características superpuestas, como polígonos, líneas y puntos, aparecerán sobre el mapa base, pero debajo de las etiquetas del mapa. El orden de dibujo prioriza primero los polígonos, seguidos de las líneas y, a continuación, de los puntos o marcadores.

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

Para propiedades como `width` y `outline-width`, puede usar diferentes unidades de medida para especificar el tamaño, incluidos píxeles (px), metros (m), kilómetros (km), millas (millas) y porcentajes (%). La unidad de porcentaje ajusta la propiedad en relación con un valor predeterminado, lo que proporciona más flexibilidad a la hora de diseñar las superposiciones.

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

Amazon Location Service admite varios tipos de geometría de GeoJSON, como `Point`, `LineString`, `Polygon` y `MultiPolygon`. Cada tipo de geometría se puede diseñar y ajustar mediante el objeto de propiedades de GeoJSON, lo que permite una amplia personalización de los marcadores, las rutas y las áreas del mapa.

## Con superposición compacta
<a name="overlaying-static-map-compact-overlay"></a>

**nota**  
La superposición compacta admite los siguientes tipos de geometría: punto, línea y polígono. No admite `multiPoint`, `multiLine` ni `multiPolgyon`.

La opción de superposición compacta le permite mostrar de manera eficiente varias geometrías en un mapa estático mediante un único parámetro de consulta. Este enfoque simplificado simplifica el formato de la solicitud y reduce su tamaño, lo que facilita la transmisión de datos superpuestos. Los clientes pueden ingresar varios tipos de geometría y sus correspondientes propiedades de estilo en un parámetro de consulta, y Amazon Location Service se encargará del trabajo pesado analizando y renderizando la superposición según lo especificado.

Al utilizar el formato de superposición compacta, tenga en cuenta que hay límites en el tamaño de la URL de la solicitud. Aunque Amazon Location Service optimiza la consulta, asegúrese de que la solicitud se mantenga dentro de límites razonables, especialmente cuando se trate de varias geometrías y sus propiedades asociadas.

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

El formato de superposición compacto se estructura de la siguiente manera: `geometry_type:geometry;property_1=value_1;property_2=value_2|geometry_type:geometry;property_1=value_1...`

Cada tipo de geometría se define junto con sus propiedades de estilo. Las geometrías múltiples se separan mediante un operador de canalización (\$1) y las propiedades de cada geometría se separan mediante punto y coma.

## Tipos de geometría compatibles
<a name="overlaying-static-map-supported-geometry-types"></a>

Amazon Location Service admite varios tipos de geometría, incluidos `Point`, `MultiPoint`, `LineString`, `Polygon` y `MultiPolygon`. Estos tipos de geometría se pueden combinar y diseñar dentro del mismo parámetro de consulta mediante el formato de superposición compacta.

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

Cada geometría se puede personalizar mediante varias propiedades de estilo, como el color, el color del contorno, el tamaño, etc. Estas propiedades le permiten controlar el aspecto de cada geometría en el mapa, lo que garantiza que la superposición se ajuste a los requisitos de la empresa.

# Procedimiento
<a name="maps-how-to"></a>

Esta sección contiene una variedad de guías prácticas y ejemplos sobre cómo usar las API de mapas.

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

# Cómo usar mapas dinámicos
<a name="dynamic-maps-how-to"></a>

Estos temas de aprendizaje ofrecen un recorrido completo que le enseña cómo mejorar las aplicaciones de mapas con Amazon Location Service. Desde la visualización de mapas interactivos hasta la agregación de marcadores, líneas y polígonos, estos tutoriales muestran cómo utilizar características esenciales, como configurar los controles de los mapas, agregar iconos personalizados y gestionar datos en tiempo real. Además, los temas también abordan aspectos de localización e internacionalización, como establecer los idiomas preferidos, ajustar las opiniones políticas y garantizar el cumplimiento de las leyes regionales mediante la personalización del contenido del mapa en función de la ubicación o la perspectiva del usuario.

Cada tutorial está diseñado para ser accesible, con step-by-step instrucciones para implementar estas funciones en aplicaciones web que utilizan MapLibre GL JS. Si el objetivo es crear una experiencia de mapa dinámica con iconos y ventanas emergentes personalizados o adaptar las vistas de los mapas a perspectivas políticas e idiomas específicos, estos ejemplos le ayudarán a alcanzar sus objetivos y, al mismo tiempo, garantizarán una experiencia de mapas rica y localizada para los usuarios de diferentes regiones. Estos tutoriales garantizan que pueda aprovechar al máximo las capacidades de Amazon Location Service, desde las funciones de mapas básicas hasta las complejas necesidades geopolíticas y de localización.

**Topics**
+ [Cómo mostrar un mapa](how-to-display-a-map.md)
+ [Cómo agregar el control en el mapa](how-to-add-control-on-map.md)
+ [Cómo agregar un marcador en el mapa](how-to-add-marker-on-map.md)
+ [Cómo agregar un icono en el mapa](how-to-add-icon-on-map.md)
+ [Cómo agregar una línea en el mapa](how-to-add-line-on-map.md)
+ [Cómo agregar un polígono en el mapa](how-to-add-polygon-on-map.md)
+ [Cómo agregar una ventana emergente a un mapa](how-to-add-popup-to-map.md)
+ [Cómo establecer un idioma preferido para un mapa](how-to-set-preferred-language-map.md)
+ [Cómo configurar la vista política de un mapa](how-to-set-political-view-map.md)
+ [Cómo filtrar POI en el mapa](how-to-filter-poi-map.md)
+ [Cómo crear mapas topográficos](how-to-create-topographic-maps.md)
+ [Cómo mostrar el tráfico en tiempo real en un mapa](how-to-set-real-time-traffic-map.md)
+ [Cómo crear un mapa logístico](how-to-create-logistic-map.md)
+ [Cómo mostrar los detalles del transporte público en un mapa](how-to-show-transit-details-map.md)
+ [Cómo crear un mapa 3D](how-to-create-a-3d-map.md)

# Cómo mostrar un mapa
<a name="how-to-display-a-map"></a>

Amazon Location Service le permite mostrar mapas interactivos y no interactivos mediante nuestros estilos de mapas. Consulte [AWS estilos y características del mapa](map-styles.md) para obtener más información.

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

En este ejemplo, mostrará un mapa interactivo que permite a los usuarios acercar, desplazar, pellizcar e inclinar.

### Ejemplo de código de mapa interactivo
<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%; }
```

------

## Restricción de la panorámica del mapa más allá de un área
<a name="restrict-map-panning"></a>

En este ejemplo, restringirá la panorámica del mapa más allá de un límite definido.

### Ejemplo de código de restricción de panorámica del 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 no interactivo
<a name="non-interactive-map"></a>

En este ejemplo, mostrará un mapa no interactivo al desactivar la interacción del usuario.

### Ejemplo de código de mapa no interactivo
<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%; }
```

------

# Cómo agregar el control en el mapa
<a name="how-to-add-control-on-map"></a>

Amazon Location Service le permite agregar varios controles al mapa, incluidos los controles de navegación, geolocalización, pantalla completa, escala y atribución.
+ **Control de navegación**: contiene botones de zoom y una brújula.
+ **Control de geolocalización**: proporciona un botón que utiliza la API de geolocalización del navegador para localizar al usuario en el mapa.
+ **Control de pantalla completa**: contiene un botón para activar y desactivar el mapa en el modo de pantalla completa.
+ **Control de escala**: muestra la relación entre una distancia en el mapa y la distancia correspondiente en el suelo.
+ **Control de atribución**: presenta la información de atribución del mapa. De forma predeterminada, el control de atribución está expandido (independientemente del ancho del mapa).

Puede agregar los controles a cualquier esquina del mapa: arriba a la izquierda, abajo a la izquierda, abajo a la derecha o arriba a la derecha.

## Agregación de controles de mapa
<a name="add-map-controls"></a>

En el siguiente ejemplo, agregará los controles de mapa mostrados anteriormente.

### Ejemplo de código de control de 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%; }
```

------

## Consejos de desarrolladores
<a name="developer-tips"></a>

### Opciones de control de navegación
<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)
});
```

### Opciones de control de geolocalización
<a name="geolocatecontrol-options"></a>

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

### Opciones de control de atribución
<a name="attributioncontrol-options"></a>

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

### Opciones de control 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)
});
```

### Opciones de control de pantalla completa
<a name="fullscreencontrol-options"></a>

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

# Cómo agregar un marcador en el mapa
<a name="how-to-add-marker-on-map"></a>

Con Amazon Location, puede agregar marcadores fijos y arrastrables, y también puede personalizar el color de los marcadores en función de los datos y preferencias.

## Agregación de un marcador fijo
<a name="add-marker"></a>

### Ejemplo de código de marcador fijo
<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%; }
```

------

## Agregación de un marcador arrastrable
<a name="add-draggable-marker"></a>

### Ejemplo de código de marcador arrastrable
<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%; }
```

------

## Cambio del color del marcador
<a name="change-marker-color"></a>

### Ejemplo de código de marcador de color
<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%; }
```

------

## Agregación de varios marcadores
<a name="add-multiple-markers"></a>

### Ejemplo de código de varios 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%; }
```

------

# Cómo agregar un icono en el mapa
<a name="how-to-add-icon-on-map"></a>

Amazon Location Service le permite agregar iconos al mapa, preferiblemente en formato PNG. Puede agregar iconos a geolocalizaciones específicas y cambiarles el estilo según se necesite.

## Agregación de un icono estático
<a name="add-static-icon"></a>

En este ejemplo, utilizará una URL externa para agregar un icono al mapa mediante una capa de símbolos.

### Ejemplo de código de icono 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%; }
```

------

# Cómo agregar una línea en el mapa
<a name="how-to-add-line-on-map"></a>

Con Amazon Location Service, puede agregar trazados del GPS pregrabados como cadenas de líneas y trazados del GPS en tiempo real a mapas dinámicos.

## Agregación de una línea pregrabada
<a name="add-pre-recorded-line"></a>

En este ejemplo, agregará un trazado del GPS pregrabado como GeoJSON (main.js) al mapa dinámico. Para ello, debe agregar al mapa un origen (como GeoJSON) y una capa con el estilo de línea que elija. 

### Ejemplo de código de línea pregrabado
<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."
            }
        }
    ]
};
```

------

## Agregación de una línea en tiempo real
<a name="add-real-time-line"></a>

En este ejemplo, simulará agregar nuevas coordenadas del GPS una por una para crear un trazado del GPS en tiempo real. Esto es útil para realizar un seguimiento de actualizaciones de datos en tiempo real.

### Ejemplo de código de línea en tiempo 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."
            }
        }
    ]
};
```

------

## Consejos de desarrolladores
<a name="developer-tips"></a>

**Límites adecuados:** puede ajustar la línea a los límites del mapa calculando los límites de las coordenadas de la línea:

```
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 });
```

# Cómo agregar un polígono en el mapa
<a name="how-to-add-polygon-on-map"></a>

Amazon Location Service le permite agregar polígonos al mapa. Puede diseñar el polígono en función de las necesidades de la empresa, incluida la agregación de estilos de relleno y borde.

## Agregación de un polígono
<a name="add-polygon"></a>

En este ejemplo, agregará un polígono al mapa y le dará un estilo con un color de relleno y un borde.

### Ejemplo 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]
                    ]
                ]
            }
        }
    ]
};
```

------

# Cómo agregar una ventana emergente a un mapa
<a name="how-to-add-popup-to-map"></a>

Amazon Location Service le permite agregar ventas emergentes al mapa. Puede agregar ventanas emergentes sencillas, ventanas emergentes activadas por un clic en los marcadores, ventanas emergentes activadas al pasar el ratón y ventanas emergentes para varios marcadores. 

## Agregación de la primera ventana emergente
<a name="add-first-popup"></a>

En este ejemplo, agregará su primera ventana emergente.

### Primer ejemplo de código de ventana emergente
<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%; }
```

------

## Muestra de ventana emergente al hacer clic en un marcador
<a name="show-popup-on-click"></a>

En este ejemplo, adjuntará una ventana emergente a un marcador y la mostrará al hacer clic.

### Ejemplo de ventana emergente al hacer clic en el 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%; }
```

------

## Muestra de ventana emergente al pasar el ratón sobre un marcador
<a name="show-popup-on-hover"></a>

En este ejemplo, adjuntará una ventana emergente a un marcador y la mostrará al pasar el ratón.

### Ejemplo de ventana emergente al pasar el ratón sobre el marcador
<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%; }
```

------

## Muestra de ventana emergente al hacer clic en varios marcadores
<a name="popup-on-multiple-markers"></a>

En este ejemplo, adjuntará una ventana emergente a varios marcadores y la mostrará al hacer clic.

### Ejemplo de ventana emergente al hacer clic en varios 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%; }
```

------

## Muestra de ventana emergente al pasar el ratón sobre varios marcadores
<a name="popup-on-hover-multiple-markers"></a>

En este ejemplo, adjuntará una ventana emergente a varios marcadores y la mostrará al pasar el ratón.

### Ejemplo de ventana emergente al pasar el ratón sobre varios 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%; }
```

------

# Cómo establecer un idioma preferido para un mapa
<a name="how-to-set-preferred-language-map"></a>

Amazon Location Service le permite establecer el idioma preferido del cliente actualizando el descriptor de estilo de un idioma específico. Puede establecer un idioma preferido y mostrar el contenido en ese idioma cuando esté incrustado. De lo contrario, volverá a otro idioma.

**nota**  
Para obtener más información, consulte [Localización e internacionalización](maps-localization-internationalization.md).

## Establecimiento del idioma preferido en japonés y muestra del mapa de Japón
<a name="set-preferred-language-japanese"></a>

En este ejemplo, configurará el estilo de actualización para mostrar las etiquetas de los mapas en japonés (ja).

### Ejemplo de establecimiento del idioma preferido en 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']
    ];
};
```

------

## Establecimiento del idioma preferido en función del idioma del navegador del usuario final
<a name="set-preferred-language-browser"></a>

En este ejemplo, configurará el estilo de actualización para mostrar las etiquetas de los mapas en el idioma del dispositivo del usuario. 

### Establecimiento del idioma preferido en función del ejemplo de idioma del 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']
    ];
};
```

------

# Cómo configurar la vista política de un mapa
<a name="how-to-set-political-view-map"></a>

Amazon Location Service le permite establecer una visión política para garantizar que la solicitud cumpla con las leyes locales. Puede establecer una visión política y comparar mapas desde diferentes perspectivas políticas.

**nota**  
Para obtener más información, consulte [Localización e internacionalización](maps-localization-internationalization.md).

## Establecimiento de una visión política y comparación con una perspectiva internacional
<a name="set-political-view"></a>

En este ejemplo, creará y comparará mapas desde dos puntos de vista políticos diferentes: una perspectiva internacional y la visión de Turquía sobre Chipre.

### Ejemplo de comparación de puntos de vista políticos
<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%;
}
```

------

# Cómo filtrar POI en el mapa
<a name="how-to-filter-poi-map"></a>

Amazon Location Service le permite seleccionar las categorías de point-of-interest POI correspondientes a su caso de uso. Obtención de más información sobre el estilo de mapa estándar, [numerosos POI](https://docs.aws.amazon.com/location/latest/developerguide/standard-map-style.html#rich-poi) 

## Filtro de POI
<a name="test-collapse-me"></a>

En este ejemplo, se muestra un mapa interactivo que permite a los usuarios filtrar por categorías 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;
}
```

------

# Cómo crear mapas topográficos
<a name="how-to-create-topographic-maps"></a>

Amazon Location Service le permite crear mapas topográficos con las características de densidad de terreno y contorno para visualizar los cambios de elevación y las características geográficas.

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

La función Terreno le permite visualizar la sombra de las colinas, los cambios de elevación y las características geográficas relacionadas.

### Ejemplo 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%; }
```

------

## Muestra la elevación con líneas de densidad de contorno
<a name="show-contour-density"></a>

Amazon Location Service te permite añadir características de densidad de contorno a tu mapa. Esto proporciona una visualización de la inclinación geográfica y los cambios de elevación.

### Ejemplo de densidad 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%; }
```

------

## Muestra las líneas Hillshade y Contour Density
<a name="show-hillshade-contour"></a>

Con Amazon Location Service, puede combinar las funciones Hillshade y Contour Density en su mapa para una visualización completa del terreno. Esto proporciona una mejor percepción de la profundidad y una comprensión completa de las variaciones topográficas y las características del terreno.

### Ejemplo de Hillshade con densidad 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%; }
```

------

# Cómo mostrar el tráfico en tiempo real en un mapa
<a name="how-to-set-real-time-traffic-map"></a>

 Con Amazon Location Service puedes añadir características de tráfico a tu mapa. Esto proporciona datos de tráfico en tiempo real para mostrar las condiciones actuales del tráfico, como la congestión vial actual, las obras y los incidentes, lo que le ayuda a elegir las rutas.

## Crea un mapa con el tráfico en tiempo real
<a name="how-to-set-real-time-traffic"></a>

En este ejemplo se muestra cómo crear un mapa con datos de tráfico en tiempo real.

### Ejemplo de tráfico en tiempo 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;
}
```

------

# Cómo crear un mapa logístico
<a name="how-to-create-logistic-map"></a>

La TravelModes función te permite crear mapas logísticos con Amazon Location Service. TravelModes muestra la información de ruta relevante para la navegación de camiones con las restricciones de tráfico relacionadas. Usa [Transit TravelMode](https://docs.aws.amazon.com/location/latest/developerguide/how-to-show-transit-details-map.html) para mostrar los detalles del transporte público.

## Crea un mapa con Truck TravelMode
<a name="how-to-create-truck-map"></a>

En este ejemplo se muestra cómo crear un mapa con `Truck` `TravelMode` una ruta logística.

### Ejemplo de camión
<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;
}
```

------

# Cómo mostrar los detalles del transporte público en un mapa
<a name="how-to-show-transit-details-map"></a>

Amazon Location Service te permite añadir funciones de transporte público a los mapas. `Transit``TravelMode`Muestra información sobre las rutas del transporte público, como las líneas de tren codificadas por colores. Consulta también cómo configurar la [logística TravelMode](https://docs.aws.amazon.com/location/latest/developerguide/how-to-create-logistic-map.html) para ver opciones adicionales.

## Crea un mapa con detalles de tránsito
<a name="how-to-show-transit-map"></a>

En este ejemplo, se muestra cómo crear un mapa con detalles de transporte público con Transit TravelMode para transporte público.

### Ejemplo de transporte
<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;
}
```

------

# Cómo crear un mapa 3D
<a name="how-to-create-a-3d-map"></a>

Amazon Location Service le permite añadir elementos tridimensionales a los mapas, por ejemplo, `Terrain3D` para mostrar los datos de elevación como una superficie tridimensional o `Buildings3D` para mostrar estructuras urbanas con altura y volumen. 

## Cree un mapa con detalles tridimensionales del terreno
<a name="how-to-show-3d-terrain-map"></a>

En este ejemplo se muestra cómo crear un mapa con `Terrain3D` parámetros. 

### Ejemplo 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;
}
```

------

## Crea un mapa con detalles de edificios tridimensionales
<a name="how-to-show-3d-buildings-map"></a>

En este ejemplo se muestra cómo crear un mapa con `Buildings3D` parámetros. 

### Ejemplo de Buildings3D
<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;
}
```

------

## Activar/desactivar la vista de globo
<a name="how-to-enable-disable-globe-view"></a>

En este ejemplo se muestra cómo activar o desactivar la proyección de vista de globo. De forma predeterminada, la vista de globo está habilitada. 

### Ejemplo de vista de 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;
}
```

------

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

Estos temas de aprendizaje ofrecen una guía paso a paso para personalizar mapas estáticos con superposiciones y elementos visuales, mediante las capacidades cartográficas de Amazon Location Service. Cada guía explica las tareas clave, como ajustar las dimensiones del mapa, elegir entre el zoom o el radio y agregar varios elementos geoespaciales, como marcadores, polígonos, líneas y círculos de proximidad. Estas guías utilizan formatos compactos y GeoJSON para garantizar la flexibilidad en el estilo y la configuración.

Si está optimizando mapas para aplicaciones orientadas al cliente o realizando análisis geoespaciales, estos temas proporcionan instrucciones claras sobre cómo personalizar los mapas estáticos para adaptarlos a requisitos específicos. Si sigue los ejemplos detallados, obtendrá información sobre cómo mejorar las presentaciones de los mapas y a gestionar de forma eficiente los datos geográficos para satisfacer diversas necesidades empresariales.

**Topics**
+ [Cómo obtener un mapa estático de una posición específica](get-static-map-specific-position.md)
+ [Cómo obtener un mapa estático de una dimensión específica](get-static-map-specific-dimension.md)
+ [Cómo decidir entre el radio y el zoom para un mapa estático](choose-radius-vs-zoom.md)
+ [Cómo agregar una escala a un mapa estático](add-scale-static-map.md)
+ [Cómo agregar un marcador a un mapa estático](add-marker-static-map.md)
+ [Cómo agregar una línea a un mapa estático](how-to-add-line-static.md)
+ [Cómo agregar una ruta a un mapa estático](how-to-add-route.md)
+ [Cómo agregar un polígono a un mapa estático](how-to-add-polygon-static.md)
+ [Cómo configurar el idioma de los mapas estáticos](set-language-static-map.md)
+ [Cómo agregar un círculo de proximidad a un mapa estático](how-to-add-proximity-circle.md)

# Cómo obtener un mapa estático de una posición específica
<a name="get-static-map-specific-position"></a>

En este tema, obtendrá información sobre cómo recuperar mapas estáticos de Amazon Location Service en función de parámetros específicos. Obtendrá información sobre cómo generar un mapa estático para una posición central, un cuadro delimitador y un conjunto de posiciones delimitadas. Los ejemplos proporcionados le ayudarán a personalizar la anchura, la altura y el estilo del mapa.

**nota**  
Debe aprobar `map` o `map@2x` al generar un mapa estático.

## Obtención de una imagen de mapa para una posición central
<a name="get-map-center-position"></a>

En este ejemplo, creará una imagen de mapa con una anchura de `1024` y una altura de `1024` con las coordenadas centrales definidas en `-123.1143,49.2763`, dónde `longitude=-123.1143` y `latitude=49.2763`, y un nivel 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/es_es/location/latest/developerguide/images/static-center.png)


------

## Obtención de la imagen del mapa para el cuadro delimitador
<a name="get-map-bounding-box"></a>

En este ejemplo, generará una imagen de mapa del sureste asiático configurando el cuadro delimitador del área. 

El formato de `bbox` es `{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/es_es/location/latest/developerguide/images/static-bounding-box.png)


------

## Obtención de una imagen de mapa para las posiciones delimitadas
<a name="get-map-bounded-positions"></a>

En este ejemplo, generará un mapa que cubre varios lugares imperdibles en París, cada uno especificado por sus coordenadas (longitud, latitud). Las posiciones delimitadas incluyen: la Torre Eiffel, el Museo del Louvre, la Catedral de Notre-Dame, los Campos Elíseos, el Arco del Triunfo, la Basílica del Sagrado Corazón, los Jardines de Luxemburgo, el Museo de Orsay, la Place de la Concordia y la Ópera Garnier. 

El formato de las posiciones delimitadoras es `{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/es_es/location/latest/developerguide/images/static-bounding-position.png)


------

# Cómo obtener un mapa estático de una dimensión específica
<a name="get-static-map-specific-dimension"></a>

En este tema, aprenderá a configurar las dimensiones (altura y anchura) de los mapas estáticos mediante Amazon Location Service. La personalización de las dimensiones de una imagen de mapa le permite equilibrar el rendimiento, la calidad visual y el uso. Los valores máximos para `width` y `height` son 1400 píxeles, mientras que los valores mínimos son 64 píxeles. El tamaño máximo del resultado es 6 MB.

Además, puede usar los parámetros `bbox` y `bounds` junto con `padding` para asegurarse de que las características importantes del mapa cercanas a los bordes estén completamente visibles y no estén cortadas.

## Obtención de una imagen de mapa con una altura y un ancho específicos
<a name="get-map-specific-dimension"></a>

En este ejemplo, creará una imagen de mapa de baja y media resolución de Helsinki, Finlandia.

------
#### [ 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/es_es/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/es_es/location/latest/developerguide/images/static-specific-dimension-mid.png)


------

## Obtención de una imagen de mapa con relleno en todos los lados
<a name="get-map-with-padding"></a>

En este ejemplo, generará un mapa con varios lugares imperdibles en Helsinki (Finlandia), con sus coordenadas (longitud, latitud), con y sin relleno.

------
#### [ 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/es_es/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/es_es/location/latest/developerguide/images/static-specific-dimension-no-padding.png)


------

# Cómo decidir entre el radio y el zoom para un mapa estático
<a name="choose-radius-vs-zoom"></a>

En este tema, aprenderá a elegir entre usar `radius` o `zoom` al generar mapas estáticos con Amazon Location Service. El parámetro `radius` proporciona un control más preciso sobre el área de cobertura, lo que lo hace ideal para aplicaciones orientadas al cliente en las que se conoce el área de cobertura exacta. El parámetro `zoom` es más adecuado para el análisis geoespacial cuando se desea ajustar el nivel de detalle que se muestra.

## Con radio
<a name="with-radius"></a>

En este ejemplo, creará una imagen de mapa de Sri Lanka con el parámetro `radius` con una ubicación 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/es_es/location/latest/developerguide/images/static-radius.png)


------

## Con zoom
<a name="with-zoom"></a>

En este ejemplo, creará una imagen de mapa de Sri Lanka con el parámetro `zoom` con una ubicación 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/es_es/location/latest/developerguide/images/static-zoom.png)


------

# Cómo agregar una escala a un mapa estático
<a name="add-scale-static-map"></a>

En este tema, aprenderá a mostrar una escala en la esquina inferior derecha de un mapa estático generado con Amazon Location Service. La escala puede mostrar una sola unidad, como `Miles` o `Kilometers`, o ambas unidades, como `KilometersMiles` o `MilesKilometers`, con una unidad en la parte superior y la otra en la inferior.

## Agregación de la escala con una sola unidad
<a name="add-scale-single-unit"></a>

En este ejemplo, mostrará un mapa de Helsinki (Finlandia) con la escala establecida en `Kilometers` en la esquina inferior derecha.

------
#### [ 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/es_es/location/latest/developerguide/images/static-scale-single.png)


------

## Agregación de la escala con ambas unidades
<a name="add-scale-both-units"></a>

En este ejemplo, mostrará un mapa de Helsinki (Finlandia) con `Kilometers` y `Miles` mostrados en la escala de la esquina inferior derecha, con una unidad encima de la otra.

------
#### [ 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/es_es/location/latest/developerguide/images/static-scale-both.png)


------

# Cómo agregar un marcador a un mapa estático
<a name="add-marker-static-map"></a>

En este tema, obtendrá información sobre cómo agregar marcadores a los mapas estáticos generados con Amazon Location Service. Puede personalizar el icono, la etiqueta, el tamaño, el color y otras opciones de estilo del marcador. Esto le permite resaltar ubicaciones específicas con señales visuales que se alinean con el propósito del mapa.

## Estilos de marcador
<a name="marker-styling"></a>


| Nombre | Tipo | Predeterminado/a | Descripción | 
| --- | --- | --- | --- | 
| `style` | Cadena | `marker` | El estilo de la geometría de puntos. Para crear un marcador, defina el valor en `marker` o no incluya el atributo `style` en el objeto de propiedades del GeoJSON. | 
| `icon` | Cadena | `pin` | El tipo de icono del marcador. Los valores disponibles incluyen: `cp` (círculo de proximidad), `diamond`, `pin`, `poi`, `square`, `triangle`, `bubble`. | 
| `label` | Cadena | `<empty>` | El texto para mostrar en las coordenadas. Para configurar etiquetas automáticas, utilice los siguientes valores: `$alpha` (alfabeto latino) o `$num` (números arábigos). | 
| `color` | Color | Dependiente del estilo | El color del icono. | 
| `outline-color` | Color | Dependiente del estilo | El color del esquema del icono. | 
| `text-color` | Color | Dependiente del estilo | El color del texto de la etiqueta. | 
| `text-outline-color` | Color | Dependiente del estilo | El color del esquema del texto. | 
| `outline-width` | Entero | `0` (desactivado) | El ancho del esquema del texto. | 
| `size` | Cadena | `medium` | El tamaño de la etiqueta y el icono. Valores disponibles: `small`, `medium`, `large`. | 

## Agregación de un marcador a una imagen de mapa
<a name="add-marker-single"></a>

En este ejemplo, colocará un marcador con una etiqueta en la imagen del 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 ]

Con la superposición de 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/es_es/location/latest/developerguide/images/static-add-marker.png)


------

## Agregación de varios marcadores a una imagen de mapa
<a name="add-multiple-markers"></a>

En este ejemplo, agregará marcadores para los lugares imperdibles de Helsinki (Finlandia) mediante sus coordenadas (longitud, latitud). También puede aplicar un relleno para garantizar que el mapa contenga todos los marcadores correctamente.

**nota**  
El tipo de icono de marcador disponible incluye: `cp` para círculo de proximidad, `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/es_es/location/latest/developerguide/images/static-add-multi-markers.png)


------

## Cambio del color del marcador en una imagen de mapa
<a name="change-marker-color"></a>

En este ejemplo, utilizará marcadores de burbujas de diferentes colores para representar ciudades de todo el mundo. Puede personalizar el color, la etiqueta y otras propiedades del marcador para adaptarlos al contexto del 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/es_es/location/latest/developerguide/images/static-change-marker-color.png)


------

# Cómo agregar una línea a un mapa estático
<a name="how-to-add-line-static"></a>

 En este tema, obtendrá información sobre cómo agregar una línea a un mapa estático con Amazon Location Service. Abordaremos las opciones de estilo compatibles, cómo definir una línea con GeoJSON y cómo aplicar estilos personalizados como el color, el ancho y el contorno. También exploraremos cómo usar diferentes unidades de medida para propiedades como el ancho de línea. 

## Estilos compatibles
<a name="supported-styling"></a>


| Nombre | Tipo | Predeterminado/a | Descripción | 
| --- | --- | --- | --- | 
| `color` | Color | dependiente del estilo | El color de la línea. | 
| `width` | Entero/cadena | 2 | El ancho de la línea. Para obtener más información, consulte [Cómo agregar una línea a un mapa estático](#how-to-add-line-static). | 
| `outline-color`  | Color | dependiente del estilo | El color del esquema de la línea. | 
|  `outline-width`  | Entero/cadena | 0 (desactivado) | El ancho del esquema. Para obtener más información, consulte [Cómo agregar una línea a un mapa estático](#how-to-add-line-static). | 

## Unidad compatible
<a name="supported-unit"></a>


| Unidad | Descripción | 
| --- | --- | 
| Entero, por ejemplo, `5` | Píxeles | 
| Cadena sin unidad, por ejemplo `"5"` | Píxeles | 
| `"px"` | Píxeles | 
| `"m"` | Metros | 
|  `"km"`  | Kilómetros | 
| `"mi"` | Millas | 
| `"ft"` | Pies | 
| `"yd"` | Yardas | 
| `"%"` | El porcentaje del valor predeterminado de una propiedad específica, en píxeles. Por ejemplo, si el valor predeterminado para `width` son `2` píxeles, entonces `200%` son `4` píxeles. `%` es un carácter confidencial que se debe codificar en la URL de la solicitud como `%25`. | 

## Agregación de una línea
<a name="add-a-line"></a>

 En este ejemplo, agregará una línea desde un lugar de Vancouver hasta Stanley Park. La línea se crea con un formato GeoJSON con 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/es_es/location/latest/developerguide/images/static-add-line.png)


------

## Agregación de estilo a la línea
<a name="add-styling"></a>

 En este ejemplo, aplicará estilo a la línea que se ha agregado en el ejemplo anterior. Esto incluye definir el color y el ancho de la línea, y el color y el ancho del contorno para personalizar el aspecto visual de la línea en el 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/es_es/location/latest/developerguide/images/static-add-line-styling.png)


------

# Cómo agregar una ruta a un mapa estático
<a name="how-to-add-route"></a>

En este tema, obtendrá información sobre cómo agregar una ruta a un mapa estático con Amazon Location Service. Repasará los pasos para obtener una ruta mediante la API de CalculateRoutes y, a continuación, la visualizará en un mapa estático mediante GeoJSON y un estilo personalizado para puntos y líneas. 

## Pasos para agregar una ruta
<a name="steps-to-add-route"></a>

1. Obtenga rutas desde la API de `CalculateRoutes`. Elimine las coordenadas que estén en la misma línea recta para optimizar LineString y evitar que la cadena de consulta alcance su límite.

1. Cree un objeto GeoJSON basado en el conjunto de coordenadas optimizado.

1. Tome el primer y el último punto del LineString y agregue geometrías de puntos para marcar las ubicaciones inicial y final.

1. Diseñe los puntos y el LineString de acuerdo con las necesidades de la empresa, ajustando propiedades como el color, el tamaño y las etiquetas.

## Agregación de una ruta con un estilo compacto
<a name="add-route-using-compact-style"></a>

En este ejemplo, agregará una ruta con puntos de inicio y final a la línea creada en [Cómo agregar una línea a un mapa estático](how-to-add-line-static.md). La ruta se definirá con un estilo personalizado, que incluirá el color, el tamaño y las etiquetas de los puntos inicial y final.

```
{
  "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/es_es/location/latest/developerguide/images/static-add-route-compact.png)


------

# Cómo agregar un polígono a un mapa estático
<a name="how-to-add-polygon-static"></a>

Los edificios y las ubicaciones se pueden resaltar en un mapa designando un polígono a su alrededor, por ejemplo, el Pentágono (ubicado en Washington, D.C.). 

## Agregación de un único polígono
<a name="polygon-single"></a>

En este ejemplo, se agrega un polígono (un pentágono) para el edificio del Pentágono en el 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 ]

![\[Mapa de ejemplo que muestra un polígono alrededor del Pentágono.\]](http://docs.aws.amazon.com/es_es/location/latest/developerguide/images/mapsV2/addPolygonStaticMap.png)


------

## Agregación de un polígono de estilo
<a name="polygon-restyle"></a>

En este ejemplo, rediseñamos el polígono que se muestra en el ejemplo anterior. Dibujamos el polígono en un color diferente (**n.º E3F70550**). A continuación, explicamos los componentes del color.
+ **E3** representa el componente rojo.
+ **F7** representa el componente verde.
+ **05** representa el componente azul.
+ **50** representa el componente alfa (opacidad).

------
#### [ 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 ]

![\[Mapa de ejemplo que muestra un polígono de color diferente alrededor del Pentágono.\]](http://docs.aws.amazon.com/es_es/location/latest/developerguide/images/mapsV2/addPolygonStaticMap-color.png)


------

## Agregación de varios polígonos
<a name="polygon-multiple"></a>

En este ejemplo, agregamos varios polígonos para resaltar varios parques de la ciudad de Nueva 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 ]

![\[Mapa de ejemplo que muestra varios polígonos alrededor de los parques de Nueva York.\]](http://docs.aws.amazon.com/es_es/location/latest/developerguide/images/mapsV2/addPolygonStaticMap-multiple.png)


------

# Cómo configurar el idioma de los mapas estáticos
<a name="set-language-static-map"></a>

Puede configurar el idioma de un mapa estático, en caso de que no desee utilizar el idioma predeterminado.

En este ejemplo, se solicita en inglés una ubicación de Tokio que normalmente utiliza texto en japonés de forma predeterminada, lo que sobrescribe el valor predeterminado regional.

El ejemplo muestra la imagen de respuesta de una solicitud en la que se proporciona el idioma y otra en la que no se proporciona el idioma. Las etiquetas correspondientes reflejan la diferencia entre un mapa que muestra el idioma solicitado y un mapa que muestra el idioma predeterminado.

------
#### [ 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 ]

![\[Mapa de ejemplo que muestra un polígono alrededor del Pentágono.\]](http://docs.aws.amazon.com/es_es/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 ]

![\[Mapa de ejemplo que muestra un polígono alrededor del Pentágono.\]](http://docs.aws.amazon.com/es_es/location/latest/developerguide/images/mapsV2/setLanguageDefaultStaticMap.png)


------

# Cómo agregar un círculo de proximidad a un mapa estático
<a name="how-to-add-proximity-circle"></a>

Los círculos de proximidad ofrecen información importante sobre la precisión de la ubicación de un dispositivo o usuario notificada o estimada. Al mostrar un círculo alrededor del punto indicado, se informa a los usuarios de que la posición real podría situarse en cualquier punto del círculo, debido a diversos factores que afectan a la precisión del posicionamiento. Esta mayor claridad ayuda a la toma de decisiones y mejora la seguridad de la navegación.

En este ejemplo, se agrega un círculo de proximidad de 500 metros cerca de la Torre Eiffel de París.

------
#### [ 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 ]

![\[Mapa de ejemplo que muestra un círculo de proximidad alrededor de la Torre Eiffel.\]](http://docs.aws.amazon.com/es_es/location/latest/developerguide/images/mapsV2/addPproximityCircleStaticMap.png)


------

# Administración de costos y uso
<a name="maps-whats-next"></a>

A medida que siga obteniendo información sobre los mapas de Amazon Location, es importante que sepa cómo administrar la capacidad del servicio, asegurarse de cumplir con los límites de uso y obtener los mejores resultados mediante las optimizaciones de cuotas y API. Al aplicar las prácticas recomendadas para garantizar el rendimiento y la precisión, puede personalizar la aplicación para gestionar las consultas relacionadas con el lugar de forma eficiente y maximizar las solicitudes de la API.

**Topics**
+ [Prácticas recomendadas para Amazon Location Service](maps-best-practices.md)
+ [Precios de los mapas](maps-pricing.md)
+ [Quotas y uso de mapas](map-quota-and-usage.md)

# Prácticas recomendadas para Amazon Location Service
<a name="maps-best-practices"></a>

Al trabajar con Amazon Location Service, seguir las prácticas recomendadas garantiza que los mapas estén optimizados para mejorar el rendimiento, la precisión y la experiencia del usuario. En esta sección se describen las consideraciones clave para trabajar con mapas estáticos, límites geográficos y datos de GeoJSON para mejorar la funcionalidad y la visualización de los mapas.

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

A continuación, se muestran algunas prácticas recomendadas para trabajar con mapas dinámicos en Amazon Location Service.

### Optimización del renderizado con MapLibre
<a name="next-dynamic-rendering"></a>

Las siguientes son algunas de las funciones MapLibre que ayudan a optimizar la representación de los estilos de AWS mapa. Para obtener más información, consulte [AWS estilos y características del mapa](map-styles.md).

#### Omisión de la validación del estilo
<a name="next-dynamic-validation"></a>

Si utiliza el estilo de AWS mapa, `validateStyle` configúrelo en`false`. Esto desactivará la validación del estilo durante el tiempo de carga, lo que acelerará la carga inicial del mapa. La validación de estilos no es necesaria con los estilos de mapa de AWS , ya que están validados previamente.

------
#### [ 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`: Esto permite validar el estilo del mapa con respecto a la especificación de estilo MapLibre GL. Si hay algún problema con el estilo, se registrará en la consola.
+ Si lo establece en `false`, el mapa omitirá el proceso de validación del estilo, lo que podría provocar una carga más rápida, pero sin comprobar los errores.

------

#### Precalentamiento del mapa
<a name="next-dynamic-prewarm"></a>

En el caso de las aplicaciones de una sola página (SPAs) que pueden crear y destruir el mapa varias veces a medida que el usuario navega por la aplicación, la función de precalentamiento puede reducir los retrasos en la recreación del mapa una vez destruido. 

Esta función solo se recomienda para. SPAs

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

### Límites, cuadro delimitador (cuadro)
<a name="bounds-bbox"></a>

Cuando se trabaja con mapas y datos geográficos, es fundamental definir con precisión el cuadro delimitador (`bbox`) y los parámetros de límites, ya que determinan el área geográfica de interés. Cualquier imprecisión puede provocar resultados no deseados.

**Garantía de unos límites precisos**  
Asegúrese de que los límites especificados representen con precisión la región que desea mostrar. Incluso las más pequeñas imprecisiones pueden recortar o excluir partes del área deseada, lo que iría en contra del propósito de la visualización.

**Verificación del nivel de zoom adecuado**  
El nivel de zoom del mapa se calcula automáticamente en función de los límites o bbox especificados. Compruebe que el nivel de zoom resultante proporciona los detalles y la visibilidad adecuados para toda el área de interés. Si el zoom es demasiado alto o demasiado bajo, es posible que el mapa no transmita la información deseada de forma eficaz.

**Comprobación de la visibilidad de la superposición personalizada**  
Cuando utilice bbox o límites con superposiciones personalizadas, como las características de GeoJSON, asegúrese de que la extensión de las características se encuentre dentro de la imagen del mapa resultante. Es posible que las características que se extiendan más allá de los límites se recorten u omitan, lo que provocará visualizaciones incompletas o engañosas.

**Uso de relleno con bbox**  
Use bbox junto con el parámetro de rellenado para asegurarse de que las características del mapa cercanas a los bordes estén completamente visibles y no estén cortadas.

Al definir con precisión los parámetros de bbox y límites, puede asegurarse de que los mapas representan correctamente el área geográfica deseada, proporcionan un nivel de detalle adecuado e incorporan capas de datos o superposiciones personalizadas de forma eficaz.

## GeoJSON
<a name="geojson-best-practices"></a>

Al utilizar datos de GeoJSON, la optimización de la cadena de consulta mediante la minimización del GeoJSON puede ayudarle a mantenerse dentro de los límites de las cadenas de consulta, especialmente en el caso de conjuntos de datos grandes.

# Precios de los mapas
<a name="maps-pricing"></a>

Amazon Location Service ofrece precios competitivos para su API de mapas en función del tipo de solicitud de mapa y del número de llamadas a la API realizadas. En esta sección, se brinda una descripción general de la estructura de precios de los mapas dinámicos y estáticos. 

Para obtener información de precios detallada, consulte los [precios de Amazon Location Service](https://aws.amazon.com/location/pricing/).

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

El precio de la API de mapas se basa en la cantidad de mosaicos recuperados por la API de `GetTiles`.

Otras API relacionadas con mapas, como `GetGlyphs`, `GetStyleDescriptor` y `GetSprites` son gratuitas.

## Imágenes de mapas estáticos
<a name="static-maps-pricing"></a>

El precio de las imágenes de mapas estáticos se basa en la cantidad de solicitudes realizadas en la API de `GetStaticMap`. Cada solicitud de una imagen de mapa estática se tiene en cuenta para el cálculo del precio.

# Quotas y uso de mapas
<a name="map-quota-and-usage"></a>

Amazon Location Service impone cuotas de servicio y límites de uso específicos para los mapas dinámicos y estáticos. Estos límites se establecen para garantizar un uso justo y la eficiencia del rendimiento para todos los usuarios. A continuación, se muestran las cuotas de servicio y los límites ajustables para cada servicio.

## Cuotas de servicio
<a name="service-quota"></a>

Amazon Location Service establece cuotas predeterminadas para ayudar APIs a gestionar la capacidad del servicio, que se pueden consultar en la [consola de administración de cuotas de AWS servicio](https://console.aws.amazon.com/servicequotas/home#!/services/geo/quotas). Puede solicitar un aumento de las cuotas a través de la [consola de autoservicio](https://console.aws.amazon.com/servicequotas/home#!/services/geo/quotas), para hasta el doble del límite predeterminado para cada API. 

Si los límites de cuota superan el doble del límite predeterminado, solicítelo en la consola de autoservicio y se le enviará automáticamente un ticket de soporte. Otra opción, contacte con el equipo de soporte prémium 

No se cobran cargos directos por las solicitudes de aumento de cuota, pero los niveles de uso más altos pueden conllevar un aumento de los costos del servicio en función de los recursos adicionales consumidos. Para obtener más información, consulte [Administración de cuotas con Service Quotas](manage-quotas.md).

### Mapa dinámico
<a name="dynamic-map-quota"></a>


| Nombre de API | Predeterminado | Límite ajustable máximo | Más que el límite máximo ajustable | 
| --- | --- | --- | --- | 
|  `GetTiles`  |  2000  |  4000  | Solicitud en la [consola de cuotas de servicio](https://console.aws.amazon.com/servicequotas/home#!/services/geo/quotas) o contacto con el equipo de soporte | 

### Mapa estático
<a name="static-map-quota"></a>


| Nombre de API | Predeterminado | Límite ajustable máximo | Más que el límite máximo ajustable | 
| --- | --- | --- | --- | 
|  `GetStaticMap`  |  50  |  100  | Solicitud en la [consola de cuotas de servicio](https://console.aws.amazon.com/servicequotas/home#!/services/geo/quotas) o contacto con el equipo de soporte | 

## Límites de uso
<a name="other-usage-limits"></a>


| Nombre de API | Límite | Valor | 
| --- | --- | --- | 
|  `GetStyleDescriptor`  |  Número máximo de solicitudes, por segundo y por dirección IP.  |  5000  | 
|  `GetGlyphys`  |  Número máximo de solicitudes, por segundo y por dirección IP.  | 5000 | 
|  `GetSprites`  |  Número máximo de solicitudes, por segundo y por dirección IP.  | 5000 | 
|  `GetStaticMap`  |  Tamaño de la carga útil de respuesta después de la compresión.  |  6 MB  | 
|  `GetTiles`  |  Tamaño de la carga útil de respuesta después de la compresión.  |  6 MB  | 

## Términos
<a name="terms-to-use"></a>

Para obtener más información, consulte [Condiciones de uso y atribución de datos](data-attribution.md).