Download panoramas and metadata from Street View and others
Project description
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 high-level 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
pip install streetlevel
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 |
🇰🇷 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 | |
Find panoramas by slippy map tile or bounding box | ✔2 | ✔2 | ⚫ | ✔3 | ⚫ | ⚫ | ⚫ | ⚫ | |
Get specific panorama by ID | ✔ | ⚫ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Imagery The type of imagery returned by the service. |
|||||||||
Download panoramas | ✔ | ✔4 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Download depth information | ✔5 | ❌ | ⚫ | ⚫ | ✔ | ✔5 | ⚫ |
⚫ |
|
Image projection | Equirectangular | ??? | Equirectangular | Cubemap | Equirectangular | Cubemap | Equirectangular | Cubemap | |
Image format | JPEG | HEIC | 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 | ✔7 | ✔ |
✔7 | |
Elevation | ✔ | ✔ | ⚫ | ✔ | ⚫ | ✔ | ✔ | ⚫ | |
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for streetlevel-0.9.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd4318bdac3615c077f3fc89bf764b35f92714d80a58bb5a0a7119cd7ba929f0 |
|
MD5 | 995bf14b4be305775215a54580bf4615 |
|
BLAKE2b-256 | 55663fdbfc9b53c0ba76a0592e82aa37146f6fee81ef59dd251352df221ccecc |