# Google2DImageryProvider

#### new Cesium.Google2DImageryProvider(options)
engine/Source/Scene/Google2DImageryProvider.js 68

This object is normally not instantiated directly, use `Google2DImageryProvider.fromIonAssetId` or `Google2DImageryProvider.fromUrl`.
Provides 2D image tiles from Google 2D Tiles. Google 2D Tiles can only be used with the Google geocoder.

Name | Type | Description
--- | --- | ---
`options` | Google2DImageryProvider.ConstructorOptions | Object describing initialization options

##### Examples:

    // Google 2D imagery provider
    const googleTilesProvider = Cesium.Google2DImageryProvider.fromIonAssetId({
        assetId: 3830184
    });

    // Use your own Google api key
    Cesium.GoogleMaps.defaultApiKey = "your-api-key";

    const googleTilesProvider = Cesium.Google2DImageryProvider.fromUrl({
        mapType: "SATELLITE"
    });

##### See:

- https://developers.google.com/maps/documentation/tile/2d-tiles-overview
- https://developers.google.com/maps/documentation/tile/session_tokens
- IETF Language Tags
- Common Locale Data Repository region identifiers

### Members

#### readonly credit : Credit
engine/Source/Scene/Google2DImageryProvider.js 256

Gets the credit to display when this imagery provider is active. Typically this is used to credit the source of the imagery.

#### readonly errorEvent : Event
engine/Source/Scene/Google2DImageryProvider.js 243

Gets an event that is raised when the imagery provider encounters an asynchronous error. By subscribing to the event, you will be notified of the error and can potentially recover from it. Event listeners are passed an instance of `TileProviderError`.

#### readonly hasAlphaChannel : boolean
engine/Source/Scene/Google2DImageryProvider.js 284

Gets a value indicating whether or not the images provided by this imagery provider include an alpha channel. If this property is false, an alpha channel, if present, will be ignored. If this property is true, any images without an alpha channel will be treated as if their alpha is 1.0 everywhere. When this property is false, memory usage and texture upload time are reduced.

#### readonly maximumLevel : number|undefined
engine/Source/Scene/Google2DImageryProvider.js 187

Gets the maximum level-of-detail that can be requested.

#### readonly minimumLevel : number
engine/Source/Scene/Google2DImageryProvider.js 203

Gets the minimum level-of-detail that can be requested. Generally, a minimum level should only be used when the rectangle of the imagery is small enough that the number of tiles at the minimum level is small. An imagery provider with more than a few tiles at the minimum level will lead to rendering problems.

#### readonly proxy : Proxy
engine/Source/Scene/Google2DImageryProvider.js 268

Gets the proxy used by this provider.

#### readonly rectangle : Rectangle
engine/Source/Scene/Google2DImageryProvider.js 151

Gets the rectangle, in radians, of the imagery provided by the instance.

#### readonly tileDiscardPolicy : TileDiscardPolicy
engine/Source/Scene/Google2DImageryProvider.js 229

Gets the tile discard policy. If not undefined, the discard policy is responsible for filtering out "missing" tiles via its shouldDiscardImage function. If this function returns undefined, no tiles are filtered.

#### readonly tileHeight : number
engine/Source/Scene/Google2DImageryProvider.js 175

Gets the height of each tile, in pixels.

#### readonly tileWidth : number
engine/Source/Scene/Google2DImageryProvider.js 163

Gets the width of each tile, in pixels.

#### readonly tilingScheme : TilingScheme
engine/Source/Scene/Google2DImageryProvider.js 215

Gets the tiling scheme used by the provider.

#### readonly url : string
engine/Source/Scene/Google2DImageryProvider.js 139

Gets the URL of the Google 2D Imagery server.

### Methods

#### static Cesium.Google2DImageryProvider.fromIonAssetId(options) → Promise.<Google2DImageryProvider>
engine/Source/Scene/Google2DImageryProvider.js 332

Creates an `ImageryProvider` which provides 2D global tiled imagery from Google 2D Tiles, streamed using the Cesium ion REST API.

Name | Type | Description
--- | --- | ---
`options` | object | Object with the following properties:
Name | Type | Default | Description
--- | --- | --- | ---
`assetId` | string |  | The Cesium ion asset id.
`mapType` | "satellite" | "terrain" | "roadmap" | `"satellite"` | optional The map type of the Google map imagery. Valid options are satellite, terrain, and roadmap. If overlayLayerType is set, mapType is ignored and a transparent overlay is returned. If overlayMapType is undefined, then a basemap of mapType is returned. layerRoadmap overlayLayerType is included in terrain and roadmap mapTypes.
`language` | string | `"en_US"` | optional an IETF language tag that specifies the language used to display information on the tiles
`region` | string | `"US"` | optional A Common Locale Data Repository region identifier (two uppercase letters) that represents the physical location of the user.
`overlayLayerType` | "layerRoadmap" | "layerStreetview" | "layerTraffic" |  | optional Returns a transparent overlay map with the specified layerType. If no value is provided, a basemap of mapType is returned. Use multiple instances of Google2DImageryProvider to add multiple Google Maps overlays to a scene. layerRoadmap is included in terrain and roadmap mapTypes, so adding as overlay to terrain or roadmap has no effect.
`styles` | object |  | optional An array of JSON style objects that specify the appearance and detail level of map features such as roads, parks, and built-up areas. Styling is used to customize the standard Google base map. The styles parameter is valid only if the mapType is roadmap. For the complete style syntax, see the (Google Style Reference).
`ellipsoid` | Ellipsoid | `Ellipsoid.default` | optional The ellipsoid. If not specified, the default ellipsoid is used.
`minimumLevel` | number | `0` | optional The minimum level-of-detail supported by the imagery provider. Take care when specifying this that the number of tiles at the minimum level is small, such as four or less. A larger number is likely to result in rendering problems.
`maximumLevel` | number | `22` | optional The maximum level-of-detail supported by the imagery provider.
`rectangle` | Rectangle | `Rectangle.MAX_VALUE` | optional The rectangle, in radians, covered by the image.
`credit` | Credit | string |  | optional A credit for the data source, which is displayed on the canvas.

##### Returns:

A promise that resolves to the created Google2DImageryProvider.

##### Examples:

    // Google 2D imagery provider
    const googleTilesProvider = Cesium.Google2DImageryProvider.fromIonAssetId({
        assetId: 3830184
    });

    // Google 2D roadmap overlay with custom styles
    const googleTilesProvider = Cesium.Google2DImageryProvider.fromIonAssetId({
        assetId: 3830184,
        overlayLayerType: "layerRoadmap",
        styles: [
            {
                stylers: [{ hue: "#00ffe6" }, { saturation: -20 }],
            },
            {
                featureType: "road",
                elementType: "geometry",
                stylers: [{ lightness: 100 }, { visibility: "simplified" }],
            },
        ],
    });

#### static Cesium.Google2DImageryProvider.fromUrl(options) → Promise.<Google2DImageryProvider>
engine/Source/Scene/Google2DImageryProvider.js 422

Creates an `ImageryProvider` which provides 2D global tiled imagery from Google 2D Tiles.

Name | Type | Description
--- | --- | ---
`options` | object | Object with the following properties:
Name | Type | Default | Description
--- | --- | --- | ---
`key` | string | `GoogleMaps.defaultApiKey` | optional Your API key to access Google 2D Tiles. See https://developers.google.com/maps/documentation/javascript/get-api-key for instructions on how to create your own key.
`mapType` | "satellite" | "terrain" | "roadmap" | `"satellite"` | optional The map type of the Google map imagery. Valid options are satellite, terrain, and roadmap. If overlayLayerType is set, mapType is ignored and a transparent overlay is returned. If overlayMapType is undefined, then a basemap of mapType is returned. layerRoadmap overlayLayerType is included in terrain and roadmap mapTypes.
`language` | string | `"en_US"` | optional an IETF language tag that specifies the language used to display information on the tiles
`region` | string | `"US"` | optional A Common Locale Data Repository region identifier (two uppercase letters) that represents the physical location of the user.
`overlayLayerType` | "layerRoadmap" | "layerStreetview" | "layerTraffic" |  | optional Returns a transparent overlay map with the specified layerType. If no value is provided, a basemap of mapType is returned. Use multiple instances of Google2DImageryProvider to add multiple Google Maps overlays to a scene. layerRoadmap is included in terrain and roadmap mapTypes, so adding as overlay to terrain or roadmap has no effect.
`styles` | object |  | optional An array of JSON style objects that specify the appearance and detail level of map features such as roads, parks, and built-up areas. Styling is used to customize the standard Google base map. The styles parameter is valid only if the mapType is roadmap. For the complete style syntax, see the (Google Style Reference).
`ellipsoid` | Ellipsoid | `Ellipsoid.default` | optional The ellipsoid. If not specified, the default ellipsoid is used.
`minimumLevel` | number | `0` | optional The minimum level-of-detail supported by the imagery provider. Take care when specifying this that the number of tiles at the minimum level is small, such as four or less. A larger number is likely to result in rendering problems.
`maximumLevel` | number | `22` | optional The maximum level-of-detail supported by the imagery provider.
`rectangle` | Rectangle | `Rectangle.MAX_VALUE` | optional The rectangle, in radians, covered by the image.
`credit` | Credit | string |  | optional A credit for the data source, which is displayed on the canvas.

##### Returns:

A promise that resolves to the created Google2DImageryProvider.

##### Examples:

    // Use your own Google api key
    Cesium.GoogleMaps.defaultApiKey = "your-api-key";

    const googleTilesProvider = Cesium.Google2DImageryProvider.fromUrl({
        mapType: "satellite"
    });

    // Google 2D roadmap overlay with custom styles
    Cesium.GoogleMaps.defaultApiKey = "your-api-key";

    const googleTilesProvider = Cesium.Google2DImageryProvider.fromUrl({
        overlayLayerType: "layerRoadmap",
        styles: [
            {
                stylers: [{ hue: "#00ffe6" }, { saturation: -20 }],
            },
            {
                featureType: "road",
                elementType: "geometry",
                stylers: [{ lightness: 100 }, { visibility: "simplified" }],
            },
        ],
    });

#### getTileCredits(x, y, level) → Array.<Credit>|undefined
engine/Source/Scene/Google2DImageryProvider.js 458

Gets the credits to be displayed when a given tile is displayed.

Name | Type | Description
--- | --- | ---
`x` | number | The tile X coordinate.
`y` | number | The tile Y coordinate.
`level` | number | The tile level;

##### Returns:

The credits to be displayed when the tile is displayed.

#### pickFeatures(x, y, level, longitude, latitude) → undefined
engine/Source/Scene/Google2DImageryProvider.js 517

Picking features is not currently supported by this imagery provider, so this function simply returns undefined.

Name | Type | Description
--- | --- | ---
`x` | number | The tile X coordinate.
`y` | number | The tile Y coordinate.
`level` | number | The tile level.
`longitude` | number | The longitude at which to pick features.
`latitude` | number | The latitude at which to pick features.

##### Returns:

Undefined since picking is not supported.

#### requestImage(x, y, level, request) → Promise.<ImageryTypes>|undefined
engine/Source/Scene/Google2DImageryProvider.js 483

Requests the image for a given tile.

Name | Type | Description
--- | --- | ---
`x` | number | The tile X coordinate.
`y` | number | The tile Y coordinate.
`level` | number | The tile level.
`request` | Request | optional The request object. Intended for internal use only.

##### Returns:

A promise for the image that will resolve when the image is available, or undefined if there are too many active requests to the server, and the request should be retried later.

### Type Definitions

#### Cesium.Google2DImageryProvider.ConstructorOptions
engine/Source/Scene/Google2DImageryProvider.js 14

Initialization options for the Google2DImageryProvider constructor

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`key` | string |  |  | The Google api key to send with tile requests.
`session` | string |  |  | The Google session token that tracks the current state of your map and viewport.
`url` | string | Resource | IonResource |  |  | The Google 2D maps endpoint.
`tileWidth` | string |  |  | The width of each tile in pixels.
`tileHeight` | string |  |  | The height of each tile in pixels.
`ellipsoid` | Ellipsoid | <optional> | Ellipsoid.default | The ellipsoid. If not specified, the default ellipsoid is used.
`minimumLevel` | number | <optional> | 0 | The minimum level-of-detail supported by the imagery provider. Take care when specifying this that the number of tiles at the minimum level is small, such as four or less. A larger number is likely to result in rendering problems.
`maximumLevel` | number | <optional> | 22 | The maximum level-of-detail supported by the imagery provider.
`rectangle` | Rectangle | <optional> | Rectangle.MAX_VALUE | The rectangle, in radians, covered by the image.

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.