#### Getting Started

- [What is Google Maps Platform?](https://developers.google.com/maps/faq.md.txt#whatis)
- [How do I get started with Google Maps Platform?](https://developers.google.com/maps/faq.md.txt#getstarted)
- [Which API do I need?](https://developers.google.com/maps/faq.md.txt#whichapi)
- [How do I start using the APIs on my site?](https://developers.google.com/maps/faq.md.txt#startapi)
- [Which countries does Google Maps Platform cover?](https://developers.google.com/maps/faq.md.txt#whatcountries)
- [Can I put Google Maps on my site without using Google Maps Platform products?](https://developers.google.com/maps/faq.md.txt#mapswithoutapi)
- [How do I deliver Maps applications on mobile devices?](https://developers.google.com/maps/faq.md.txt#mapsformobile)
- [Which web browsers do the Maps JavaScript API and
  Maps Embed API support?](https://developers.google.com/maps/faq#browsersupport)
- [Can I print maps from the Maps JavaScript API?](https://developers.google.com/maps/faq.md.txt#print)
- [How can I be notified when there are changes to Google Maps Platform products?](https://developers.google.com/maps/faq.md.txt#notify)
- [How do I contact technical support?](https://developers.google.com/maps/faq.md.txt#support)
- [When is technical support available?](https://developers.google.com/maps/faq.md.txt#support_available)
- [How do I recover access to my Google Account?](https://developers.google.com/maps/faq.md.txt#recover-gaccount-access)
- [How do I recover access to a specific project?](https://developers.google.com/maps/faq.md.txt#recover-project-access)
- [Can I use the Maps and Places SDK for iOS on Arm-based Macs?](https://developers.google.com/maps/faq.md.txt#arm-based-macs)

#### Understand the terms of service

- [What are the terms of service for Google Maps Platform products?](https://developers.google.com/maps/faq.md.txt#tos)
- [Does my site meet the Google Maps Platform Terms of Service?](https://developers.google.com/maps/faq.md.txt#tos_mysite)
- [Can I directly access map tiles and satellite imagery?](https://developers.google.com/maps/faq.md.txt#tos_tiles)
- [Can I use Google Maps Platform products for tracking applications?](https://developers.google.com/maps/faq.md.txt#tos_tracking)
- [Can I use Google Maps Platform products in my non-Web application?](https://developers.google.com/maps/faq.md.txt#tos_nonweb)
- [Can I use Google Maps Platform products on a site that is password protected?](https://developers.google.com/maps/faq.md.txt#tos_password)
- [Can I create an application that includes Google Maps Platform data in a document?](https://developers.google.com/maps/faq.md.txt#tos_export)
- [How can I opt out of including my content in Google Search results?](https://developers.google.com/maps/faq.md.txt#tos_optout)
- [Can I generate a map image using the Maps Static API which I store
  and serve from my website?](https://developers.google.com/maps/faq#tos_staticmaps_reuse)
- [Can I cache or store data returned by Google Maps Platform APIs?](https://developers.google.com/maps/faq.md.txt#tos_caching)

#### Usage limits and billing (quotas)

- [How do I set up billing for my project?](https://developers.google.com/maps/faq.md.txt#setup_billing)
- [What is the Google Cloud Free Trial and how do Free Trial users upgrade to a paid account?](https://developers.google.com/maps/faq.md.txt#GCP_paid_account)
- [Does Google Maps Platform have usage limits (quotas)?](https://developers.google.com/maps/faq.md.txt#usage_apis)
- [How is usage cost calculated?](https://developers.google.com/maps/faq.md.txt#usage_quotacalc)
- [How are map loads counted on Google Maps Platform?](https://developers.google.com/maps/faq.md.txt#usage_mapload)
- [How do I monitor my quota usage?](https://developers.google.com/maps/faq.md.txt#usage-monitor)
- [What happens if I exceed the usage limits?](https://developers.google.com/maps/faq.md.txt#usage_exceed)
- [My site gets a lot of traffic. Can I use Google Maps Platform products?](https://developers.google.com/maps/faq.md.txt#hightrafficsite)
- [If my website or application becomes suddenly popular, will my maps stop working?](https://developers.google.com/maps/faq.md.txt#usage_popular)
- [How will usage be calculated and billed?](https://developers.google.com/maps/faq.md.txt#usage_calculated)
- [How much does it cost to use Google Maps Platform?](https://developers.google.com/maps/faq.md.txt#usage_pricing)
- [Is pricing available in other currencies?](https://developers.google.com/maps/faq.md.txt#usage_currencies)
- [I've set up billing. How do I view my bill?](https://developers.google.com/maps/faq.md.txt#usage_viewbill)
- [How do I avoid a large bill if my usage unexpectedly increases?](https://developers.google.com/maps/faq.md.txt#usage_cap)
- [I got a message saying that my project is linked to the "Google Maps
  Platform Transition Account", but I don't have access to that account.
  What do I do?](https://developers.google.com/maps/faq#transition_account)
- [Why is my quota limit set to 1 request per day? How can I raise this limit?](https://developers.google.com/maps/faq.md.txt#limit_1)
- [I received a billing violation notice. How do I resolve this?](https://developers.google.com/maps/faq.md.txt#billing-violation-notice)

#### Use Google Maps Platform

- [Which keys or credentials should I use for different Google Maps Platform products?](https://developers.google.com/maps/faq.md.txt#keysystem)
- [How do I switch my key restriction type from an HTTP referer to an IP address restriction?](https://developers.google.com/maps/faq.md.txt#switch-key-type)
- [How do I get a new API key?](https://developers.google.com/maps/faq.md.txt#new-key)
- [How can I find the changes introduced in each version of Google Maps Platform?](https://developers.google.com/maps/faq.md.txt#versionchanges)
- [How can I load the API into a page asynchronously after the page has loaded?](https://developers.google.com/maps/faq.md.txt#loadasync)
- [How can I get Google Maps Platform products to display in a language other than English?](https://developers.google.com/maps/faq.md.txt#languagesupport)
- [Can the Google Maps Platform be accessed over HTTPS (TLS)?](https://developers.google.com/maps/faq.md.txt#https)
- [How do I report a bug or request a new feature in Google Maps Platform?](https://developers.google.com/maps/faq.md.txt#reportissue)
- [How do Google Maps Platform APIs use site cookies?](https://developers.google.com/maps/faq.md.txt#api_cookies)
- [I can't find the answer to my question. Who should I contact?](https://developers.google.com/maps/faq.md.txt#morehelp)

#### Errors and troubleshooting

- [What does this error mean?](https://developers.google.com/maps/faq.md.txt#errorcodes)
- [My maps appear darker than usual. What's happening?](https://developers.google.com/maps/faq.md.txt#api-key-billing-errors)
- [How do I resolve the error codes `OVER_DAILY_LIMIT` or `OVER_QUERY_LIMIT`?](https://developers.google.com/maps/faq.md.txt#over-limit-key-error)
- [How do I resolve the error codes: `kGMSPlacesRateLimitExceeded` or `9005 PLACES_API_RATE_LIMIT_EXCEEDED`?](https://developers.google.com/maps/faq.md.txt#rate-limit-exceeded-error)
- [How do I resolve the error: "This IP, site or mobile application is not
  authorized to use this API key."?](https://developers.google.com/maps/faq#api-key-error)
- [How do I resolve the error: "API keys with referer restrictions cannot be used with this API."?](https://developers.google.com/maps/faq.md.txt#browser-keys-blocked-error)

#### Google Maps Platform Services

- [I need to convert addresses to latitude/longitude pairs. Can I do that with
  Google Maps Platform?](https://developers.google.com/maps/faq#geocoder_exists)
- [Which countries is geocoding available in?](https://developers.google.com/maps/faq.md.txt#geocoder_countries)
- [Why do the Google Maps Platform Geocoders provide different locations than
  Google Maps?](https://developers.google.com/maps/faq#geocoder_differences)
- [How should I format my geocoder queries to maximise the number of successful
  requests?](https://developers.google.com/maps/faq#geocoder_queryformat)
- [How should I format a US address on a numbered highway for geocoding?](https://developers.google.com/maps/faq.md.txt#geocoder_highways)
- [When should I use an API geocoder class and when should I use the HTTP
  Geocoding Service?](https://developers.google.com/maps/faq#geocoder_classorhttp)
- [How do I provide driving directions with Google Maps Platform?](https://developers.google.com/maps/faq.md.txt#directions_exists)
- [In which countries are driving directions available?](https://developers.google.com/maps/faq.md.txt#directions_countries)
- [In which countries are transit directions available?](https://developers.google.com/maps/faq.md.txt#transit_directions_countries)
- [What is the maximum number of markers or path vertices supported by the
  Maps Static API?](https://developers.google.com/maps/faq#staticmap_limits)
- [Why can't I access Google Maps Platform products for certain countries?](https://developers.google.com/maps/faq.md.txt#prohibited_territories_ws_access)
- [How do I report a problem on the Google basemap?](https://developers.google.com/maps/faq.md.txt#data-issues)
- [How is performance monitored for the services used with Maps JavaScript API?](https://developers.google.com/maps/faq.md.txt#uptime_slo)

#### Maps JavaScript API

- [How long will the Maps JavaScript API work after it has been loaded?](https://developers.google.com/maps/faq.md.txt#jsrefresh)

#### Google Maps SDK for iOS

- [How do I resolve the error: `kGMSPlacesRateLimitExceeded`?](https://developers.google.com/maps/faq.md.txt#rate-limit-error-ios)
- [I'm getting crashes when debugging with an iOS 8.x device. What should I do?](https://developers.google.com/maps/faq.md.txt#ios8-debug)
- [What's the impact of rounded and wider screens on the Google Maps iOS SDK?](https://developers.google.com/maps/faq.md.txt#iphone-x)

#### Google Maps SDK for Android

- [How do I resolve the error: `9001 Operation failed due to exceeding the quota usage limit`?](https://developers.google.com/maps/faq.md.txt#9005-error-android)
- [My app only shows blank grey tiles instead of a map. How can I resolve this?](https://developers.google.com/maps/faq.md.txt#android-grey-tiles)

#### URL signing

- [Can I sign URLs using JavaScript?](https://developers.google.com/maps/faq.md.txt#signature_js)
- [Why am I receiving a HTTP 403 Forbidden
  response to my Maps API web service requests?](https://developers.google.com/maps/faq#signature_403)

## Getting Started


What is Google Maps Platform?

:   Google Maps Platform is a set of APIs and SDKs that allows developers to embed Google Maps
    into mobile apps and web pages, or to retrieve data from Google Maps. There are several offerings.
    Depending on your needs, you may find yourself using one or a combination of these APIs and SDKs:

    Maps:

    - [Maps JavaScript API](https://developers.google.com/maps/documentation/javascript)
    - [Maps SDK for Android](https://developers.google.com/maps/documentation/android-sdk)
    - [Maps SDK for iOS](https://developers.google.com/maps/documentation/ios-sdk)
    - [Map Tiles API](https://developers.google.com/maps/documentation/tile)
    - [Aerial View API](https://developers.google.com/maps/documentation/aerial-view)
    - [Maps Static API](https://developers.google.com/maps/documentation/maps-static)
    - [Street View Static API](https://developers.google.com/maps/documentation/streetview)
    - [Maps URLs](https://developers.google.com/maps/documentation/urls/guide)
    - [Maps Embed API](https://developers.google.com/maps/documentation/embed)
    - [Maps Datasets API](https://developers.google.com/maps/documentation/datasets)

    Routes:

    - [Routes API](https://developers.google.com/maps/documentation/routes)
    - [Roads API](https://developers.google.com/maps/documentation/roads)
    - [Route Optimization API](https://developers.google.com/maps/documentation/route-optimization)
    - [Navigation SDK for Android](https://developers.google.com/maps/documentation/navigation/android-sdk)
    - [Navigation SDK for iOS](https://developers.google.com/maps/documentation/navigation/ios-sdk)

    Places:

    - [Places API](https://developers.google.com/maps/documentation/places/web-service)
    - [Places SDK for Android](https://developers.google.com/maps/documentation/places/android-sdk)
    - [Places SDK for iOS](https://developers.google.com/maps/documentation/places/ios-sdk)
    - [Places Library, Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/places)
    - [Places Aggregate API](https://developers.google.com/maps/documentation/places-aggregate)
    - [Address Validation API](https://developers.google.com/maps/documentation/address-validation)
    - [Geocoding API](https://developers.google.com/maps/documentation/geocoding)
    - [Geolocation API](https://developers.google.com/maps/documentation/geolocation)
    - [Time Zone API](https://developers.google.com/maps/documentation/timezone)

    Environment:

    - [Air Quality API](https://developers.google.com/maps/documentation/air-quality)
    - [Pollen API](https://developers.google.com/maps/documentation/pollen)
    - [Solar API](https://developers.google.com/maps/documentation/solar)
    - [Weather API](https://developers.google.com/maps/documentation/weather)


How do I get started with Google Maps Platform?

:
    See [Get Started with Google Maps Platform](https://developers.google.com/maps/get-started.md.txt).


Which API do I need?

:
    For help in finding the right API based on your functional requirements, take
    a look at the [Capabilities Explorer](https://developers.google.com/maps/documentation/capabilities-explorer.md.txt).


How do I start using the APIs on my site?

:
    See the Overview, Developer, and Get Started guides for the specific API or SDK you are
    interested in. For example, check out the guides for
    [Maps SDK for Android](https://developers.google.com/maps/documentation/android-sdk/intro) or
    [Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/tutorial).


Which countries does Google Maps Platform cover?

:
    The Google Maps team is constantly pushing new map data out and increasing
    our international coverage. Consult the [Google Maps
    coverage data](https://developers.google.com/maps/coverage) for the latest coverage information. You can filter the data
    with the filter box at the top of the page. Coverage data
    can change if licensing agreements with the data providers change.

    Also see:

    - [How can I get Google Maps Platform products to display in a
      language other than English?](https://developers.google.com/maps/faq#languagesupport)
    - [In which countries are transit directions
      available?](https://developers.google.com/maps/faq#transit_directions_countries)


Can I put Google Maps on my site without using Google Maps Platform products?

:
    Yes. [Google Maps](http://maps.google.com) now
    offers the ability to embed the map that you're viewing into your website or
    blog, without any programming or use of Google Maps Platform. More information
    is available
    [here](https://support.google.com/maps/answer/3544418).


How do I deliver Maps applications on mobile devices?

:
    To incorporate maps in an Android application, use the
    [Maps SDK for Android](https://developers.google.com/maps/documentation/android-sdk).


    To incorporate maps in an iOS application, use the
    [Maps SDK for iOS](https://developers.google.com/maps/documentation/ios-sdk).


    The [Maps JavaScript API](https://developers.google.com/maps/documentation/javascript) has been developed to cater to mobile
    devices, and is suitable for browser applications targeted at both the
    desktop and devices that include a web browser with a full JavaScript
    implementation, such as the Apple iPhone.


    For applications targeted at devices not suitable for using the Maps JavaScript API,
    the [Maps Static API](https://developers.google.com/maps/documentation/maps-static)
    delivers map images in GIF, JPG, and PNG formats, including markers
    and polylines. Note that use of the Maps Static API outside of browser based
    applications requires that the map image be linked to Google Maps.


Which web browsers do the Maps JavaScript API and
Maps Embed API support?

:
    The Maps JavaScript API and Maps Embed API support
    the following web browsers:

    **Desktop**

    - The current version of Microsoft Edge (Windows), **excluding** IE mode.
    - The two latest major stable versions of Firefox (Windows, macOS, Linux).
    - The two latest major stable versions of Chrome (Windows, macOS, Linux).
    - The two latest major stable versions of Safari (macOS).

    **Android**

    - The current version of Chrome on Android 4.1+.
    - Chrome WebView on Android 4.4+.

    **iOS**

    - Mobile Safari on the current and previous major versions of iOS.
    - UIWebView and WKWebView on the current and previous major versions of iOS.
    - The current version of Chrome for iOS.


Can I print maps from the Maps JavaScript API?

:
    Printing from the Maps JavaScript API is not supported. This is because printing
    support is inconsistent across commonly used browsers.


How can I be notified when there are changes to Google Maps Platform products?

:   You should subscribe to the
    [Google Maps Platform
    Blog](https://mapsplatform.google.com/resources/blog) for news updates across the various Google Geo developer offerings.


How do I contact technical support?

:
    See [Google Maps Platform Support and Resources](https://developers.google.com/maps/support.md.txt) for information
    about available support options.


When is technical support available?
:
    The support team is available 24x5 (weekdays from Monday 9 AM Tokyo time to
    Friday 5 PM Pacific time) excluding [regional holidays](https://support.google.com/googlecloud/answer/6047804)
    for "service unusable" issues.


How can I recover access to my Google Account?

:   If you lost access to your Google Account (e.g. joe@mycompany.com or joe@gmail.com), you can try
    restoring the account access by retrieving or resetting your password. Visit the
    [How to recover your Google Account
    or Gmail](https://support.google.com/accounts/answer/7682439) article in Google Account Help.

    - Note: To restore access to a G Suite account, ask your [Organization](https://support.google.com/a/answer/1397578) administrator to [undelete the account](https://support.google.com/a/answer/1397578).


How can I recover access to a specific project?

:   If you lost access to the project where you manage your Google Maps Platform implementation, you can try to recover it.

    If you have access to your project-associated Google Account:

    - **If you know the Project Owner and have access to your Google Account:** Ask the Project Owner to [add
      you as a Project Owner or Project Editor](https://cloud.google.com/iam/docs/granting-changing-revoking-access#granting-console).
      - **If your project is part of an Organization:** Contact your [Organization](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy) admins and ask them to [add
        you as a Project Owner](https://cloud.google.com/iam/docs/granting-changing-revoking-access#granting-console).
    - **If you don't know any of the current Project Owners:** If you don't know who the Project Owner is, or the Project Owner is unavailable, [contact the support team](https://developers.google.com/maps/support.md.txt?utm_source=faq&utm_medium=contact_support) to explore additional options to recover the project.

    If you **don't** have access to your project-associated Google Account:

    - **If you lost access to your Google Account:** [try
      to recover your username or password](https://developers.google.com/maps/faq#recover-gaccount-access) for your account.
    - **If you cannot recover access to your Google Account:** Create a new Google Account, then contact an existing project owner and ask them to [add your new Google Account to the project](https://cloud.google.com/iam/docs/granting-changing-revoking-access#granting-console).


Can I use the Maps and Places SDK for iOS on Arm-based Macs?

:   Developing on the new Arm-based Macs is possible, however, it requires building and running on
    a physical iOS device. This is a temporary limitation while we look into adding more support for
    developing on simulators.

## Understand the terms of service


What are the terms of service for Google Maps Platform products?

:
    The Google Maps Platform Terms of Service are available at:


    <https://cloud.google.com/maps-platform/terms>


Does my site meet the Google Maps Platform Terms of Service?

:
    You can use Google Maps Platform within your applications as long as
    your site meets the [Google Maps Platform Terms of Service](https://cloud.google.com/maps-platform/terms).


    However, there are some uses of Google Maps Platform that we just don't want
    to see. For example, maps that identify the places to buy illegal drugs in a city or any other illegal activity. We also respect people's privacy, so
    Google Maps Platform shouldn't be used to identify private information about individuals.


    You should use your own counsel to determine whether your application complies
    with the [Google Maps Platform Terms of Service](https://cloud.google.com/maps-platform/terms) before you develop and
    launch it. Google engineers can only offer technical assistance and are not
    qualified to offer legal advice. Google reserves the right to suspend or
    terminate your use of the service at any time, so read the
    [Maps APIs Terms](https://cloud.google.com/maps-platform/terms) carefully.


Can I directly access map tiles and satellite imagery?

:
    You may not access map tiles or satellite imagery through any mechanism besides
    Google Maps Platform (such as the creation of your own mapping API or the use
    of a bulk tile download script). Your application's access to the tiles will
    be blocked if it accesses them outside of Google Maps Platform. See the
    [Google Maps Platform Terms of Service](https://cloud.google.com/maps-platform/terms#3-license)
    for more details.


Can I use Google Maps Platform products for tracking applications?

:
    There is no restriction on displaying real-time data (tracking) with Google Maps Platform
    products provided that the application complies with the Google Maps Platform Terms of Service.


Can I use Google Maps in my non-Web application?

:
    Yes, Google Maps Platform products can now be used in non-Web applications,
    provided that they adhere to the other restrictions of the Google Maps Platform Terms of Service.


    The Maps JavaScript API is only supported when run in
    one of the [supported browsers](https://developers.google.com/maps/documentation/javascript/browsersupport.md.txt).


Can I use Google Maps Platform products on a site that is password protected?

:
    Yes, Google Maps, Routes, Places, and Environment services can be used with private-access
    applications. See the [Google Maps Platform Terms of Service](https://cloud.google.com/maps-platform/terms)
    for more details.


Can I create an application that includes Google Maps Platform data in a document?

:
    If your application generates a document, either in electronic or printed form,
    no data from Google Maps Platform, including images, may be included in the document.
    See the
    [Google Maps Platform Terms of Service](https://cloud.google.com/maps-platform/terms#3.-license.)
    "No Scraping" section for more details.


How can I opt out of including my content in Google Search results?

:   We are no longer collecting this data. The use of the `indexing`
    parameter has been deprecated and has no effect. You no longer need to opt out
    explicitly, but we encourage you to remove this parameter at your earliest
    convenience.


    To remove your page or site from search results, follow the
    [instructions](http://www.google.com/support/webmasters/bin/topic.py?topic=8459) provided in our help center.


Can I generate a map image using the Maps Static API which I
store and serve from my website?

:
    You may not store and serve copies of images generated using the
    Maps Static API from your website. All web pages that require
    static images must link the `src` attribute of an HTML
    `img` tag or the CSS `background-image` attribute of an
    HTML `div` tag directly to the Maps Static API so that
    all map images are displayed within the HTML content of the web page and
    served directly to end users by Google.


Can I cache or store data returned by Google Maps Platform APIs?

:
    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.
    - **Place IDs and Google identifiers:** The following Google identifiers are exempt from caching restrictions and can be stored indefinitely in accordance with their service policies:
      - Place IDs (returned in the [`id`](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places.md.txt#Place.FIELDS.id) or [`place_id`](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt#Place-place_id) field; see the [Place IDs guide](https://developers.google.com/maps/documentation/places/web-service/place-id.md.txt#save-id) for saving and refreshing place IDs)
      - Street View Static API panorama IDs ([`pano_id`](https://developers.google.com/maps/documentation/streetview/metadata.md.txt#response-format))
      - Aerial View API video IDs ([`videoId`](https://developers.google.com/maps/documentation/aerial-view/reference/rest/v1/VideoMetadata.md.txt#FIELDS.video_id))
    - **Latitude and longitude coordinates:** You can temporarily cache latitude ([`latitude`](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places.md.txt#LatLng.FIELDS.latitude)) and longitude ([`longitude`](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places.md.txt#LatLng.FIELDS.longitude)) values for up to 30 consecutive calendar days, after which you must delete the cached coordinates, when using services that grant this exception in the [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms):
      - Routes API, Route Optimization API, Directions API (Legacy), and Roads API
      - Geocoding API, Geolocation API, and Address Validation API
      - Places API, Places UI Kit, and Navigation SDK
    - **Service-specific caching periods:** The [Google Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms) also define field-specific caching periods and permitted purposes for the Address Validation API, Air Quality API, Pollen API, Solar API, Weather API, and Places Aggregate API.


    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, and store place IDs 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.

## Usage limits and billing


How do I set up billing for my project?
:
    See [Get Started with Google Maps Platform](https://developers.google.com/maps/get-started.md.txt).


What is the Google Cloud Free Trial and how do Free Trial users upgrade to a paid account?

:
    The Google Cloud Free Trial is a 91-day program that lets new users try the most popular Google
    Cloud products, including Google Maps Platform (GMP) APIs, without any financial commitment.
    Signing up for the Free Trial creates a Free Trial billing account that is preloaded with $300 in
    free Welcome credit, which you can spend on GMP.


    If you don't upgrade to a Paid billing account before 91 days pass or if you spend the $300 in
    free credit, then your Free Trial billing account will be closed and all of its associated
    projects and resources will be stopped. To keep resources you create during the Free Trial and
    your services running un-interrupted,
    [upgrade to a Paid billing account](https://docs.cloud.google.com/free/docs/free-cloud-features#how-to-upgrade).
    Read more about the [Free Trial](https://docs.cloud.google.com/free/docs/free-cloud-features#free-trial).


Does Google Maps Platform have usage limits (quotas)?

:
    There are no maximum daily limits on the number of requests you can make to
    Google Maps Platform products, and the only usage limits are related to the
    maximum number of queries per minute (QPM).

    > [!NOTE]
    > **Notes:** For Compute Route Matrix requests, the limit is in elements per minute (EPM),
    > where the number of elements in a request is equal to: (number of origins times number
    > of destinations).
    >
    > For the Navigation SDKs, each destination in a request is counted as a separate query.

    The following table shows the usage limit for each API. You can view and modify quota
    limits in the [Cloud Console](https://console.cloud.google.com/project/_/google/maps-apis/quotas).

    | API | Usage limit ||
    |---|---|---|
    | Address Validation | [6,000 QPM](https://developers.google.com/maps/documentation/address-validation/usage-and-billing.md.txt#other-usage-limits) |
    | Aerial View: Lookup Video | [180 QPM and 100,000 QPD](https://developers.google.com/maps/documentation/aerial-view/usage-and-billing.md.txt#other-usage-limits) |
    | Aerial View: Render Video | [100 QPM and 100 QPD](https://developers.google.com/maps/documentation/aerial-view/usage-and-billing.md.txt#other-usage-limits) |
    | Air Quality | [6,000 QPM](https://developers.google.com/maps/documentation/air-quality/usage-and-billing.md.txt#other-usage-limits) |
    | Maps 3D SDK for Android | [1,000 QPM](https://developers.google.com/maps/documentation/maps-3d/android-sdk) |
    | Maps 3D SDK for iOS | [1,000 QPM](https://developers.google.com/maps/documentation/maps-3d/ios-sdk) |
    | Maps JavaScript API: 3D Maps | [30,000 QPM](https://developers.google.com/maps/documentation/javascript/usage-and-billing.md.txt#3d_maps_pricing) |
    | Maps JavaScript API: Dynamic Maps | 30,000 QPM |
    | Elevation | [6,000 QPM](https://developers.google.com/maps/documentation/elevation/usage-and-billing.md.txt#other-usage-limits) |
    | Geocoding | [3,000 QPM](https://developers.google.com/maps/documentation/geocoding/usage-and-billing.md.txt#usage-limits) |
    | Geolocation | [6,000 QPM](https://developers.google.com/maps/documentation/geolocation/usage-and-billing.md.txt#other-usage-limits) |
    | Maps Grounding Lite: Search places, Lookup weather, Compute routes | [300 QPM](https://developers.google.com/maps/ai/grounding-lite#quotas) per tool |
    | Maps Grounding Lite: Resolve names, Resolve Maps URLs | [600 QPM](https://developers.google.com/maps/ai/grounding-lite/resolution-api#usage_limits) per method |
    | Map Tiles API: 2D Map Tiles | [6,000 QPM and 15,000 QPD](https://developers.google.com/maps/documentation/tile/usage-and-billing.md.txt#other-usage-limits) |
    | Map Tiles API: Street View Tiles | [6,000 QPM and 15,000 QPD](https://developers.google.com/maps/documentation/tile/usage-and-billing.md.txt#other-usage-limits) |
    | Map Tiles API: Photorealistic 3D Tiles | [12,000 QPM and 10,000 root requests per day.](https://developers.google.com/maps/documentation/tile/usage-and-billing.md.txt#other-usage-limits) |
    | Navigation: Set destination requests | [30,000 QPM](https://developers.google.com/maps/documentation/navigation/android-sdk/pricing.md.txt#other-usage-limits) |
    | Places | [6,000 QPM](https://developers.google.com/maps/documentation/places/web-service/usage-and-billing.md.txt#other-usage-limits) |
    | Places Aggregate | [1,200 QPM](https://developers.google.com/maps/documentation/places-aggregate/usage-and-billing.md.txt#other-usage-limits) |
    | Pollen | [6,000 QPM](https://developers.google.com/maps/documentation/pollen/usage-and-billing.md.txt#other-usage-limits) |
    | Roads | [30,000 QPM](https://developers.google.com/maps/documentation/roads/usage-and-billing.md.txt#other-usage-limits) |
    | Routes: Compute Routes | [3,000 QPM](https://developers.google.com/maps/documentation/routes/usage-and-billing.md.txt#other-usage-limits) |
    | Routes: Compute Route Matrix | [3,000 EPM](https://developers.google.com/maps/documentation/routes/usage-and-billing.md.txt#other-usage-limits) |
    | Solar | [600 QPM](https://developers.google.com/maps/documentation/solar/usage-and-billing.md.txt#other-usage-limits) |
    | Static Maps | [30,000 QPM](https://developers.google.com/maps/documentation/maps-static/usage-and-billing.md.txt#other-usage-limits) |
    | Street View Image API | [30,000 QPM](https://developers.google.com/maps/documentation/streetview/usage-and-billing.md.txt#other-usage-limits) |
    | Time Zone | [30,000 QPM](https://developers.google.com/maps/documentation/timezone/usage-and-billing.md.txt#other-usage-limits) |
    | Weather | [6,000 QPM](https://developers.google.com/maps/documentation/weather/usage-and-billing.md.txt#other-usage-limits) |

    In order to govern expenditures, you can [monitor your API usage](https://developers.google.com/maps/faq.md.txt#usage-monitor),
    and [set daily limits](https://developers.google.com/maps/faq.md.txt#usage_cap) to all requests to any billable
    API.

    Google Maps Platform products must be deployed in compliance with the standard
    [Google Maps Platform Terms of Service](https://developers.google.com/maps/faq.md.txt#understanding-terms-of-service).


How is usage cost calculated?

:
    For an overview of pricing for Google Maps Platform products, see the
    [pricing list](https://developers.google.com/maps/billing-and-pricing/pricing.md.txt).

    To learn more about how Google Maps Platform APIs are billed, see
    [Google Maps Platform billing and pricing overview](https://developers.google.com/maps/billing-and-pricing/overview.md.txt).


How are map loads counted on Google Maps Platform?

:   A single map load is charged when any of the following occur:

    - A web page or application displays a map using the Maps JavaScript API.
    - An application requests a single map image from the Maps Static API.

    Street View panoramas are charged separately from map loads:

    - A static Street View panorama is charged for each request to the Street View Static API to embed a static (non-interactive) Street View panorama.
    - A dynamic Street View panorama is charged for each instantiation of a panorama object in a Maps JavaScript API, Maps SDK for Android, or Maps SDK for iOS application.

    After a web page or application loads a map, or a static map image, or
    a Street View panorama, any user interactions with it, such as
    panning, zooming, or switching map layers, don't generate
    additional map loads or affect usage limits.

    Adding a marker won't generate additional map loads, but may generate charges around how the
    pin location was determined (such as loading or reloading the `google.maps.Map()` class.)


How do I monitor my usage?

:
    You can monitor the usage of individual APIs in the
    [Google Cloud console](https://console.cloud.google.com/project/_/apiui/apis/enabled?utm_source=Docs_EnabledAPIsView).

    1. Select the project that contains the API you want to review.
    2. From the list of APIs on the Dashboard, click the name of the API.
    3. Near the top of the page, click **Metrics** or **Quotas**.


    To see a traffic report and billing information for an entire project,
    follow these steps:

    1. If you haven't already done so, [set up billing](https://developers.google.com/maps/faq.md.txt#setup_billing).
    2. Go to the Cloud console [billing page](https://console.cloud.google.com/project/_/billing).
    3. Select a project.
    4. In the left sidebar, click **Reports**. Use the filters on the right sidebar to view reports on your billing account.

    To learn more, see
    [Google Maps Platform Reporting](https://developers.google.com/maps/reporting-and-monitoring/reporting.md.txt) as well as
    [Google Maps Platform Monitoring](https://developers.google.com/maps/reporting-and-monitoring/monitoring.md.txt) and
    [Set a quota limit](https://developers.google.com/maps/billing-and-pricing/manage-costs.md.txt#set_a_quota_limit).


What happens if I exceed the request rate (QPM) limits?

:   If you exceed the [QPM limits](https://developers.google.com/maps/faq.md.txt#usage_apis) of a given
    Google Maps Platform product, the API will return an error message. If you
    repeatedly exceed the limits, your access to the API may be temporarily
    blocked.

    If you exceed the request [QPM limits](https://developers.google.com/maps/faq.md.txt#usage_apis) or
    otherwise abuse the service, requests will return a specific error message. If
    you continue to exceed limits, your access to Google Maps Platform may be
    blocked.

    **Note:** The following web service APIs have an equivalent
    client-side service available in the Maps JavaScript API:
    [Elevation](https://developers.google.com/maps/documentation/javascript/elevation.md.txt), [Geocoding](https://developers.google.com/maps/documentation/javascript/geocoding.md.txt).

    **Usage limits exceeded**

    If you exceed the usage limits you get an `OVER_QUERY_LIMIT`
    status code as a response.

    This message means that the web service has stopped providing normal responses and has switched to returning only status code `OVER_QUERY_LIMIT` until more usage is allowed again. This scenario can happen within a few seconds, if the error was
    received because your application sent too many requests per minute.

    If you regularly exceed your QPM usage limits, consider lowering usage
    by optimizing applications to use Google Maps Platform products more
    efficiently, or request to increase your quota. See the [Optimization Guide](https://developers.google.com/maps/optimization-guide.md.txt)
    for more information.


My site gets a lot of traffic. Can I use Google Maps Platform products?

:
    Yes. However we recommend that you familiarize yourself with the
    [usage limits](https://developers.google.com/maps/faq.md.txt#usage_apis) for any of Google Maps Platform
    that your application relies on.


If my website or application becomes suddenly popular, will my maps stop
working?

:   Once you have a billing account, if you exceed the free usage cap and you
    don't have a valid payment method on your billing account (such as a credit card or bank transfer),
    the API ceases to function until you add a valid payment method.


How will usage be calculated and billed?

:   Usage is calculated at the end of each day, and priced as shown in the
    [pricing list](https://developers.google.com/maps/billing-and-pricing/pricing.md.txt).
    At the end of every month, the total usage is charged to the payment method
    associated with your billing account. For more information, see
    [Google Maps Platform Billing](https://developers.google.com/maps/billing-and-pricing/billing).


How much does it cost to use Google Maps Platform?

:   See the [pricing list](https://developers.google.com/maps/billing-and-pricing/pricing.md.txt)
    for an overview of cost per API. If your application
    generates requests or map load volumes up to the free usage cap for a given month,
    your usage is not charged. Usage that exceeds the free usage cap is
    charged to your billing account. For more details, see
    [Google Maps Platform Billing](https://developers.google.com/maps/billing-and-pricing/billing).


Is pricing available in other currencies?

:
    [Additional currencies](https://cloud.google.com/billing/docs/resources/currency)
    may be available within the console. When you select a different currency,
    rates will convert from the USD equivalent listed on our
    [Pricing Sheet](https://developers.google.com/maps/billing-and-pricing/pricing.md.txt).


I've set up billing. How do I view my bill?

:   Google charges you at the beginning of each month for the previous month's
    activity, using your [specified payment method](https://support.google.com/cloud/answer/6158867). For details about your bill, see our
    [Google Maps Platform Billing](https://developers.google.com/maps/billing-and-pricing/billing).

    Additional resources:

    - Learn how to [view your cost and payment history](https://cloud.google.com/billing/docs/how-to/view-history).
    - Learn how to [get an invoice or payment receipt](https://cloud.google.com/billing/docs/how-to/get-invoice).
    - Learn how to [set and manage billing alerts](https://cloud.google.com/billing/docs/how-to/budgets).


How do I avoid a large bill if my usage unexpectedly increases?

:   Google Maps Platform provides ways to set daily request limits and set
    maximum daily billable limits. You can cap the maximum daily limit on usage to
    protect against unexpected increases. You can also set budget alerts to
    receive email notifications when the charges on the billing account reach a
    threshold you set.

    **Capping the maximum daily billable limit:**

    To avoid a large bill, you can set a daily cap on usage
    to protect against unexpected increases in use. You can
    [change this limit](https://developers.google.com/maps/billing-and-pricing/manage-costs.md.txt#set_a_quota_limit)
    in the Cloud console

    > [!IMPORTANT]
    > **Tip:** See the [Google Maps Platform cost management page](https://developers.google.com/maps/billing-and-pricing/manage-costs.md.txt) for guidance on controlling your spend.

    **Setting and managing budget alerts:**

    [Set up
    budget alerts](https://cloud.google.com/billing/docs/how-to/budgets) to send email notifications to billing administrators when
    the charges on the billing account reach a threshold you set. Billing
    administrators will be sent email notifications when the estimated charges on
    the billing account exceed 50%, 90%, and 100% of the threshold.

    > [!IMPORTANT]
    > **Key Point:** Setting a budget does *not* cap API usage. The purpose of budgets is to let you create alerts so that you know how your spending is trending over time. Alerts prompt you to take action to control your costs, but don't prevent the use of your services when the budget is met or exceeded. If you prefer to set a hard cap on API usage to prevent accruing costs, you can [cap API Usage
    > with quota limits](https://developers.google.com/maps/billing-and-pricing/manage-costs#set_a_quota_limit).

I got a message saying that my project is linked to the "Google Maps Platform
Transition Account", but I don't have access to that account. What do I do?

:   The "Google Maps Platform Transition Account" was created to help certain
    customers transition to our pay-as-you-go pricing plan. This transition
    account enabled Google to provide these customers with a one-time credit, so
    that they could continue using Google Maps Platform up to the limit of the
    no-charge tier. Once this limit is exceeded, the billing account will shut down and
    you will lose access to the service. To avoid service interruptions, we urge
    you to set your own billing account, and continue to enjoy the monthly
    free usage cap per month. To change the billing account for your project:

    1. [Create a new billing account](https://cloud.google.com/billing/docs/how-to/manage-billing-account#create_a_new_billing_account) (if you already have a billing account, you can skip this step).
    2. [Associate the billing account with your project](https://cloud.google.com/billing/docs/how-to/modify-project#change_the_billing_account_for_a_project).

Why is my quota limit set to 1 request per day? How can I raise this limit?

:   If you have not created and attached a billing account to your project, your Maps Platform APIs
    will be limited to 1 request per day. You can get higher quota by creating and attaching a billing
    account. To do this, see [Get Started with Google Maps Platform](https://developers.google.com/maps/get-started.md.txt).

    Once you have created and attached a billing account, your daily quota limit will
    be removed. You can decide to [set a
    limit to prevent unexpected spend, in the Cloud console](https://developers.google.com/maps/faq#usage_cap).

I received a billing violation notice. How do I resolve this?

:   You have received this notice because Google has determined that your
    account has been using multiple billing accounts. This is a violation of
    Google's terms, as defined in [the Google Maps Platform Terms of Service](https://developers.google.com/maps-platform/terms#3.-license-.).
    Under these terms, it is forbidden to create multiple billing accounts.
    To learn more, see the [Billing
    Account Violation FAQ](https://developers.google.com/maps/billing-account-violation).

## Use Google Maps Platform

Which keys or credentials should I use for different Maps
products?

:   Each time you use Google Maps Platform products, you must include an API
    key to validate your request. Google Maps Platform is available for
    Android, iOS or Web apps, and for HTTP web services.

    **API Key:**

    - An API key is a unique identifier that you generate using the [Cloud console](https://cloud.google.com/docs/authentication/api-keys).
    - Example of loading an API with a key: `&key=AIzaSyBjsINSH5x39Ks6c0_CoS1yr1Mb3cB3cVo`

    **Digital Signature:**

    - A digital signature is generated using a URL signing secret provided to you by Google. Digital signatures are used with the Maps Static API and Street View Static API.

    **Restrictions:**

    - API key restrictions are optional, but we strongly recommend you restrict all API keys for greater security. See [API security best practices](https://developers.google.com/maps/api-security-best-practices.md.txt) for more details.
    - You can add an application restriction to the API key. Once restricted, a key will only work on platforms that support that type of restriction. Four types of application restrictions are available. APIs enforcing the same restriction type can use the same restricted key.
      - IP addresses (individual servers) - for use with the [web service APIs](https://developers.google.com/maps/apis-by-platform.md.txt#web_service_apis).
      - HTTP referrers (websites) - for use with the [web APIs](https://developers.google.com/maps/apis-by-platform.md.txt#web_apis/).
      - Android app restriction (by package name and fingerprint) - for use with the [Maps SDK for Android](https://developers.google.com/maps/documentation/android-sdk).
      - iOS app restriction (by iOS bundle identifier) - for use with the [Maps SDK for iOS](https://developers.google.com/maps/documentation/ios-sdk).
    - You can also add an API restriction to the API key. For more information, see [Get, add, and restrict an API key](https://developers.google.com/maps/get-started.md.txt#api-key).

    The table below indicates the key/credential and application
    restriction for each Google Maps Platform API/SDK.

    | API/SDK | Credential \& Application Restriction |
    |---|---|
    | **[Maps SDK for Android](https://developers.google.com/maps/documentation/android-sdk)** | API key with Android restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Places SDK for Android](https://developers.google.com/maps/documentation/places/android-sdk)** | API key with Android restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Navigation SDK for Android](https://developers.google.com/maps/documentation/navigation/android-sdk)** | API key with Android restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Maps SDK for iOS](https://developers.google.com/maps/documentation/ios-sdk)** | API key with iOS restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Places SDK for iOS](https://developers.google.com/maps/documentation/places/ios-sdk)** | API key with iOS restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Navigation SDK for iOS](https://developers.google.com/maps/documentation/navigation/ios-sdk)** | API key with iOS restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Maps JavaScript API](https://developers.google.com/maps/documentation/javascript)** | API key with HTTP referer restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Map Tiles API](https://developers.google.com/maps/documentation/tile)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Maps Datasets API](https://developers.google.com/maps/documentation/datasets)** | OAuth token |
    | **[Aerial View API](https://developers.google.com/maps/documentation/aerial-view)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Maps Static API](https://developers.google.com/maps/documentation/maps-static)** | API key with HTTP referer restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) + Digital Signature[^2^](https://developers.google.com/maps/faq.md.txt#digsig) |
    | **[Street View Static API](https://developers.google.com/maps/documentation/streetview)** | API key with HTTP referer restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) + Digital Signature[^2^](https://developers.google.com/maps/faq.md.txt#digsig) |
    | **[Maps Embed API](https://developers.google.com/maps/documentation/embed)** | API key with HTTP referer restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Address Validation API](https://developers.google.com/maps/documentation/address-validation)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Elevation API](https://developers.google.com/maps/documentation/elevation)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Geocoding API](https://developers.google.com/maps/documentation/geocoding)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Geolocation API](https://developers.google.com/maps/documentation/geolocation)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Places API](https://developers.google.com/maps/documentation/places/web-service)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Places Aggregate API](https://developers.google.com/maps/documentation/places-aggregate)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Roads API](https://developers.google.com/maps/documentation/roads)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Routes API](https://developers.google.com/maps/documentation/routes)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Time Zone API](https://developers.google.com/maps/documentation/timezone)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Air Quality API](https://developers.google.com/maps/documentation/air-quality)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Pollen API](https://developers.google.com/maps/documentation/pollen)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Solar API](https://developers.google.com/maps/documentation/solar)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |
    | **[Weather API](https://developers.google.com/maps/documentation/weather)** | API key with IP address restriction[^1^](https://developers.google.com/maps/faq.md.txt#restriction) |

    ^1^ API key restrictions are optional, but we strongly recommend you restrict all API keys for greater security. ^2^ Depending on usage, a digital signature may be required for the [Maps Static API](https://developers.google.com/maps/documentation/maps-static/digital-signature.md.txt) and [Street View Static API](https://developers.google.com/maps/documentation/streetview/digital-signature.md.txt). Regardless of usage, we strongly recommend that you use both an API key and a digital signature to authenticate your requests.


How do I switch my key restriction type from an HTTP referer to an IP address restriction?

:   **Important:** If you are using any of the [web service APIs](https://developers.google.com/maps/apis-by-platform.md.txt#web_service_apis)
    with an API key that has referer restrictions, your requests will fail with the
    error message: "API keys cannot have referer restrictions when used with this
    API." You should switch to using an API key with IP address restrictions.

    Before you switch the API key restriction type from HTTP referer to IP
    address, make sure that all the APIs that use the API key support the IP
    restriction type. APIs of the same restriction type can use the same restricted
    key. If you need to enforce more than one restriction, add a separate key
    with the required restriction. See how to [add a new
    API key](https://developers.google.com/maps/faq#new-key).

    Learn more about [API key
    restrictions associated with Google Maps Platform products](https://developers.google.com/maps/faq#api-key-restrictions).

    To switch an API key with HTTP referer restriction to IP address restriction,
    do the following:

    1. Go to the [Credentials page](https://console.cloud.google.com/project/_/google/maps-apis/credentials?utm_source=Docs_Credentials) of the Cloud console.
    2. Select the project that contains the API key you want to edit.
    3. On the **Credentials** page, from the list of API keys, select the name of the API key to edit the details of the key.
    4. In the **Key restriction** section of the page, select "IP addresses (web servers, cron jobs, etc.)" and insert the appropriate server IP addresses, then click Save.


How do I get a new API key?
:
    See [Get Started with Google Maps Platform](https://developers.google.com/maps/get-started.md.txt).


How can I find the changes introduced in each version of the Google Maps
APIs?

:
    Version change information for many of the Maps APIs are available at the following links:

    - [Geocoding API](https://developers.google.com/maps/documentation/geocoding/release-notes.md.txt)
    - [Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/releases.md.txt)
    - [Routes API](https://developers.google.com/maps/documentation/routes/release-notes.md.txt)
    - [Maps SDK for Android](https://developers.google.com/maps/documentation/android-sdk/releases)
    - [Places SDK for Android](https://developers.google.com/maps/documentation/places/android-sdk/releases)
    - [Navigation SDK for Android](https://developers.google.com/maps/documentation/navigation/android-sdk/release-notes.md.txt)
    - [Maps SDK for iOS](https://developers.google.com/maps/documentation/ios-sdk/releases)
    - [Places SDK for iOS](https://developers.google.com/maps/documentation/places/ios-sdk/releases)
    - [Navigation SDK for iOS](https://developers.google.com/maps/documentation/navigation/ios-sdk/release-notes.md.txt)
    - [Places API](https://developers.google.com/maps/documentation/places/web-service/release-notes.md.txt)
    - [Places Aggregate API](https://developers.google.com/maps/documentation/places-aggregate/release-notes.md.txt)
    - [Address Validation API](https://developers.google.com/maps/documentation/address-validation/release-notes.md.txt)
    - [Aerial View API](https://developers.google.com/maps/documentation/aerial-view/release-notes.md.txt)
    - [Air Quality API](https://developers.google.com/maps/documentation/air-quality/release-notes.md.txt)
    - [Pollen API](https://developers.google.com/maps/documentation/pollen/release-notes.md.txt)
    - [Solar API](https://developers.google.com/maps/documentation/solar/release-notes.md.txt)
    - [Map Tiles API](https://developers.google.com/maps/documentation/tile/release-notes.md.txt)
    - [Maps Datasets API](https://developers.google.com/maps/documentation/datasets/release-notes.md.txt)
    - [Weather API](https://developers.google.com/maps/documentation/weather/release-notes.md.txt)


    You can also check which version of Google Maps Platform a particular bug was
    introduced and fixed in using the Google Maps Platform Issue Tracker at:


    <https://issuetracker.google.com/bookmark-groups/76561>


How can I load the API into a page asynchronously after the page has loaded?

:
    Just specify the callback parameter when loading the API. More information
    and sample code can be found in the
    [Getting
    Started](https://developers.google.com/maps/documentation/javascript/tutorial#Loading_the_Maps_API) section of the Maps JavaScript API documentation.


How can I get Google Maps Platform products to display in a language other than English?

:   By default the API will attempt to load the most appropriate language based on
    the users location or browser settings. Some APIs allow you to explicitly set a
    language when you make a request. More information on how to set the language is
    available in the documentation for each API:

    - [Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/localization.md.txt)
    - [Geocoding API](https://developers.google.com/maps/documentation/geocoding/requests-geocoding#language-param)
    - [Routes API](https://developers.google.com/maps/documentation/routes/understand-route-response.md.txt#specifying_the_language_of_the_step_instructions)
    - [Places API](https://developers.google.com/maps/documentation/places/web-service/search#language-param)
    - [Maps Static API](https://developers.google.com/maps/documentation/maps-static/start.md.txt#map-parameters)

    **Supported Languages:**

    Google often updates supported languages. This list may not be exhaustive
    and is subject to change.

    | Language Code | Language | Language Code | Language |
    |---|---|---|---|
    | af | Afrikaans | ja | Japanese |
    | sq | Albanian | kn | Kannada |
    | am | Amharic | kk | Kazakh |
    | ar | Arabic | km | Khmer |
    | hy | Armenian | ko | Korean |
    | az | Azerbaijani | ky | Kyrgyz |
    | eu | Basque | lo | Lao |
    | be | Belarusian | lv | Latvian |
    | bn | Bengali | lt | Lithuanian |
    | bs | Bosnian | mk | Macedonian |
    | bg | Bulgarian | ms | Malay |
    | my | Burmese | ml | Malayalam |
    | ca | Catalan | mr | Marathi |
    | zh | Chinese | mn | Mongolian |
    | zh-CN | Chinese (Simplified) | ne | Nepali |
    | zh-HK | Chinese (Hong Kong) | no | Norwegian |
    | zh-TW | Chinese (Traditional) | pl | Polish |
    | hr | Croatian | pt | Portuguese |
    | cs | Czech | pt-BR | Portuguese (Brazil) |
    | da | Danish | pt-PT | Portuguese (Portugal) |
    | nl | Dutch | pa | Punjabi |
    | en | English | ro | Romanian |
    | en-AU | English (Australian) | ru | Russian |
    | en-GB | English (Great Britain) | sr | Serbian (Cyrillic) |
    | et | Estonian | sr-Latn | Serbian (Latin script) |
    | fa | Farsi | si | Sinhalese |
    | fi | Finnish | sk | Slovak |
    | fil | Filipino | sl | Slovenian |
    | fr | French | es | Spanish |
    | fr-CA | French (Canada) | es-419 | Spanish (Latin America) |
    | gl | Galician | sw | Swahili |
    | ka | Georgian | sv | Swedish |
    | de | German | ta | Tamil |
    | el | Greek | te | Telugu |
    | gu | Gujarati | th | Thai |
    | iw | Hebrew | tr | Turkish |
    | hi | Hindi | uk | Ukrainian |
    | hu | Hungarian | ur | Urdu |
    | is | Icelandic | uz | Uzbek |
    | id | Indonesian | vi | Vietnamese |
    | it | Italian | zu | Zulu |

    You can see what the map will look like in any of the languages listed above in this
    [sample
    application](https://developers.google.com/maps/documentation/javascript/demos/localization).


Can the Google Maps Platform be accessed over HTTPS (TLS)?

:
    All Google Maps Platform can and *should* be accessed over HTTPS. To future proof your
    applications, we strongly recommend that you use TLS 1.3 for HTTPS. Although older TLS versions
    are still supported, we advice against relying on the deprecated legacy TLS versions 1.0 and 1.1.

    The deprecated SSL protocol is no longer supported.

    For more information, see the
    [Google Maps Platform Root CA Migration FAQ](https://developers.google.com/maps/root-ca-faq) and the
    [Google Trust Services FAQ](https://pki.goog/faq).


How do I report a bug or request a new feature in Google Maps Platform?

:
    If you experience behavior that you believe may be a bug, begin by
    raising it in the [relevant forum](https://developers.google.com/maps/support.md.txt). This will
    allow other developers to validate the bug, and rule out any potential issues
    with your code.


    To request a feature, first raise it in the
    [relevant forum](https://developers.google.com/maps/support.md.txt) to confirm that a solution that
    meets your requirements is not already available.


    Once you have confirmed that you have identified a new bug, or that your
    requirements cannot be met by the existing functionality of Google Maps Platform
    products, report your bug or feature request using the
    [Google Maps Platform Issue Tracker](https://issuetracker.google.com/dashboard/76561).


    Before adding a bug or feature request to the Issue Tracker ,be sure to
    check that the bug or feature concerned has not already been added. If it has,
    you can star the issue to register your interest and be notified of updates.


How do Google Maps Platform APIs use site cookies?

:   Maps SDK for Android and Maps SDK for iOS use cookies subject to
    Google's [Privacy Policy](https://policies.google.com/privacy), such as calculating daily
    and 7-day active users and service abuse prevention. These cookies are not associated with any
    signed-in Google Account and are not logged with the rest of the information collected from the
    API calls.


I can't find the answer to my question. Who should I contact?

:   Google's Developer Relations team maintains a presence on [Stack Overflow](http://stackoverflow.com/) --- a
    collaboratively-edited question and answer site for programmers. It's a
    great place to ask technical questions about developing and maintaining
    Google Maps applications. More information about asking questions on Stack
    Overflow is available on the [Support](https://developers.google.com/maps/support.md.txt) page.


    For best results when requesting help, keep the following in mind:

    - Search the current discussions. Chances are someone else has experienced a similar issue and found a fix.
    - Submit a link to your site if possible. Only post code snippets if the code is not viewable online.
    - Provide all relevant information including browser versions, errors, and all other facts that may be useful in troubleshooting this problem.

## Errors and troubleshooting


What does this error mean?

:
    If you encounter an error while loading or running the Google Maps APIs, see the
    following links to find explanations for the error codes:

    - [Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/error-messages.md.txt)
    - [Maps Static API](https://developers.google.com/maps/documentation/maps-static/error-messages.md.txt)
    - [Maps Datasets API](https://developers.google.com/maps/documentation/datasets/handle-errors.md.txt)
    - [Street View Static API](https://developers.google.com/maps/documentation/streetview/error-messages.md.txt)
    - [Maps Embed API](https://developers.google.com/maps/documentation/embed/error-messages.md.txt)
    - [Elevation API](https://developers.google.com/maps/documentation/javascript/elevation.md.txt#ElevationStatus)
    - [Geocoding API](https://developers.google.com/maps/documentation/geocoding/requests-geocoding#StatusCodes)
    - [Geolocation API](https://developers.google.com/maps/documentation/geolocation/overview.md.txt#errors)
    - [Routes API](https://developers.google.com/maps/documentation/routes/handle-errors.md.txt)
    - [Roads API](https://developers.google.com/maps/documentation/roads/errors.md.txt)
    - [Time Zone API](https://developers.google.com/maps/documentation/timezone/requests-timezone.md.txt#TimeZoneResponse)
    - [Places API](https://developers.google.com/maps/documentation/places/web-service/search#PlaceSearchStatusCodes)


My maps appear darker than usual. What's happening?

:   Under certain circumstances, a darkened map, or 'negative' Street View image, watermarked with the text "for development purposes only",
    may be displayed. This behavior typically indicates issues with either an API key or billing. To use Google Maps Platform products,
    you must have a billing account and all requests must include a valid API key. The following flow will help troubleshoot this:

    #### Are you using an API key?

    #### I'm not sure. How can I check if I am using an API key?

    An API key is passed as the `key` parameter in the URL that is used to load the
    Maps JavaScript API. Here are a few options to check if you are using an API key:

    - Use the [Google Maps Platform API Checker](https://chrome.google.com/webstore/detail/google-maps-platform-api/mlikepnkghhlnkgeejmlkfeheihlehne) Chrome extension. This allows you to determine if your website is properly implementing Google's licensed Maps APIs.
    - If you are using a library or plugin to load the Maps JavaScript API, check the settings for that library and look for an API key option.
    - Check [errors in your browser](https://developers.google.com/maps/documentation/javascript/error-messages.md.txt#checking-errors). If you see the following messages, you are not using your API key correctly:
      - Google Maps JavaScript API warning: [NoApiKeys](https://developers.google.com/maps/documentation/javascript/error-messages.md.txt#no-api-keys)
      - Google Maps JavaScript API error: [MissingKeyMapError](https://developers.google.com/maps/documentation/javascript/error-messages.md.txt#missing-key-map-error)

    #### For web developers:

    - If you have access to the source code of your application, look for the `<script>` tag which is used to load the Maps JavaScript API. When loading the Maps JavaScript API, substitute `YOUR_API_KEY` in the code below with your API key.

      ```html
        <script async defer
          src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
        </script>
      ```
    - Check the network traffic generated by your website in the browser. In Chrome, this can be viewed using the [DevTools](https://developers.google.com/web/tools/chrome-devtools) **Network** tab. Here you will see the network requests made by your website. Requests made using the Maps JavaScript API will be under the path `maps/api/js`. Here you can confirm if the requests are using the `key` parameter. It may be helpful to [filter your network traffic](https://developer.chrome.com/docs/devtools/network/reference#filter) by `maps/api/js` when viewing the **Network** tab.

    #### No, I am not using an API key.

    To get an API key, click the button below. If you do not see a guided setup, follow the
    full instructions at [Get Started with Google Maps
    Platform](https://developers.google.com/maps/get-started#quickstart).


    [Get Started](https://developers.google.com/maps/get-started.md.txt)

    #### Yes, I am using an API key.

    Great! Let's move on and check if a billing account is attached to your project.

    #### Is a billing account attached to your project?

    #### I'm not sure. How can I check if a billing account is attached to my project?

    Go to the [Billing page](https://console.cloud.google.com/project/_/billing/enable?utm_source=Docs_BillingNudge) in the Google Cloud console and select the project under which your API key was created.
    To confirm the key is associated with the project:

    1. Go to the **Credentials** section, which can be accessed from the left side bar under **Google Maps Platform \> Credentials**.
    2. Check that the API key you currently use on your website is listed. If that's not the case, switch to a different project, and check the credentials there.
    3. If you cannot locate the project for your API key, you may have lost access to this project. Ask others in your organization for help. If the original project cannot be located, you should:
       1. Create a new project. This can be done by selecting **New Project** from the projects list, or by selecting **Create Project** via the [Resource Manager page](https://console.cloud.google.com/cloud-resource-manager).
       2. Create a new API key. This can be done on the **Credentials** page. Once there click **Create credentials** and then select **API key**.


    Once you have located your project in the Cloud console,
    check if a billing account is attached by navigating to the [Billing](https://console.cloud.google.com/project/_/billing) section in the left side menu.

    #### No, a billing account is not attached to my project.

    Go to the [Enable Billing](https://console.cloud.google.com/project/_/billing/enable?utm_source=Docs_BillingNudge) page in the Cloud console
    and add a billing account to your project. For additional information, see
    [Get Started with Google Maps Platform](https://developers.google.com/maps/get-started.md.txt).

    #### Yes, a billing account is attached to my project.

    Great! Let's make sure the provided billing method is valid.

    #### Is the provided billing method no longer valid (for example, an expired credit card)?

    You [can add, remove, or update a payment method](https://cloud.google.com/billing/docs/how-to/payment-methods) in the Cloud console.

    #### Is there an exceeded self-imposed daily limit on the API?

    If you have set a daily limit on any of your APIs, which is common to prevent unexpected increases,
    you can resolve this by [increasing your daily limit](https://developers.google.com/maps/faq.md.txt#usage_cap).

    You can check your daily limits by going to the
    [APIs \& Services Dashboard](https://console.cloud.google.com/project/_/apiui/apis/enabled?utm_source=Docs_EnabledAPIsView) in the
    Cloud console. Once there:

    1. Select a project if prompted.
    2. Select an API from the list, then click the **Quotas** tab.

    #### Does your API key have an IP addresses restriction?

    API keys with an **IP addresses** restriction can only be used with web services that are
    intended for use from the server side (such as the
    [Geocoding API](https://developers.google.com/maps/documentation/geocoding/start)
    and other [Web Service APIs](https://developers.google.com/maps/apis-by-platform.md.txt)).
    Most of these web services have equivalent services within the Maps JavaScript API (for example, see the
    [Geocoding Service](https://developers.google.com/maps/documentation/javascript/geocoding.md.txt)).
    To use the Maps JavaScript API client side services, you will need to create a separate API key which
    can be secured with an **HTTP referrers** restriction (see
    [Get, add, and restrict an API key](https://developers.google.com/maps/get-started.md.txt#api-key)).


How do I resolve the error codes: `OVER_DAILY_LIMIT` or `OVER_QUERY_LIMIT`?
:
    These error codes can be returned for any of the following reasons:

    - An API key is missing from the request.
    - The provided API key is invalid.
    - The project does not have a billing account attached.
    - A self-imposed [usage cap](https://developers.google.com/maps/faq.md.txt#usage_cap) has been exceeded.
    - The provided method of payment is no longer valid (for example, a credit card has expired).
    - You have [exceeded the quota limits](https://developers.google.com/maps/faq.md.txt#usage_exceed) for a given API.


    To use Google Maps Platform products, you must have a billing account, and all
    requests must include a valid API key. To fix this, take the following steps:

    - [Set up a billing account](https://developers.google.com/maps/faq.md.txt#setup_billing).
    - [Get a new API key](https://developers.google.com/maps/faq.md.txt#new-key).
    - [Adjust your
      usage cap](https://developers.google.com/maps/billing-and-pricing/manage-costs#set_a_quota_limit) to increase your daily quota limit (if applicable).


How do I resolve the error codes: `kGMSPlacesRateLimitExceeded` or `9005 PLACES_API_RATE_LIMIT_EXCEEDED`?
:
    If you are seeing `kGMSPlacesRateLimitExceeded` or `9005 PLACES_API_RATE_LIMIT_EXCEEDED`,
    you may be using a deprecated version of the Places SDK for Android or Places SDK for iOS.
    Learn more and find the new SDKs at <https://goo.gle/places-sdk-deprecation>.


How do I resolve the error: "This IP, site or mobile application is not
authorized to use this API key."?

:   There are various scenarios which may cause this error:

    - You've enabled IP address (server) restrictions on your API key, and an unauthorized IP address is attempting a request.
    - You've enabled HTTP referrer (website) restrictions on your API key, and an unauthorized referrer is attempting a request.
    - You've restricted usage to your Android apps by setting a package name and fingerprint, and an unauthorized Android app is attempting a request.
    - You've restricted requests from iOS apps by specifying bundle identifiers and an unrecognized iOS app is attempting to send a request.
    - It used to be possible to get this error if you used any of the [web service APIs](https://developers.google.com/maps/apis-by-platform.md.txt#web_service_apis), with an API key with HTTP referer restrictions. Requests to those APIs should be identified with an API key with **IP address** restrictions. [Switch your key restriction type
      from an HTTP referer restriction to an IP address restriction](https://developers.google.com/maps/faq#switch-key-type). For more information about restricting API keys, see [API Key Best Practices](https://developers.google.com/maps/api-key-best-practices).

    **View and Edit your API Key Credentials**

    To view your API keys and manage any restrictions, do the following:

    1. Go to the [Credentials page](https://console.cloud.google.com/project/_/google/maps-apis/credentials?utm_source=Docs_Credentials) of the Cloud console.
    2. Select the project that contains the API key you want to review.
    3. To view credential details, including any restrictions set for the key, from the list of API keys, click the name of the key.
    4. The full credentials of the selected API key are displayed, including any restrictions set up for the key. From here, the restrictions can be changed, deleted, or updated as needed.


How do I resolve the error: "API keys with referer restrictions cannot be used with this API."?

:   You are using any of the
    [web service APIs](https://developers.google.com/maps/apis-by-platform.md.txt#web_service_apis)
    with an API key restricted to an HTTP referer. For security reasons, web service
    APIs need to use API keys restricted to **IP addresses** .
    [Switch your key restriction type from an HTTP referer
    restriction to an IP address restriction](https://developers.google.com/maps/faq#switch-key-type), or create a new API key if your key
    is already used with the Maps JavaScript API.

## Google Maps Platform Services


I need to convert addresses to latitude/longitude pairs. Can I do that with
Google Maps Platform?

:
    Yes, this process is called "geocoding." The Maps JavaScript API includes
    a class for performing a geocoding service. The class is:
    [google.maps.Geocoder](https://developers.google.com/maps/documentation/javascript/geocoding.md.txt).


    Alternatively, Google also provides the
    [Geocoding API](https://developers.google.com/maps/documentation/geocoding), which offers a REST interface that can
    respond in JSON and XML formats.


Which countries is geocoding available in?

:
    To see countries supported by Google Maps Platform geocoders,
    consult the [Google Maps coverage data](https://developers.google.com/maps/coverage.md.txt).


    The accuracy of geocoded locations may vary per country, so you should
    consider using the returned
    [location_type](https://developers.google.com/maps/documentation/javascript/reference.md.txt#GeocoderGeometry) field to determine if a good enough match has been found
    for the purposes of your application. The availability of
    geocoding data depends on our contracts with data providers, so it is subject
    to change.


Why do Google Maps Platform Geocoders provide different locations than Google
Maps?

:
    The API geocoder and Google Maps geocoder sometimes use different data sets
    (depending on the country). The API geocoder occasionally gets updated with
    new data, so you can expect to see results changing or improving over time.


How should I format my geocoder queries to maximise the number of successful
requests?

:
    The geocoder is designed to map street addresses to geographical coordinates.
    We therefore recommend that you format geocoder requests in accordance with
    the following guidelines to maximize the likelihood of a successful query:

    - Specify addresses in accordance with the format used by the national postal service of the country concerned.
    - don't specify additional address elements such as business names, unit numbers, floor numbers, or suite numbers that are not included in the address as defined by the postal service of the country concerned. Doing so may result in responses with `ZERO_RESULTS`.
    - Format plus codes as shown here (plus signs are url-escaped to `%2B` and spaces are url-escaped to `%20`):
      - **global code** is a 4 character area code and 6 character or longer local code (849VCWC8+R9 is `849VCWC8%2BR9`).
      - **compound code** is a 6 character or longer local code with an explicit location (CWC8+R9 Mountain View, CA, USA is `CWC8%2BR9%20Mountain%20View%20CA%20USA`).
    - Use the street number of a premise in preference to the building name where possible.
    - Use street number addressing in preference to specifying cross streets where possible.
    - don't provide 'hints' such as nearby landmarks.


How should I format a US address on a numbered highway for geocoding?

:
    The Google Maps Platform geocoder requires that US numbered highways be
    specified in addresses as follows:

    - **County Roads:** `"Co Road *NNN*"` where *NNN* is the road number. eg. `"Co Road 82"`
    - **State Highways:** `"*State NNN*"` where *State* is the full name of the state and *NNN* is the highway number. eg. `"California 82"`
    - **US Highways:** `"US *NNN*"` where *NNN* is the highway number. eg. `"US 101"`
    - **US Interstates:** `"Interstate *NNN*"` where *NNN* is the interstate number. eg. `"Interstate 280"`


When should I use an API geocoder class and when should I use the HTTP
Geocoding Service?

:
    See the document: [Geocoding
    Strategies](https://developers.google.com/maps/documentation/geocoding/geocoding-strategies), which details the advantages and limitations of different geocoding strategies.


How do I provide driving directions with Google Maps Platform?

:   The [Compute Routes service](https://developers.google.com/maps/documentation/routes/compute_route_directions.md.txt)
    of the [Routes API](https://developers.google.com/maps/documentation/routes)
    lets you provide driving directions for single and multi-leg journeys. Routing
    options help you shape directions with a travel mode (driving), a single or a
    set of routes, and restrictions (no toll roads).
    These services are available in the following forms:

    **HTTP request/response interface** (used in mobile and other applications)
    is compatible with Maps SDK for Android and with other Google Maps web services.


In which countries are driving directions available?

:
    To see countries supported by driving directions in Google Maps Platform products,
    consult the [Google Maps coverage data](https://developers.google.com/maps/coverage.md.txt). The
    availability of driving directions data depends on our contracts with data
    providers, and is subject to change.


In which countries are transit directions available?

:   The
    [Routes API](https://developers.google.com/maps/documentation/routes) supports
    all [Google Transit partners](https://developers.google.com/transit),
    except the Indian Railway Catering and Tourism Corporation and those in Japan.

What is the maximum number of markers or path
vertices supported by the Maps Static API?

:   There is no limit to the number of markers or path vertices supported by the
    Maps Static API. When using custom icons, up to five unique icons can
    be specified per request, but each can be used multiple times within the
    map.

    Note that Maps Static API URLs can contain a maximum of
    approximately 8,192 characters which constrains the number of markers and
    path vertices that can be specified based on the number of decimal places
    used when specifying each latitude/longitude pair. For information on how the
    number of decimal places used relates to the accuracy on the Earth see the
    Wikipedia article on [Decimal Degrees](http://en.wikipedia.org/wiki/Decimal_degrees).

Why can't I access Google Maps Platform products for certain countries?

:   Maps APIs may not be used in [Prohibited Territories](https://cloud.google.com/maps-platform/terms/maps-prohibited-territories).
    Refer also to the [Terms of Service](https://cloud.google.com/maps-platform/terms#3.-license.).

How do I report a problem on the Google basemap?
:
    [Send feedback](https://support.google.com/maps/answer/3094045) through Google Maps for wrong or missing map information such as:

    - Wrong addresses or marker locations
    - Incorrect road names
    - Wrong information about one-way and two-way roads
    - Incorrectly drawn road
    - Closed roads
    - Roads that don't exist


    For correction of a place or business listing, [suggest an edit](https://support.google.com/maps/answer/7084895).

    If Maps content needs to be removed for legal reasons, submit a [legal request.](https://support.google.com/legal/troubleshooter/1114905#ts=9723198)

    For critical or time-sensitive requests, file a [support case](https://developers.google.com/maps/support.md.txt#creating-a-support-case) with specific details on what needs to be fixed.

How is performance monitored for the services used with Maps JavaScript API? Some client-side features are instrumented to report success or failure for the purpose of calculating the SLO (Service Level Objective).
This information is sent to Google at `maps.googleapis.com/maps_api_js_slo/log` in calls that log SLO information.
This information includes success status, latency, and version/channel of the Maps JavaScript API in use.
The calls may be batched for performance.
You may need to allow `maps.googleapis.com` in your
[Content Security Policy](https://developers.google.com/maps/documentation/javascript/content-security-policy.md.txt) so that
these calls are not blocked at browser-level.
For example: `Content-Security-Policy: default-src 'self' maps.googleapis.com;` with HTTP headers, or
`<meta http-equiv="Content-Security-Policy" content="default-src 'self' maps.googleapis.com;">` with HTML Meta Tags.

## Maps JavaScript API

How long will the Maps JavaScript API work after it has been loaded?

:   You need to refresh the page that loads the Maps JavaScript API at least
    once every 5 days.

## Google Maps SDK for iOS


How do I resolve the error: `kGMSPlacesRateLimitExceeded`?
:
    If you are seeing this error, you may be using a deprecated version of the
    Places SDK for iOS. Version 2.7.0 of the Places SDK for iOS has
    been turned off, and is no longer available. Update your app to use
    the latest version as soon as possible. See the [migration guide](https://developers.google.com/maps/documentation/places/ios-sdk/client-migration)
    for details.


I'm getting crashes when debugging with an iOS 8.x device. What should I do?

:   If you experience issues when debugging with devices running iOS 8.x, follow
    these steps to disable GPU frame capture in the XCode scheme you are running:

    1. In XCode, choose **Product** , **Scheme** , **Manage Schemes**.
    2. Select a scheme and choose **Edit...**.
    3. Set the **GPU Frame Capture** option to **Disabled**. Note that this option may not be present for all devices.

    ![Xcode GPU Frame Capture option on the Generic iOS device page](https://developers.google.com/static/maps/images/GPU-frame-option.png)

What's the impact of rounded and wider screens on the Google Maps iOS SDK?

:   Beginning with the [iPhone X](https://www.apple.com/iphone-x/),
    iPhones have a screen shape featuring rounded corners, a notch at the top for the device's
    sensor housing, and an indicator at the bottom of the screen for accessing the
    Home screen. As of iOS 11.0 SDK, Apple added the [Safe Area API](https://developer.apple.com/documentation/uikit/uiview/positioning_conten
    t_relative_to_the_safe_area) allowing developers to position
    elements in an area which is safe from being clipped by the new screen
    shape.

    The Google Maps iOS SDK has many visual elements and controls, such as an
    indoor picker and the report a problem link. With version 2.4, these visual
    elements and controls could be clipped by the new screen shape. In landscape
    mode, the indoor floor picker may be clipped by either the notch or the home
    button indicator.

    With the Google Maps iOS SDK 2.5 release these layout issues are fixed
    automatically. When your app is used on an iPhone X or later, the padding on [GMSMapView](https://developers.google.com/maps/documentation/ios-
    sdk/reference/interface_g_m_s_map_view) and [GMSPanoramaView](https://developers.google.com/maps/documentation/ios-
    sdk/reference/interface_g_m_s_panorama_view) are increased
    so that the visual elements aren't clipped.

    By default, we will always include your padding. The Google Maps iOS SDK
    assumes that padding is intended to pad from within the safe area. If you
    design your interface with the assumption that everything is positioned within
    the safe area, this will work without any extra effort.

    If you have designed an interface which doesn't work with our default
    adjustment, we have introduced a new property to GMSMapView, called [paddingAdjustmentBehavior](https://developers.google.com/maps/documentation/ios-
    sdk/reference/interface_g_m_s_map_view#a426424d1b8b139a7fde2681790a657ad). Use GMSMapView to pick from
    one of three padding adjustments behaviors: 'Always' (default), 'Automatic',
    and 'Never'.

    If GMSMapView is set to use the 'Always' padding behavior, it will always
    add the safe area insets to the padding. This setting lets you design your
    interface with the assumption that all placement is from the edges of the safe
    area. This is the default value.

    If GMSMapView is set to use the 'Automatic' padding behavior, it will always
    choose the larger of padding or safe area inset. This setting lets you add
    padding from the screen edge while making sure that all elements stay
    within the safe area.

    If GMSMapView is set to use the 'Never' padding behavior, it will never add
    the safe area insets to the padding. This is the behavior prior to the 2.5
    release and may be useful if your padding already takes into consideration the
    safe area, or if our other behaviors don't act well with your interface.
    It is your responsibility to make sure that the Google logo and copyright notices are always visible, as specified in the
    [Google Maps Platform
    Terms of Service](https://cloud.google.com/maps-platform/terms).

    In contrast, GMSPanoramaView doesn't have an optional padding property. This
    means that there is no padding to adjust and GMSPanoramaView will always apply
    any necessary padding so that all visual elements are within the safe
    area.

## Google Maps SDK for Android


How do I resolve the error: `9005 PLACES_API_RATE_LIMIT_EXCEEDED`?
:
    If you are seeing this error, you may be using a deprecated version of the
    Places SDK for Android. The Google Play services version of the
    Places SDK for Android has been turned off, and is no longer available.
    Update your app to use the latest version as soon as possible. See the
    [migration guide](https://developers.google.com/maps/documentation/places/android-sdk/client-migration) for details.


My app only shows blank grey tiles instead of a map. How can I resolve this?

:
    A common reason that a blank grey tiles are shown instead of a map is authentication issues. You can follow the steps below to troubleshoot those issues by using adb logcat.

    1. Make sure you have adb installed. If not, you can follow the guide [Android adb guide](https://developer.android.com/studio/command-line/adb).
    2. Install the app that shows the problem on a device or an Android emulator. If you use Android emulator, make sure the emulator settings has Play Store included.
    3. In Android Studio terminal, run `adb logcat -e "Google Maps Android API"`. This will only print lines where the log message matches "Google Maps Android API" (Optionally, you can output the log to a text file by appending: \> logcat.txt)
    4. Reproduce the issue on your device and check for common errors such as:
       - The wrong/unintended API Key is being referenced in Manifest.
       - Billing isn't enabled on Project.
       - The SDK isn't enabled on project APIs.
       - The incorrect SHA-1 fingerprint is added to the API Key restrictions.
       - The [Google Play Service dependencies](https://developers.google.com/android/guides/setup.md.txt#add_google_play_services_to_your_project) is not included in the ` build.gradle` file.


Is hardware acceleration required for the Google Maps SDK for Android?
:
    Yes, `hardwareAccelerated` must be set to `true` in your app's
    `AndroidManifest.xml` file in order to prevent issues with map loading.


    For more information, see the
    [Hardware acceleration](https://developer.android.com/topic/performance/hardware-accel)
    page in the Android developer documentation.

## URL signing

Can I sign URLs using JavaScript?

:   We strongly recommend against signing URLs using JavaScript as this would
    expose your URL signing secret to end users. Therefore signatures should
    only be generated by server side components.

Why am I receiving a HTTP 403 Forbidden response to my
Maps API web service requests?

:   An HTTP 403 response indicates a permission issue, likely because the
    signature couldn't be verified for this request. This could be because:

    1. A signature has been specified but is incorrect for this request.
    2. The request specifies a Google Maps Platform Premium Plan an API key but does not specify a signature, and the service being called requires that requests made using an API key include a valid signature.
    3. A signature has been specified but the associated Google Maps Platform Premium Plan API key has not been specified.