Android Estilos de mapas de Google personalizados


Ejemplo

Estilo de mapa

Google Maps viene con un conjunto de diferentes estilos para ser aplicados, usando este código:

// Sets the map type to be "hybrid"
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);

Los diferentes estilos de mapas son:

Normal

map.setMapType(GoogleMap.MAP_TYPE_NORMAL);

Mapa de carreteras típico. Se muestran caminos, algunas características hechas por el hombre e importantes características naturales como los ríos. Las etiquetas de carreteras y de características también son visibles.

introduzca la descripción de la imagen aquí

Híbrido

map.setMapType(GoogleMap.MAP_TYPE_HYBRID);

Datos de fotografías satelitales con mapas de carreteras añadidos. Las etiquetas de carreteras y de características también son visibles.

introduzca la descripción de la imagen aquí

Satélite

map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);

Datos de la fotografía del satélite. Las etiquetas de carreteras y características no son visibles.

introduzca la descripción de la imagen aquí

Terreno

map.setMapType(GoogleMap.MAP_TYPE_TERRAIN);

Datos topográficos. El mapa incluye colores, líneas de contorno y etiquetas, y sombreado en perspectiva. Algunas carreteras y etiquetas también son visibles.

introduzca la descripción de la imagen aquí

Ninguna

map.setMapType(GoogleMap.MAP_TYPE_NONE);

No hay azulejos. El mapa se representará como una cuadrícula vacía sin mosaicos cargados.

introduzca la descripción de la imagen aquí


OTRAS OPCIONES DE ESTILO

Mapas interiores

En niveles de zoom altos, el mapa mostrará planos de planta para espacios interiores. Estos se denominan mapas interiores y se muestran solo para los tipos de mapa "normal" y "satélite".

para habilitar o deshabilitar los mapas interiores, así es como se hace:

GoogleMap.setIndoorEnabled(true).
GoogleMap.setIndoorEnabled(false).

Podemos añadir estilos personalizados a los mapas.

En el método onMapReady agrega el siguiente fragmento de código

mMap = googleMap;
    try {
        // Customise the styling of the base map using a JSON object defined
        // in a raw resource file.
        boolean success = mMap.setMapStyle(
                MapStyleOptions.loadRawResourceStyle(
                        MapsActivity.this, R.raw.style_json));

        if (!success) {
            Log.e(TAG, "Style parsing failed.");
        }
    } catch (Resources.NotFoundException e) {
        Log.e(TAG, "Can't find style.", e);
    }

en la carpeta res cree un nombre de carpeta sin formato y agregue el archivo de estilos json. Ejemplo de archivo style.json

    [
  {
    "featureType": "all",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#242f3e"
      }
    ]
  },
  {
    "featureType": "all",
    "elementType": "labels.text.stroke",
    "stylers": [
      {
        "lightness": -80
      }
    ]
  },
  {
    "featureType": "administrative",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#746855"
      }
    ]
  },
  {
    "featureType": "administrative.locality",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#d59563"
      }
    ]
  },
  {
    "featureType": "poi",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#d59563"
      }
    ]
  },
  {
    "featureType": "poi.park",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#263c3f"
      }
    ]
  },
  {
    "featureType": "poi.park",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#6b9a76"
      }
    ]
  },
  {
    "featureType": "road",
    "elementType": "geometry.fill",
    "stylers": [
      {
        "color": "#2b3544"
      }
    ]
  },
  {
    "featureType": "road",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#9ca5b3"
      }
    ]
  },
  {
    "featureType": "road.arterial",
    "elementType": "geometry.fill",
    "stylers": [
      {
        "color": "#38414e"
      }
    ]
  },
  {
    "featureType": "road.arterial",
    "elementType": "geometry.stroke",
    "stylers": [
      {
        "color": "#212a37"
      }
    ]
  },
  {
    "featureType": "road.highway",
    "elementType": "geometry.fill",
    "stylers": [
      {
        "color": "#746855"
      }
    ]
  },
  {
    "featureType": "road.highway",
    "elementType": "geometry.stroke",
    "stylers": [
      {
        "color": "#1f2835"
      }
    ]
  },
  {
    "featureType": "road.highway",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#f3d19c"
      }
    ]
  },
  {
    "featureType": "road.local",
    "elementType": "geometry.fill",
    "stylers": [
      {
        "color": "#38414e"
      }
    ]
  },
  {
    "featureType": "road.local",
    "elementType": "geometry.stroke",
    "stylers": [
      {
        "color": "#212a37"
      }
    ]
  },
  {
    "featureType": "transit",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#2f3948"
      }
    ]
  },
  {
    "featureType": "transit.station",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#d59563"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#17263c"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#515c6d"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "labels.text.stroke",
    "stylers": [
      {
        "lightness": -20
      }
    ]
  }
]

Para generar los estilos del archivo json pulsa este enlace. introduzca la descripción de la imagen aquí