google_streetview
=================
.. toctree::
:maxdepth: 2
| Richard Wen
| rrwen.dev@gmail.com
A command line tool and module for Google Street View Image API.
::
google_streetview -h
google_streetview --location=46.414382,10.013988
google_streetview --pano=vPnURflnc8AZu5NMLYRddw
Install
-------
1. Install `Python `__
2. Install `google_streetview `__ via ``pip``
::
pip install google_streetview
Setup
-----
* A `Google API developer key `__ is required to use this package
* A `Gmail `__ account will also be required to create and access the developer key
* When asked to sign in, use your Gmail account for access
* Please note that usage of the Google Street View API may require a `billing plan `__
*Note: Instructions and links were written on March 5, 2019, and are subject to change depending on Google's website and API.*
Google API
**********
An `API developer key `__ for the `Google Application Programming Interface (API) `__ can be setup with the following instructions:
1. Enable `Google Street View Image API `__
2. Go to `Google API Console Credentials `__
3. Click **Create Credentials -> API Key**
4. Set ``key`` by replacing "your_dev_key" with the **API Key**
::
google_streetview -s key="your_dev_key"
Usage
-----
For help in the console, use::
google_streetview -h
Please ensure that the `Setup`_ section was completed::
google_streetview -s key="your_dev_key"
Image Search
************
Get street view image using the location argument ``--location`` and providing ``,`` values::
google_streetview --location=46.414382,10.013988
.. image:: img/location_example.jpg
Get street view image using the panorama id argument ``--pano``::
google_streetview --pano=vPnURflnc8AZu5NMLYRddw
.. image:: img/pano_example.jpg
Multiple locations and panorama ids can be given by separating with ``;``::
google_streetview --location=46.414382,10.013988;40.720032,-73.988354
google_streetview --pano=vPnURflnc8AZu5NMLYRddw;A1v2IdX_6HKnIQa2SPyyAg
.. image:: img/multi_example.jpg
Adjust size of the images up to 640 by 640 pixels with the ``--size`` argument and providing ``x`` values (the default is ``640x640``)::
google_streetview --location=46.414382,10.013988;40.720032,-73.988354 --size=200x200
.. image:: img/size_example.jpg
Adjust the heading of the camera with the ``--heading`` argument, where 0 and 360 are north, 90 is east, 180 is south, and 270 is west::
google_streetview --location=46.414382,10.013988 --heading=0
google_streetview --location=46.414382,10.013988 --heading=90
google_streetview --location=46.414382,10.013988 --heading=180
google_streetview --location=46.414382,10.013988 --heading=270
google_streetview --location=46.414382,10.013988 --heading=360
.. image:: img/heading_example.jpg
Adjust the image's horizontal field of view with the ``--fov`` argument, which represents zoom values of up to 120 (the default is ``90``)::
google_streetview --location=46.414382,10.013988 --fov=0
google_streetview --location=46.414382,10.013988 --fov=90
google_streetview --location=46.414382,10.013988 --fov=120
.. image:: img/fov_example.jpg
Adjust the camera's up and down angle with the ``--pitch`` argument, where positive values up to 90 degrees indicate straight up and negative values down to -90 indicate straight down (the default is ``0``::
google_streetview --location=46.414382,10.013988 --pitch=0
google_streetview --location=46.414382,10.013988 --pitch=90
google_streetview --location=46.414382,10.013988 --pitch=-90
.. image:: img/pitch_example.jpg
Save Results
************
Download street view images to "downloads" folder with the ``--save_downloads`` argument::
google_streetview --location=46.414382,10.013988;40.720032,-73.988354 --save_downloads=downloads
.. image:: img/download_example.jpg
Save metadata::
google_streetview --location=46.414382,10.013988 --save_metadata=metadata.json
google_streetview --pano=vPnURflnc8AZu5NMLYRddw --save_metadata=metadata.json
Save URL links::
google_streetview --location=46.414382,10.013988 --save_links=links.txt
google_streetview --pano=vPnURflnc8AZu5NMLYRdd --save_links=links.txt
Save links and metadata::
google_streetview --location=46.414382,10.013988 --save_links=links.txt --save_metadata=metadata.json
google_streetview --pano=vPnURflnc8AZu5NMLYRdd --save_links=links.txt --save_metadata=metadata.json
Multiple Arguments
******************
Multiple arguments can be specified by separating parameter values with the semi-colon ``;`` seen in the ``heading`` parameter::
google_streetview --location=46.414382,10.013988 --heading=0;90;180;270
.. image:: img/heading_example.jpg
Download the 360 panorama imagery for 2 locations using a field of vision ``fov`` of 90, which provides 8 images (90 degree from ``fov`` up to 270 degrees as 0 and 360 refer to the same ``heading``)::
google_streetview --location=46.414382,10.013988;40.720032,-73.988354 --fov=90 --heading=0;90;180;270
.. image:: img/panorama_example.jpg
Default Arguments
*****************
Default arguments persist even after the console is closed. Defaults enable user customization of the google_streetview command without a long list of arguments every call.
View the defaults::
google_streetview -v
Increase number of results previewed to ``20``::
google_streetview -s option_preview=20
Turn off preview of results::
google_streetview -s option_silent=True
Set the ``fov`` argument to default to ``45``::
google_streetview -s fov=45
Set the ``heading`` argument to default to ``0`` images::
google_streetview -s heading=0
Set to save a text file named ``links.txt`` with result links whenever used::
google_streetview -s save_links=links.txt
Remove default arguments::
search_result -r option_preview
google_streetview -r option_silent
google_streetview -r fov
google_streetview -r heading
google_streetview -r save_links
Reset the defaults::
google_streetview -d
After resetting defaults, the developer key will have to be set again::
google_streetview -s key="your_dev_key"
Additional Arguments
********************
A number of optional arguments defined using ``--`` are not shown when using ``google_streetview -h``. These can be used with the same names as the paramters passed to `Google's Street View Image API `__::
google_streetview -a
For example, the digital signature for billing can be set by argument ``signature`` which is a named paramter in the API::
google_streetview cat --signature="your_signature"
Module Import
*************
The `google_streetview `__ package may also be used as a `Python module `__::
# Import google_streetview for the api module
import google_streetview.api
# Define parameters for street view api
params = [{
'size': '600x300', # max 640x640 pixels
'location': '46.414382,10.013988',
'heading': '151.78',
'pitch': '-0.76',
'key': 'your_dev_key'
}]
# Create a results object
results = google_streetview.api.results(params)
# Download images to directory 'downloads'
results.download_links('downloads')
For more details on module usage, see the examples in `api`_ for single argument queries and `helpers.api_list`_ for multiple argument queries.
Modules
-------
api
***
.. automodule:: api
:members:
cli
***
.. autofunction:: cli.run
helpers
*******
.. autofunction:: helpers.api_list