<iframe src="https://developers.devsite.google/frame/maps/documentation/javascript/reference/street-view_912c52471700bf4000995996c414445ced01dff141de4ba6ed4e408895b0466e.frame" class="framebox inherit-locale redirect-iframe" allow="clipboard-write https://developers.devsite.google" allowfullscreen is-upgraded></iframe>

## [StreetViewPanorama](https://developers.google.com/maps/documentation/javascript/reference/street-view.md.txt#StreetViewPanorama)
class


class
`google.maps.StreetViewPanorama`
extends `MVCObject`

library `"streetView"`

Displays the panorama for a given `LatLng` or panorama ID. A `StreetViewPanorama` object provides a Street View "viewer" which can be stand-alone within a separate `<div>` or bound to a `Map`.

```javascript
const {StreetViewPanorama} = await google.maps.importLibrary("streetView");
```

| ### Constructor ||
|---|---|
| `StreetViewPanorama` | `StreetViewPanorama(container[, opts])` **Parameters:** - `container: HTMLElement` - `opts: StreetViewPanoramaOptions optional` Creates a panorama with the passed `StreetViewPanoramaOptions`. |

| ### Properties ||
|---|---|
| `controls` | **Type:** `Array<MVCArray<HTMLElement>>` Additional controls to attach to the panorama. To add a control to the panorama, add the control's `<div>` to the `MVCArray` corresponding to the `ControlPosition` where it should be rendered. |

| ### Methods ||
|---|---|
| `focus` | `focus()` **Parameters:** None **Return Value:** None Sets focus on this `StreetViewPanorama`. You may wish to consider using this method along with a `visible_changed` event to make sure that `StreetViewPanorama` is visible before setting focus on it. A `StreetViewPanorama` that is not visible cannot be focused. |
| `getLinks` | `getLinks()` **Parameters:** None **Return Value:** `Array<StreetViewLink optional>|null` Returns the set of navigation links for the Street View panorama. |
| `getLocation` | `getLocation()` **Parameters:** None **Return Value:** `StreetViewLocation` Returns the StreetViewLocation of the current panorama. |
| `getMotionTracking` | `getMotionTracking()` **Parameters:** None **Return Value:** `boolean` Returns the state of motion tracker. If `true` when the user physically moves the device and the browser supports it, the Street View Panorama tracks the physical movements. |
| `getPano` | `getPano()` **Parameters:** None **Return Value:** `string` Returns the current panorama ID for the Street View panorama. This id is stable within the browser's current session only. |
| `getPhotographerPov` | `getPhotographerPov()` **Parameters:** None **Return Value:** `StreetViewPov` Returns the heading and pitch of the photographer when this panorama was taken. For Street View panoramas on the road, this also reveals in which direction the car was travelling. This data is available after the `pano_changed` event. |
| `getPosition` | `getPosition()` **Parameters:** None **Return Value:** `LatLng|null` Returns the current `LatLng` position for the Street View panorama. |
| `getPov` | `getPov()` **Parameters:** None **Return Value:** `StreetViewPov` Returns the current point of view for the Street View panorama. |
| `getStatus` | `getStatus()` **Parameters:** None **Return Value:** `StreetViewStatus` Returns the status of the panorama on completion of the `setPosition()` or `setPano()` request. |
| `getVisible` | `getVisible()` **Parameters:** None **Return Value:** `boolean` Returns `true` if the panorama is visible. It does not specify whether Street View imagery is available at the specified position. |
| `getZoom` | `getZoom()` **Parameters:** None **Return Value:** `number` Returns the zoom level of the panorama. Fully zoomed-out is level 0, where the field of view is 180 degrees. Zooming in increases the zoom level. |
| `registerPanoProvider` | `registerPanoProvider(provider[, opt_options])` **Parameters:** - `provider: function(string): (StreetViewPanoramaData optional)` - `opt_options: PanoProviderOptions optional` **Return Value:** None Set the custom panorama provider called on pano change to load custom panoramas. |
| `setLinks` | `setLinks(links)` **Parameters:** - `links: Array<StreetViewLink>` **Return Value:** None Sets the set of navigation links for the Street View panorama. |
| `setMotionTracking` | `setMotionTracking(motionTracking)` **Parameters:** - `motionTracking: boolean` **Return Value:** None Sets the state of motion tracker. If `true` when the user physically moves the device and the browser supports it, the Street View Panorama tracks the physical movements. |
| `setOptions` | `setOptions(options)` **Parameters:** - `options: StreetViewPanoramaOptions optional` **Return Value:** None Sets a collection of key-value pairs. |
| `setPano` | `setPano(pano)` **Parameters:** - `pano: string` **Return Value:** None Sets the current panorama ID for the Street View panorama. |
| `setPosition` | `setPosition(latLng)` **Parameters:** - `latLng: LatLng|LatLngLiteral optional` **Return Value:** None Sets the current `LatLng` position for the Street View panorama. |
| `setPov` | `setPov(pov)` **Parameters:** - `pov: StreetViewPov` **Return Value:** None Sets the point of view for the Street View panorama. |
| `setVisible` | `setVisible(flag)` **Parameters:** - `flag: boolean` **Return Value:** None Sets to `true` to make the panorama visible. If set to `false`, the panorama will be hidden whether it is embedded in the map or in its own `<div>`. |
| `setZoom` | `setZoom(zoom)` **Parameters:** - `zoom: number` **Return Value:** None Sets the zoom level of the panorama. Fully zoomed-out is level 0, where the field of view is 180 degrees. Zooming in increases the zoom level. |

| ### Events ||
|---|---|
| `closeclick` | `function(event)` **Arguments:** - `event: Event optional` The event triggered. This event is fired when the close button is clicked. |
| `pano_changed` | `function()` **Arguments:** None This event is fired when the panorama's pano id changes. The pano may change as the user navigates through the panorama or the position is manually set. Note that not all position changes trigger a `pano_changed`. |
| `position_changed` | `function()` **Arguments:** None This event is fired when the panorama's position changes. The position changes as the user navigates through the panorama or the position is set manually. |
| `pov_changed` | `function()` **Arguments:** None This event is fired when the panorama's point-of-view changes. The point of view changes as the pitch, zoom, or heading changes. |
| `resize` | `function()` **Arguments:** None Developers should trigger this event on the panorama when its div changes size: ` google.maps.event.trigger(panorama, 'resize')`. |
| `status_changed` | `function()` **Arguments:** None This event is fired after every panorama lookup by id or location, via `setPosition()` or `setPano()`. |
| `visible_changed` | `function()` **Arguments:** None This event is fired when the panorama's visibility changes. The visibility is changed when the Pegman is dragged onto the map, the close button is clicked, or `setVisible()` is called. |
| `zoom_changed` | `function()` **Arguments:** None This event is fired when the panorama's zoom level changes. |

## [StreetViewPanoramaOptions](https://developers.google.com/maps/documentation/javascript/reference/street-view.md.txt#StreetViewPanoramaOptions)
interface


interface
`google.maps.StreetViewPanoramaOptions`

Options defining the properties of a `StreetViewPanorama` object.

| ### Properties ||
|---|---|
| `addressControl` optional | **Type:** `boolean optional` The enabled/disabled state of the address control. |
| `addressControlOptions` optional | **Type:** `StreetViewAddressControlOptions optional` The display options for the address control. |
| `clickToGo` optional | **Type:** `boolean optional` **Default:** `true` The enabled/disabled state of click-to-go. Not applicable to custom panoramas. |
| `controlSize` optional | **Type:** `number optional` Size in pixels of the controls appearing on the panorama. This value must be supplied directly when creating the Panorama, updating this value later may bring the controls into an undefined state. Only governs the controls made by the Maps API itself. Does not scale developer created custom controls. |
| `disableDefaultUI` optional | **Type:** `boolean optional` Enables/disables all default UI. May be overridden individually. |
| `disableDoubleClickZoom` optional | **Type:** `boolean optional` **Default:** `true` Enables/disables zoom on double click. |
| `enableCloseButton` optional | **Type:** `boolean optional` **Default:** `false` If `true`, the close button is displayed. |
| `fullscreenControl` optional | **Type:** `boolean optional` The enabled/disabled state of the fullscreen control. |
| `fullscreenControlOptions` optional | **Type:** `FullscreenControlOptions optional` The display options for the fullscreen control. |
| `imageDateControl` optional | **Type:** `boolean optional` The enabled/disabled state of the imagery acquisition date control. Disabled by default. |
| `linksControl` optional | **Type:** `boolean optional` The enabled/disabled state of the links control. |
| `motionTracking` optional | **Type:** `boolean optional` Whether motion tracking is on or off. Enabled by default when the motion tracking control is present and permission is granted by a user or not required, so that the POV (point of view) follows the orientation of the device. This is primarily applicable to mobile devices. If `motionTracking` is set to `false` while `motionTrackingControl` is enabled, the motion tracking control appears but tracking is off. The user can tap the motion tracking control to toggle this option. If `motionTracking` is set to `true` while permission is required but not yet requested, the motion tracking control appears but tracking is off. The user can tap the motion tracking control to request permission. If `motionTracking` is set to `true` while permission is denied by a user, the motion tracking control appears disabled with tracking turned off. |
| `motionTrackingControl` optional | **Type:** `boolean optional` The enabled/disabled state of the motion tracking control. Enabled by default when the device has motion data, so that the control appears on the map. This is primarily applicable to mobile devices. |
| `motionTrackingControlOptions` optional | **Type:** `MotionTrackingControlOptions optional` The display options for the motion tracking control. |
| `panControl` optional | **Type:** `boolean optional` The enabled/disabled state of the pan control. |
| `panControlOptions` optional | **Type:** `PanControlOptions optional` The display options for the pan control. |
| `pano` optional | **Type:** `string optional` The panorama ID, which should be set when specifying a custom panorama. |
| `position` optional | **Type:** `LatLng|LatLngLiteral optional` The `LatLng` position of the Street View panorama. |
| `pov` optional | **Type:** `StreetViewPov optional` The camera orientation, specified as heading and pitch, for the panorama. |
| `scrollwheel` optional | **Type:** `boolean optional` **Default:** `true` If `false`, disables scrollwheel zooming in Street View. |
| `showRoadLabels` optional | **Type:** `boolean optional` **Default:** `true` The display of street names on the panorama. If this value is not specified, or is set to `true`, street names are displayed on the panorama. If set to `false`, street names are not displayed. |
| `visible` optional | **Type:** `boolean optional` If `true`, the Street View panorama is visible on load. |
| `zoom` optional | **Type:** `number optional` The zoom of the panorama, specified as a number. A zoom of 0 gives a 180 degrees Field of View. |
| `zoomControl` optional | **Type:** `boolean optional` The enabled/disabled state of the zoom control. |
| `zoomControlOptions` optional | **Type:** `ZoomControlOptions optional` The display options for the zoom control. |

## [StreetViewAddressControlOptions](https://developers.google.com/maps/documentation/javascript/reference/street-view.md.txt#StreetViewAddressControlOptions)
interface


interface
`google.maps.StreetViewAddressControlOptions`

Options for the rendering of the Street View address control.

| ### Properties ||
|---|---|
| `position` optional | **Type:** `ControlPosition optional` Position id. This id is used to specify the position of the control on the map. The default position is `TOP_LEFT`. |

## [PanoProviderOptions](https://developers.google.com/maps/documentation/javascript/reference/street-view.md.txt#PanoProviderOptions)
interface


interface
`google.maps.PanoProviderOptions`

Options for the Custom Pano Provider.

| ### Properties ||
|---|---|
| `cors` optional | **Type:** `boolean optional` If set, the renderer will use technologies (like webgl) that only work when cors headers are appropriately set on the provided images. It is the developer's task to serve the images correctly in combination with this flag, which might otherwise lead to SecurityErrors. |

## [StreetViewTileData](https://developers.google.com/maps/documentation/javascript/reference/street-view.md.txt#StreetViewTileData)
interface


interface
`google.maps.StreetViewTileData`

The properties of the tile set used in a Street View panorama.

| ### Properties ||
|---|---|
| `centerHeading` | **Type:** `number` The heading (in degrees) at the center of the panoramic tiles. |
| `tileSize` | **Type:** `Size` The size (in pixels) at which tiles will be rendered. |
| `worldSize` | **Type:** `Size` The size (in pixels) of the whole panorama's "world". |

| ### Methods ||
|---|---|
| `getTileUrl` | `getTileUrl(pano, tileZoom, tileX, tileY)` **Parameters:** - `pano: string` - `tileZoom: number` - `tileX: number` - `tileY: number` **Return Value:** `string` Gets the tile image URL for the specified tile. This is a custom method which you must implement, to supply your custom tiles. The API calls this method, supplying the following parameters: `pano` is the panorama ID of the Street View tile. `tileZoom` is the zoom level of the tile. `tileX` is the x-coordinate of the tile. `tileY` is the y-coordinate of the tile. Your custom method must return the URL for the tile image. |

## [StreetViewPov](https://developers.google.com/maps/documentation/javascript/reference/street-view.md.txt#StreetViewPov)
interface


interface
`google.maps.StreetViewPov`

A point of view object which specifies the camera's orientation at the Street View panorama's position. The point of view is defined as heading and pitch.

| ### Properties ||
|---|---|
| `heading` | **Type:** `number` The camera heading in degrees relative to `true` north. True north is 0°, east is 90°, south is 180°, west is 270°. |
| `pitch` | **Type:** `number` The camera pitch in degrees, relative to the street view vehicle. Ranges from 90° (directly upwards) to -90° (directly downwards). |

## [StreetViewCoverageLayer](https://developers.google.com/maps/documentation/javascript/reference/street-view.md.txt#StreetViewCoverageLayer)
class


class
`google.maps.StreetViewCoverageLayer`
extends `MVCObject`

library `"streetView"`

A layer that illustrates the locations where Street View is available.

```javascript
const {StreetViewCoverageLayer} = await google.maps.importLibrary("streetView");
```

| ### Constructor ||
|---|---|
| `StreetViewCoverageLayer` | `StreetViewCoverageLayer()` **Parameters:** None Creates a new instance of `StreetViewCoverageLayer`. |

| ### Methods ||
|---|---|
| `getMap` | `getMap()` **Parameters:** None **Return Value:** `Map|null` Returns the map on which this layer is displayed. |
| `setMap` | `setMap(map)` **Parameters:** - `map: Map optional` **Return Value:** `undefined` Renders the layer on the specified map. If the map is set to null, the layer will be removed. |