Skip to main content

Retrieve current and historical photos from Google Street View

Project description

streetview

This is a light module for downloading photos from Google street view. The functions allow you to retrieve current and old photos. Google does have an API for accessing Street View. However, it does not allow you to access old photos. Their javascript API allows you to download segments of current photos. This API also allows you to download each full panorama as you see it on Google Street View.

Please note, Google does not maintain the access points used by this API for public use. Therefore, this hack may break if Google makes changes to how Street View works.

Install

Install from pip with:

pip install streetview

Quick start

Search for Panoramas

The photos on Google street view are panoramas. Each parnorama has its own unique ID. Retrieving photos is a two step process. First, you must translate GPS coordinates into panorama IDs. The following code retrieves a list of the closest panoramas:

from streetview import search_panoramas

panos = search_panoramas(lat=41.8982208, lon=12.4764804)
first = panos[0]

print(first)
# pano_id='_R1mwpMkiqa2p0zp48EBJg' lat=41.89820676786453 lon=12.47644220919742 heading=0.8815613985061646 pitch=89.001953125 roll=0.1744659692049026 date='2019-08'

Get Metadata

Not all panoramas will have a date field in the search results. You can fetch a date for any valid panorama from the metadata api:

from streetview import get_panorama_meta

meta = get_panorama_meta(pano_id='_R1mwpMkiqa2p0zp48EBJg', api_key=GOOGLE_MAPS_API_KEY)

print(meta)
# date='2019-08' location=Location(lat=41.89820659475458, lng=12.47644649615282) pano_id='_R1mwpMkiqa2p0zp48EBJg'

Download streetview image

You can then use the panorama ids to download streetview images:

from streetview import get_streetview

image = get_streetview(
    pano_id="z80QZ1_QgCbYwj7RrmlS0Q",
    api_key=GOOGLE_MAPS_API_KEY,
)

image.save("image.jpg", "jpeg")

To download the panorama in an asynchronous context:

from streetview import get_panorama_async

image = await get_panorama_async(pano_id="z80QZ1_QgCbYwj7RrmlS0Q")

image.save("image.jpg", "jpeg")

Download panorama

You can download a full panorama like this:

from streetview import get_panorama

image = get_panorama(pano_id="z80QZ1_QgCbYwj7RrmlS0Q")

image.save("image.jpg", "jpeg")

Development

Run tests with:

make test

this will install mamba and the required Python packages into a local env.

If you want to rebuild VCR cassettes, you will need to copy .env-example to .env and add your Google Maps API Key.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streetview-0.0.11.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

streetview-0.0.11-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file streetview-0.0.11.tar.gz.

File metadata

  • Download URL: streetview-0.0.11.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for streetview-0.0.11.tar.gz
Algorithm Hash digest
SHA256 657c5e87872fae480735c0a2e506555d8977a805a7118f075dc82e132c92f027
MD5 1ea287d8abbe2f015c17b161cf9e7bdb
BLAKE2b-256 c8a67ff13e0eb5f34b344b06b6d67f20785cea5cc4d09137a013447dbb3ca681

See more details on using hashes here.

File details

Details for the file streetview-0.0.11-py3-none-any.whl.

File metadata

  • Download URL: streetview-0.0.11-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for streetview-0.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 bc39a38eed9551e6e57b23cf30c0a2daba61717076f13489abd488efb149a730
MD5 32f6c8c02b3b34ce4e12fefb30cfd710
BLAKE2b-256 6221175c025f2eb4646a347f47f31db7c55bc3f2d272896ccfdadb97e7d74066

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page