streetlevel
streetlevel is a library for downloading panoramas and metadata from street-level imagery services such as Google Street View, Apple Look Around, and several others. It provides a simple abstraction over the internal APIs of the supported services – this means that no API keys are required, but the library may break unexpectedly.
(Nearly) all functions are available as either a sync function using requests or an async function
using aiohttp, requiring a ClientSession.
Installation
streetlevel is available on PyPI:
pip install streetlevel
macOS users may need to install additional dependencies:
brew install gettext
brew install inih
Example
Downloading the closest Google Street View panorama to a specific location, sync:
from streetlevel import streetview
pano = streetview.find_panorama(46.883958, 12.169002)
streetview.download_panorama(pano, f"{pano.id}.jpg")
Or async:
from streetlevel import streetview
from aiohttp import ClientSession
async with ClientSession() as session:
pano = await streetview.find_panorama_async(46.883958, 12.169002, session)
await streetview.download_panorama_async(pano, f"{pano.id}.jpg", session)
Documentation
Documentation is available at streetlevel.readthedocs.io.
Functionality overview
Services covering multiple countries are on the left; services covering one specific country are on the right.
✔ implemented / available; 🟡 partially implemented; ❌ not implemented; ⚫ not available / not applicable
| Google Street View |
Apple Look Around |
Yandex Panorama |
Bing Streetside |
🇨🇳 Baidu Panorama |
🇰🇷 Kakao Road View |
🇰🇷 Naver Street View |
🇨🇿 Mapy.cz Panorama |
🇮🇸 Já 360 |
||
|---|---|---|---|---|---|---|---|---|---|---|
Finding panoramas How panoramas can be retrieved through the API. |
||||||||||
| Find panoramas around a point | ✔1 | ⚫ | ✔1 | ✔ | ✔1 | ✔ | ✔1 | ✔1 | ✔1 | |
| Find panoramas by map tile or bbox | ✔2 | ✔2 | ⚫ | ✔3 | ⚫ | ⚫ | ⚫ | ⚫ | ⚫ | |
| Get specific panorama by ID | ✔ | ⚫ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Imagery The type of imagery returned by the service. |
||||||||||
| Panoramas | ✔ | ✔4 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Depth | ✔5 | ❌ | ⚫ | ⚫ | ❌?10 | ✔ | ✔14 | ⚫ |
⚫ |
|
| Image projection | Equirectangular | ??? | Equirectangular | Cubemap | Equirectangular | Equirectangular | Equirectangular/Cubemap13 | Equirectangular | Cubemap | |
| Image format | JPEG | HEIC | JPEG | JPEG | JPEG | JPEG | JPEG | JPEG | JPEG | |
Available metadata Metadata returned by the API of the service alongside ID and location. |
||||||||||
| Capture date | ✔6 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔9 | |
| Heading, pitch, roll | ✔ | ✔ | ✔7 | ✔ | ✔ | ✔7 | ✔11 | ✔ | ✔7 | |
| Elevation | ✔ | ✔ | ⚫ | ✔ | ✔ | ⚫ | ⚫12 | ✔ | ⚫ | |
| Nearby / linked panoramas | ✔ | ⚫ | ✔ | ✔8 | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Historical panoramas | ✔ | ⚫ | ✔ | ⚫ | ✔ | ✔ | ✔ | ✔ | ⚫ | |
| Address | ✔ | ⚫ | ✔ | ⚫ | ⚫ | ✔ | ✔ | ⚫ | ✔ | |
| PoIs | ✔ | ❌ | ✔ | ⚫ | ⚫ | ❌ | ❌ | ⚫ | ⚫ | |
| Creator | ✔ | ⚫ | ✔ | ⚫ | ✔ | ⚫ | ⚫ | ✔ | ⚫ | |
1: Returns closest only
2: Tile, z=17
3: Bounding box
4: Unstitched
5: Appears to be a synthetic depth map created from elevation data and building footprints
6: Month and year only for official coverage, full date for inofficial coverage
7: Only heading; pitch/roll do not appear to be available
8: Previous and next image in sequence
9: Month and year only
10: There is a has_depth field in the raw metadata, but I've yet to find a panorama that actually has depth
11: Pitch/roll are only available for the new 3D imagery
12: Camera altitude is available, however
13: 3D imagery panos have both an equirectangular and a cubemap version; everything else is only available as cubemap
14: Non-3D imagery appears to use a synthetic depthmap created from elevation data and building footprints
Metadata
Release files for streetlevel 0.12.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| streetlevel-0.12.13.tar.gz | 123.2 kB | Without provenance | Details for streetlevel-0.12.13.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| streetlevel-0.12.13-py3-none-any.whl | Python 3 | none | any | Details for streetlevel-0.12.13-py3-none-any.whl |
Total release size: 218.2 kB
Release files / streetlevel-0.12.13.tar.gz
| Download URL | streetlevel-0.12.13.tar.gz |
|---|---|
| Size | 123.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eefa5ffa45bf0e00d3cf61d1e2c46d7d6fea5f8229f668b7e90cc588537af0fc
|
|
BLAKE2b-256 checksum How to use checksums |
5040990869b24e9d24f10133152abe3ea84def99fd44ad1da254797e73ced449
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / streetlevel-0.12.13-py3-none-any.whl
| Download URL | streetlevel-0.12.13-py3-none-any.whl |
|---|---|
| Size | 95.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
60fe28fec2ce73e93eba7fbdbea1bac58173e4ba8661fda2127846eb989a682e
|
|
BLAKE2b-256 checksum How to use checksums |
767eb474a3eb2e3111825a2343fbbb73920834a6409270af394f08f946ecff00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for streetlevel 0.12.13
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.