Referencia de estilo para la API de Maps JavaScript (original) (raw)

Selecciona la plataforma: Android iOS JavaScript

Con las opciones de diseño, puedes personalizar la presentación de los diseños de mapa estándares de Google y cambiar la representación visual de ciertos componentes, como rutas, parques, negocios y otros lugares de interés. Además de cambiar el diseño de estos componentes, puedes ocultarlos por completo. Esto significa que puedes resaltar determinados componentes del mapa o hacer que este complemente el diseño de la página en la que se encuentra.

Ejemplos

En la siguiente declaración de diseño JSON, se pintan de gris todos los componentes del mapa, se pinta de azul la geometría de las rutas principales y se ocultan por completo las etiquetas de paisajes:

[ { "featureType": "all", "stylers": [ { "color": "#C0C0C0" } ] },{ "featureType": "road.arterial", "elementType": "geometry", "stylers": [ { "color": "#CCFFFF" } ] },{ "featureType": "landscape", "elementType": "labels", "stylers": [ { "visibility": "off" } ] } ]

El objeto JSON

Una declaración de diseño JSON consta de los siguientes elementos:

Para especificar un diseño, debes combinar un conjunto de selectores featureType y elementType con tus objetos stylers en un array de diseño. En un único array, puedes contemplar cualquier combinación de componentes. Sin embargo, la cantidad de diseños que puedes aplicar al mismo tiempo es limitada. Si tu array de diseño excede la cantidad máxima de caracteres, no se aplicará ningún diseño.

En el resto de esta página, encontrarás más información sobre los componentes, elementos y parámetros de diseño.

featureType

En el siguiente fragmento de JSON se seleccionan todas las rutas del mapa:

{ "featureType": "road" }

Los componentes, o tipos de componentes, son las características geográficas de un mapa, como las rutas, los parques, las masas de agua y los negocios, entre otros.

Los componentes forman un árbol de categorías, con all como raíz. Si no especificas un componente, se seleccionarán todos. Si especificas un componente de all, se produce el mismo efecto.

Algunos componentes tienen componentes secundarios que se especifican con un punto. Por ejemplo, landscape.natural o road.local. Si solo especificas el componente superior, como road, los diseños que especifiques para este se aplicarán a todos sus componentes secundarios, como road.local y road.highway.

Ten en cuenta que los componente superiores pueden tener algunos elementos que no se incluyan en todos los componentes secundarios correspondientes.

Están disponibles los siguientes componentes:

elementType

En el siguiente fragmento de JSON se seleccionan las etiquetas de todas las rutas locales:

{ "featureType": "road.local", "elementType": "labels" }

Los elementos son subdivisiones de un componente. Una ruta, por ejemplo, consta de la línea gráfica (la geometría) en el mapa y el texto que describe su nombre (una etiqueta).

Los siguientes elementos se encuentran disponibles; sin embargo, ten en cuenta que un componente en particular puede admitir todos los elementos, algunos de ellos o ninguno:

Los colores del texto de la etiqueta fill y stroke cambian según el nivel de zoom. Para que la experiencia sea coherente en todos los niveles de zoom, siempre define fill y stroke.

stylers

Los stylers o parámetros de diseño son opciones de formato que puedes usar en los elementos y componentes de un mapa.

Mediante el siguiente fragmento de JSON se muestra un componente en color verde brillante, para lo que se usa un valor RGB:

"stylers": [ { "color": "#99FF33" } ]

El fragmento quita toda la intensidad del color de un componente, independientemente del color inicial. Como resultado, se renderiza el componente en escala de grises:

"stylers": [ { "saturation": -100 } ]

Mediante este fragmento se oculta un componente entero:

"stylers": [
  { "visibility": "off" }
]

Se admiten las siguientes opciones de diseño:

Las reglas de diseño se aplican en el orden que especifiques. No combines varias operaciones en una única operación de diseño. En cambio, define cada operación como una entrada independiente en el array de diseño.

Nota: El orden es importante, ya que algunas operaciones no son conmutativas. Los elementos o componentes que se modifican con operaciones de diseño suelen tener diseños existentes. Las operaciones se aplican a esos diseños que ya existen (si están presentes).

Modelo de matiz, saturación y luminosidad

En los mapas con diseños, se usa el modelo de matiz, saturación y luminosidad (HSL, por su sigla en inglés) para indicar el color dentro de las operaciones de parámetros de diseño. Hue (matiz) indica el color básico, saturation (saturación) indica la intensidad de ese color y lightness (luminosidad) indica la cantidad relativa de blanco o negro en el color constituyente.

La corrección de gamma modifica la luminosidad en el espacio de color (por lo general, para aumentar o disminuir el contraste). Además, el modelo HSL define el color en un espacio de coordenadas donde hue indica la orientación en una paleta de colores, y la saturación y la luminosidad indican amplitudes con respecto a diferentes ejes. Los matices se miden en un espacio de color RGB similar a la mayoría de los espacios de color RGB, excepto porque no están presentes los tonos de blanco y negro.

Modelo de matiz, saturación y luminosidad

Si bien hue admite un valor de color hexadecimal HTML, solo lo usa para determinar el color básico (su orientación en la paleta de colores, y no su saturación o luminosidad, que se indican por separado como cambios porcentuales).

Por ejemplo, puedes definir el matiz del verde puro como hue:0x00ff00 o hue:0x000100. Ambos matices son idénticos. Ambos valores apuntan al verde puro en el modelo de color HSL.

Una paleta de colores RGB

Los valores hue de RGB que consisten en partes iguales de rojo, verde y azul no indican un matiz porque ninguno de esos valores indica una orientación en el espacio de coordenadas de HSL. Algunos ejemplos son "#000000" (negro), "#FFFFFF" (blanco) y todos los tonos puros de gris. Para indicar negro, blanco o gris, debes quitar por completo saturation (configura el valor en -100) y ajustar lightness.

Además, cuando se modifican componentes existentes que ya tienen un esquema de color, al cambiar un valor como hue, no cambian sus valores de saturation o lightness existentes.