This document lists requirements for applications developed with the
Map Tiles API. Note that use of the Map Tiles API is governed by
your Agreement with Google.

## Policies

This section describes policies relevant to Map Tiles API. Policies provide practical
implementation guidelines and requirements to help you use the Service
correctly and in line with Google Maps Platform's expectations.

### Data storage, caching, and scraping

When using Google Maps Content in your application, follow the data
handling requirements in Section 3.2.3 of the
[Google Maps Platform Terms of Service](https://cloud.google.com/maps-platform/terms#3.-license.)
and the
[Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms):

- **Caching and scraping restrictions (Section 3.2.3(a) and
  (b)):** Cache or store Google Maps Content only as expressly permitted under the [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). Don't export, extract, or scrape Google Maps Content for use outside the Services. For example, don't pre-fetch, index, store, or redistribute Google Maps Content outside the Services; bulk download map tiles, Street View images, geocodes, directions, distance matrix results, roads information, places information, elevation values, or time zone details; or copy and save business names, addresses, or user reviews.
- **Derived content restrictions (Section 3.2.3(c)):** Use Google Maps Content within your application as permitted by the [Google Maps Platform Terms of Service](https://cloud.google.com/maps-platform/terms#3.-license.). Don't create content based on Google Maps Content. For example, don't trace or digitize features from satellite imagery, build 3D or terrain models, use Places latitude and longitude values as input for point-in-polygon analysis, construct a location index from Street View imagery, or convert text-based driving times into synthesized speech.

To reduce latency and billing costs without caching restricted data, use
field masks or field lists to request only the fields that your user
interface needs. Store exempt identifiers such as the place ID to fetch fresh
details when a user interacts with a place.

Google technical support engineers can't provide legal advice or grant
exceptions to the Google Maps Platform Terms of Service. Consult your legal counsel to
determine whether your implementation complies with the terms, or
[contact Sales](https://cloud.google.com/contact-maps)
if your use case requires custom licensing.

### Pre-fetching, caching, or storage of content

Applications using the Map Tiles API are bound by the terms of your
Agreement with Google. Subject to the terms of your Agreement, you must not
pre-fetch, index, store, or cache any Content except under the limited
conditions stated in the terms.

Specifically, applications should use Map Tiles API for map visualizations.
You may not use Map Tiles API for any non-visualization use cases, such as:

- Image analysis
- Machine interpretation
- Object detection or identification
- Geodata extraction or resale
- Offline uses, including for any of the above

Map Tiles API responses may include `Cache-Control` headers which should be
implemented according to the [HTTP protocol
documentation](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9)
. As an example, your client must respect the `max-age` value, the
`stale-while-revalidate` value, the `must-revalidate` directive, and the
`private` directive when they are passed in the response.

Map Tiles API responses may also include an `ETag` header which should also
be implemented according to the HTTP protocol documentation when requesting with
revalidation.


### Print

Street View imagery may not be used for print purposes, as outlined in the
[Street View
policies](https://about.google/brand-resource-center/products-and-services/geo-guidelines/#street-view).


### European Economic Area countries and territories

This product has different Terms of Service for customers with a billing address in the
European Economic Area (EEA), and it may also have different functionality.
Before building with Google Maps Platform, review the following EEA-specific
terms and information:

- [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea)
- [Google Maps Platform EEA Service Specific Terms](https://cloud.google.com/terms/maps-platform/eea/maps-service-terms)
- [EEA frequently asked questions (FAQ)](https://developers.google.com/maps/comms/eea/faq.md.txt)
- [Google Maps Platform Road Safety Requirements](https://cloud.google.com/terms/maps-platform/eea-safety-requirements)

If your billing address is not in the EEA, the following terms of service apply to you:

- [Google Maps Platform Terms of Service](https://cloud.google.com/maps-platform/terms)
- [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms)

## Display Google Maps attribution

> [!NOTE]
> **Note:** The following updated attribution requirements now use "Google Maps" instead of only "Google." We acknowledge that your existing implementations may use the attribution of "Google," in alignment with prior guidance, and you may continue using "Google" as an attribution for now. For new implementations, use "Google Maps" as described in this section. In the future, we will provide timelines and instructions to help you transition existing "Google" attributions to "Google Maps" attributions.

![Rendered image showing Google Maps and Google data attributions](https://developers.google.com/static/maps/documentation/tile/images/attribution-tile.png) Google Maps attribution applied to a map using Map Tiles API

You must include clear Google Maps attribution when displaying content
from Google Maps Platform APIs in your app or website. Attribution should
take the form of the Google Maps logo whenever possible. In cases where
space is limited, the text **Google Maps** is acceptable.

### Logo attribution

![Acceptable variations for Google Maps logo attribution](https://developers.google.com/static/maps/images/02_GMP_Logo_Alternates.jpg) Acceptable variations for Google Maps logo attribution

#### Google Maps logo

Use the official Google Maps logos provided below.

[Download the Google Maps attribution assets](https://developers.google.com/static/maps/documentation/images/Google_Maps_Attribution_Assets.zip)

When using the Google Maps logo, follow these guidelines.

- Don't modify the logo in any way.
- Maintain the aspect ratio of the logo to avoid distortion.
- Use the outlined logo on a busy background, like a map or image.
- Use the non-outlined logo on a plain background, like a solid color or subtle gradient.

#### Logo size specification

Follow these size specifications for the Google Maps logo:

- **Minimum logo height:** 16dp
- **Maximum logo height:** 19dp
- **Minimum logo clear space:** 10dp on left, right and top, 5dp on the bottom

To learn about dp, see [Pixel density](https://m2.material.io/design/layout/pixel-density.html#pixel-density) on the Material Design website.
![Google Maps logo showing minimum clear space and acceptable size range](https://developers.google.com/static/maps/images/03_GMP_Logo_Size_Specs.jpg) Representation of the Google Maps logo showing minimum clear space and acceptable size range

#### Logo accessibility

Follow these accessibility requirements for the Google Maps logo:

- Maintain an [accessible contrast](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html) between the logo and the background.
- Include an accessibility label with the text **Google Maps**.

### Display the Google Maps logo with third-party renderers

When you use the Map Tiles API to display Google Maps using a
third-party renderer, you must not overlap or obscure the Google logo with any
other logo, such as the renderer's logo. Maintain a reasonable buffer distance
between the Google logo and the third-party logo so that they appear as
independent logos. No logo may overlap or obscure the data attribution provided
by the API response.

![Rendered image showing Google and Cesium logos](https://developers.google.com/static/maps/documentation/tile/images/attribution_cesium.png)

### Display Google's data attributions

Data returned from the Map Tiles API requires the display of attribution
and copyright information from the appropriate metadata or viewport information
requests. You should display this information, in full as provided in the
appropriate location, usually the bottom right corner of the displayed set of
tiles, or in the 3D renderer view. Note that the attribution strings are
variable, depending on the map data requested by the renderer's viewport.

If it's infeasible to display data attributions in full due to viewport size
constraints, consider adding a hover-over or clickable UI element labeled "Data
sources", which opens within the map window to provide attribution information.
Always aim to maintain good cartographic
practices.

![Footer containing Google logo and data provider attribution.](https://developers.google.com/static/maps/documentation/tile/images/attribution_data_sources.png)

### Display third-party data attributions

Some of the data and images on our mapping products come from providers other than Google.
For some products, such as Map Tiles API, we may provide you with the required attribution
to the third-party data provider. When we do, the text of your
attribution must say the name "Google Maps" and the relevant
data provider(s), such as "Map data: Google, Maxar Technologies." When Google provides
third-party attribution, only including "Google Maps" or the Google logo is
not proper attribution.

When you use the Map Tiles API to display Google Maps
data as a basemap and overlay third-party (non-Google) geospatial data,
you must not overlap or obscure
the Google data attribution in any way with the data attribution of the
third-party data. The attribution of third-party data must clearly be
disassociated from Google's data attributions. In addition, it must be clear
that the Google Maps logo and Google's data attribution are associated with
the basemap and with each other.

### Display logo and data attributions in hybrid visualizations

When you use Google Maps data as a basemap while overlaying your own map
data, you must ensure your audience fully understands which portion of the map
visualization is attributed to Google and which portions are attributed to your
own map data. Additionally, follow the guidelines in [Display
Google Maps Attribution](https://developers.google.com/maps/documentation/tile/policies#logo) above.

As an example, consider combining Photorealistic 3D Tiles (as background filler) with your
own photorealistic models (in the foreground). Users could be confused regarding
which components of the scene originate from Google Maps data. In
such cases, you must clearly state in your UI attribution string or user flow
which part of the scene originates from Google Maps data. You're
responsible for complying with any third-party attribution requirements that may
apply to data sources that you use with Google Maps data.

#### Geodata overlays with Photorealistic 3D Tiles

You may overlay your own 3D objects on Photorealistic 3D Tiles as long as the 3D objects aren't
extracted, traced, or otherwise derived by hand or machine from Photorealistic 3D Tiles.

### Video creation featuring Map Tiles API

- **Promotional Videos**: You may create promotional videos subject to the terms of the Agreement and the following:
  - The promotional video must not include Street View imagery.
  - The promotional video must be no more than 30 seconds in length.
  - The promotional video must be about the capabilities of your application(s).
  - The promotional video must be clearly marked, "for promotional purposes only" and must comply with [Display
    Google Maps Attribution](https://developers.google.com/maps/documentation/tile/policies#logo) guidelines.
  - The promotional video may not be resold separately or as part of the software, application, or user experience.
- **Takedown**: You are responsible to comply with all requests to takedown the Promotional Video, including requests from third parties.

### Retrieving attribution and copyright information

Get attribution and copyright information from the `copyright` field
in the responses of the following API calls, depending on the service you're
using:

- [Map Tiles](https://developers.google.com/maps/documentation/tile/2d-tiles-overview.md.txt#viewport_info_respoonse)
- [Street View Tiles](https://developers.google.com/maps/documentation/tile/streetview.md.txt#metadata_response)
- [Photorealistic 3D Tiles](https://developers.google.com/maps/documentation/tile/3d-tiles-overview.md.txt)

### 2D tiles

#### Roadmap, Satellite and Terrain tiles

Copyright and attribution information is available from the viewport information
response, as shown in the following example.

```json
{
  "copyright": "Map data ©2023",
  "maxZoomRects": [
    {
      "maxZoom": 19,
      "north": 90,
      "south": -90,
      "east": 180,
      "west": -180
    },
    ...
  ]
}
```

#### Street View Tiles

Copyright and attribution information is available from the Street View
[metadata response](https://developers.google.com/maps/documentation/tile/streetview.md.txt#metadata_response).
For example:

```json
{
 "panoId": "rZ9KeTyhA11i0VppYNzsSg",
 "lat": 37.420864219339165,
 "lng": -122.08446528377291,
 "imageHeight": 6656,
 "imageWidth": 13312,
 "tileHeight": 512,
 "tileWidth": 512,
 "heading": 94.35,
 "tilt": 88.39652,
 "roll": 1.7181772,
 "imageryType": "outdoor",
 "date": "2023-01",
 "copyright": "© 2023 Google",
 "reportProblemLink": "https://cbks0.googleapis.com/cbk?output=report&panoid=rZ9KeTyhA11i0VppYNzsSg&cb_client=api&cbp=1,0,,0,0",
  ...
}
```

The panorama ID, which is used to uniquely identify a Street View panorama, is
exempt from the caching restriction. Therefore, you can store panorama ID values
indefinitely. Panorama ID values are returned in the `panoId` field in Street
View Static API responses.

You must display the `reportProblemLink` hyperlink in the bottom right-hand
corner of the image, and it must include link text that says something like
"Report a problem with this image".

### Photorealistic 3D Tiles

For Photorealistic 3D Tiles, attribution data is returned in each tile request.
You must aggregate, sort, and display in a line, all attributions for displayed
tiles; usually along the bottom of the rendering. For example, you can find the
data attributions in a [glTF
tile](https://github.com/KhronosGroup/glTF) by looking under
`asset`, `copyright`.

```json
{
  "asset": {
    "version": "2.0",
    "generator": "draco_decoder",
    "copyright": "Data SIO, NOAA, U.S. Navy, NGA, GEBCO;Landsat / Copernicus"
  }
}
```

#### CesiumJS

If you're using CesiumJS as your renderer, then to display
attributions, you need to enable `showCreditsOnScreen` in your rendering HTML.

```javascript
// Add Photorealistic 3D Tiles tileset.
    const tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
      url: "https://tile.googleapis.com/v1/3dtiles/root.json?key=YOUR_API_KEY",
      // This property is needed to appropriately display attributions
      // as required.
      showCreditsOnScreen: true,
    }));
```

#### Cesium for Unreal

If you're using Cesium for Unreal as your renderer, then to display
attributions, you need to enable the **Show Credits On Screen** field in the
**World Outliner**.

![How to enable attributions for Cesium for
Unreal](https://developers.google.com/static/maps/documentation/tile/images/attribution_unreal2.png)

#### Cesium for Unity

If you're using Cesium for Unity as your renderer, then to display
attributions, you need to enable the **Show Credits On Screen** field in the
Inspector console.

![How to enable attributions for Cesium for
Unity](https://developers.google.com/static/maps/documentation/tile/images/attribution_unity2.png)