Skip to main content

Python client for requests to openrouteservice API services

Project description

Build status Coveralls coverage Documentation Status PyPI version Conda install

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:

We also have a repo with a few useful examples here.

For support, please ask our forum.

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

Requirements

openrouteservice-py requires:

  • Python >= 2.7, 3.4, 3.5, 3.6, 3.7 (pip)

  • Python >= 2.7, 3.6, 3.7 (conda)

  • requests library

  • cerberus 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@development

For conda users:

conda install -c nilsnolde openrouteservice

This command group will install the library to your global environment. 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 a GeoJSON geometry object, 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

Dry run

Although errors in query creation should be handled quite decently, you can do a dry run to print the request and its parameters:

import openrouteservice

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

client = openrouteservice.Client()
client.directions(coords, dry_run='true')

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(base_url='http://localhost/ors')

    # Only works if you didn't change the ORS endpoints manually
    routes = client.directions(coords)

# If you did change the ORS endpoints for some reason
# you'll have to pass url and required parameters explicitly:
routes = client.request(
  url='/new_url',
  post_json={
      'coordinates': coords,
      'profile': 'driving-car',
      'format': 'geojson'
  })

Support

For general support and questions, contact our forum.

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-2.1.0.tar.gz (32.0 kB view details)

Uploaded Source

Built Distribution

openrouteservice-2.1.0-py2.py3-none-any.whl (37.0 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: openrouteservice-2.1.0.tar.gz
  • Upload date:
  • Size: 32.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for openrouteservice-2.1.0.tar.gz
Algorithm Hash digest
SHA256 61a083effa962299b7dfe3273900f09b659af2f08a7696098af81f6832c57389
MD5 cfaefbd06b8e418f866e57fe86633f2e
BLAKE2b-256 ac37a99bfc300d4dbb0f5c7dea6aebc3dceb53750d7eb4bc32d0ce9b329df84b

See more details on using hashes here.

File details

Details for the file openrouteservice-2.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: openrouteservice-2.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 37.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for openrouteservice-2.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cc35adc08d21d8850a100c03462376bb53d642d7b9787f9f9106e54640fec84e
MD5 b32ad1b676191a347cc377202d558318
BLAKE2b-256 2f6b870b926b751730fdfe2836c4dd3e3759a84a87217b7cbc7717776fd6f919

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