> [!IMPORTANT]
> **Paid feature:**
> Features accessed by adding a [map ID](https://developers.google.com/maps/documentation/get-map-id) triggers a map
> load charged against the Dynamic Maps SKU for Android and iOS. See
> [Google Maps Billing](https://developers.google.com/maps/billing-and-pricing/sku-details/maps#dynamic-maps-ess-sku) for more information.

You can use cloud-based map styling to define reusable map styles for the Google navigation
experience in the Navigation SDK. This page provides an overview of how you can define and apply map
styles, as well as specific implementation details for the Navigation SDK. For complete information
about cloud-based map styling, see the

[Overview](https://developers.google.com/maps/documentation/android-sdk/cloud-customization) page in Maps SDK for
Android documentation
.
![Example of customized map style 1](https://developers.google.com/static/maps/documentation/navigation/images/android-cbms-1.png) ![Example of customized map style 2](https://developers.google.com/static/maps/documentation/navigation/images/android-cbms-2.png)

## Define map styles

The first step in customizing map styles for the Navigation SDK is creating a map style and
associating it with a map ID. Map styles are created, stored, and edited in the Google Maps
Platform Cloud Console. You then reference the map ID in your app code to display the customized
map.

There are two map types in the Navigation SDK that can be styled: the navigation map, which is
visible during an active navigation session, and the road map, which is visible whenever there is
no navigation session active. The styles that you define and associate with a map ID apply to both
the navigation and road map types.

For complete details about defining map styles, see

[Create and use map styles](https://developers.google.com/maps/documentation/android-sdk/cloud-customization/map-styles) in the Maps SDK for Android documentation.

> [!NOTE]
> **Note:** While it is technically possible to define separate styles for the navigation and road map types by associating separate styles with different map IDs, this implementation is not recommended because it requires reloading the map to load the different map ID.

## Apply map styles

Once you have map styles associated with a map ID, you can add the ID through a
`<fragment>` element in the activity's layout file, by using the
[`MapView`](https://developers.google.com/maps/documentation/navigation/android-sdk/reference/com/google/android/gms/maps/MapView) class, or by using the
[`GoogleMapOptions`](https://developers.google.com/maps/documentation/navigation/android-sdk/reference/com/google/android/gms/maps/GoogleMapOptions) class on a
[`MapFragment`](https://developers.google.com/maps/documentation/navigation/android-sdk/reference/com/google/android/gms/maps/MapFragment),
[`SupportMapFragment`](https://developers.google.com/maps/documentation/navigation/android-sdk/reference/com/google/android/gms/maps/SupportMapFragment), or
[`SupportNavigationFragment`](https://developers.google.com/maps/documentation/navigation/android-sdk/reference/com/google/android/libraries/navigation/SupportNavigationFragment) instance.

For more information about applying map styles, see
[Add the map ID to your app](https://developers.google.com/maps/documentation/android-sdk/map-ids/get-map-id#add-a-map-id-to-your-app) in the Maps SDK for Android documentation.

## Light and dark mode styles

Cloud-based map styling lets you define light mode and dark mode styles. In the Navigation SDK,
road maps (non-navigation maps) can have light and dark modes, and navigation maps can have
daylight and low-light or night modes. When you associate styles with maps in the Navigation SDK,
the styles apply to both road and navigation maps:

- **Light mode** styles in the Cloud Console apply to both light mode road maps and daylight navigation maps.
- **Dark mode** styles in the Cloud Console apply to both dark mode road maps and low-light/night mode navigation maps.

## Billing

When an app loads a map that has a map ID applied, a map load charged against the [Dynamic Maps
SKU](https://developers.google.com/maps/billing-and-pricing/sku-details/maps#dynamic-maps-ess-sku) is triggered. Note that this trigger is different from that of map loads that don't have map
IDs applied. Map loads without map IDs are charged against the [Maps SDK SKU](https://developers.google.com/maps/billing-and-pricing/sku-details/maps#maps-sdk-ess-sku). For more information
about triggers and pricing for each SKU, see [Pricing and Billing](https://developers.google.com/maps/billing-and-pricing).

## Policies and use

When customizing map styles in the Navigation SDK, you must adhere to the policies
regarding acceptable modifications to the navigation UI. In particular, you must not
remove road networks from the navigation map or significantly reduce color contrast
of map features on the navigation map.

For complete details about acceptable modifications to the Navigation UI, see
[Policies for Navigation SDK for
Android](https://developers.google.com/maps/documentation/navigation/android-sdk/policies).