Skip to main content

Python client for requests to openrouteservice API services

Project description

Documentation Status

Quickstart

Description

The openrouteservice library gives you painless access to the openrouteservice (ORS) routing API’s. It performs requests against our API’s for

For further details, please visit:

By using this library, you agree to the ORS terms and conditions.

Requirements

openrouteservice requires:

  • Python >= 2.7, 3.4, 3.5, 3.6

  • requests library

unit testing requires additionally the following Python libraries:

  • nose

  • responses

  • mock

Installation

To install from PyPI, simply use pip:

pip install openrouteservice

To install the latest and greatest from source:

pip install git+git://github.com/GIScience/openrouteservice-py

For conda users, you can install using setuptools (required Python package):

git clone https://github.com/GIScience/openrouteservice-py
python setup.py install

This command will install the library to your PYTHONPATH. Also works in virtual environments.

Testing

If you want to run the unit tests, see Requirements. cd to the library directory and run:

nosetests -v

-v flag for verbose output (recommended).

Usage

Basic example

import openrouteservice

coords = ((8.34234,48.23424),(8.34423,48.26424))

client = openrouteservice.Client(key='') # Specify your personal API key
routes = client.directions(coords)

print routes

For convenience, all request performing module methods are wrapped inside the client class. This has the disadvantage, that your IDE can’t auto-show all positional and optional arguments for the different methods. And there are a lot!

The slightly more verbose alternative, preserving your IDE’s smart functions, is

import openrouteservice
from openrouteservice.directions import directions

coords = ((8.34234,48.23424),(8.34423,48.26424))

client = openrouteservice.Client(key='') # Specify your personal API key
routes = directions(client, coords) # Now it shows you all arguments for .directions

Decode Polyline

By default, the directions API returns encoded polylines. To decode to a dict, which is GeoJSON-ready, simply do

import openrouteservice
from openrouteservice import convert

coords = ((8.34234,48.23424),(8.34423,48.26424))

client = openrouteservice.Client(key='') # Specify your personal API key

# decode_polyline needs the geometry only
geometry = client.directions(coords)['routes'][0]['geometry']

decoded = convert.decode_polyline(geometry)

print decoded

Local ORS instance

If you’re hosting your own ORS instance, you can alter the base_url parameter to fit your own:

import openrouteservice

coords = ((8.34234,48.23424),(8.34423,48.26424))

# key can be omitted for local host
client = openrouteservice.Client(key='',
                                 base_url='https://foo/bar')

# url is the extension for your endpoint, no trailing slashes!
# params has to be passed explicitly, refer to API reference for details
routes = client.request(url='/directions',
                        params={'coordinates': coords,
                                'profile': 'driving-hgv'
                               }
                        )

Support

For general support, contact our Google Group.

For issues/bugs/enhancement suggestions, please use https://github.com/GIScience/openrouteservice-py/issues.

Acknowledgements

This library is based on the very elegant codebase from googlemaps.

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

openrouteservice-0.1.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

openrouteservice-0.1-py3.6.egg (36.6 kB view details)

Uploaded Egg

File details

Details for the file openrouteservice-0.1.tar.gz.

File metadata

File hashes

Hashes for openrouteservice-0.1.tar.gz
Algorithm Hash digest
SHA256 80e301b90c7f0ff8d030d2a34c3fcbda081b71a1c2e3f42c6c6f66b7469da7ca
MD5 b4a27a40bf23e079c71fc080cb0e31de
BLAKE2b-256 030e3b41bde175c6a146a9851e3ae4751f1da1372ca0ae64a3288ae99a58fd58

See more details on using hashes here.

File details

Details for the file openrouteservice-0.1-py3.6.egg.

File metadata

File hashes

Hashes for openrouteservice-0.1-py3.6.egg
Algorithm Hash digest
SHA256 4e67da9f5459874d5633dc186e654b8bd3a2311ca1c4d57a20603129b167354d
MD5 40c56eecaaf5b241f8feeb58d45d7e29
BLAKE2b-256 e4d0af957cf82c501777f74c43521a7c0b2227a8c6ff74464f08773f8bce2a7e

See more details on using hashes here.

Supported by

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