HTTP Client
OSRM_HTTP provides the same routing interface as the native OSRM class but connects to a
remote osrm-routed server over HTTP. Useful for cloud deployments, shared infrastructure,
or when you want to avoid managing local .osrm files.
OSRM_HTTP(base_url='http://localhost:5000', profile='driving', timeout=30.0, session=None, pool_connections=16, pool_maxsize=16)
HTTP client for OSRM that mimics the native OSRM interface.
This allows using a remote OSRM server (osrm-routed) instead of loading data locally. Useful for cloud deployments, shared infrastructure, or when you don't want to manage local .osrm files.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
base_url
|
str
|
Base URL of the OSRM server (e.g., "http://localhost:5000" or "http://router.project-osrm.org") |
'http://localhost:5000'
|
profile
|
str
|
Routing profile to use (default: "driving"). Common options are "driving", "car", "bike", "foot", "walking" |
'driving'
|
timeout
|
float
|
Request timeout in seconds (default: 30) |
30.0
|
session
|
Optional[Any]
|
Optional requests.Session object for connection pooling |
None
|
Examples:
>>> import osrm
>>>
>>> # Connect to local OSRM server
>>> client = osrm.OSRM_HTTP("http://localhost:5000")
>>>
>>> # Or use the public demo instance
>>> client = osrm.OSRM_HTTP("http://router.project-osrm.org")
>>>
>>> # Same API as native OSRM
>>> result = client.Route([(7.41337, 43.72956), (7.41546, 43.73077)])
>>> print(result["routes"][0]["distance"])
>>>
>>> # Works with bulk processing
>>> import polars as pl
>>> df = pl.DataFrame({
... "origin_lon": [7.41337, 7.41862],
... "origin_lat": [43.72956, 43.73216],
... "dest_lon": [7.41546, 7.42000],
... "dest_lat": [43.73077, 43.73300]
... })
>>> results = osrm.bulk_route(client, df)
Source code in osrm/http_client.py
Route(coordinates=None, **kwargs)
Calculate route between coordinates.
See OSRM API documentation: http://project-osrm.org/docs/v5.24.0/api/#route-service
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coordinates
|
Optional[List[tuple]]
|
List of (lon, lat) tuples |
None
|
steps
|
Return route steps (default: False) |
required | |
alternatives
|
Search for alternative routes (default: False) |
required | |
geometries
|
Geometry format: 'polyline', 'polyline6', 'geojson' |
required | |
overview
|
Overview detail: 'simplified', 'full', 'false' |
required | |
continue_straight
|
Force straight at waypoints |
required | |
annotations
|
Annotation types (list or string) |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Route result as dict |
Source code in osrm/http_client.py
Table(coordinates=None, **kwargs)
Compute distance/duration table between coordinates.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coordinates
|
Optional[List[tuple]]
|
List of (lon, lat) tuples |
None
|
sources
|
Indices of source coordinates |
required | |
destinations
|
Indices of destination coordinates |
required | |
annotations
|
'duration', 'distance', or both |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Table result as dict |
Source code in osrm/http_client.py
Nearest(coordinates=None, **kwargs)
Find nearest road segment to coordinates.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coordinates
|
Optional[List[tuple]]
|
List of (lon, lat) tuples (typically just one) |
None
|
number
|
Number of nearest segments to return (default: 1) |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Nearest result as dict |
Source code in osrm/http_client.py
Match(coordinates=None, **kwargs)
Match GPS trace to road network.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coordinates
|
Optional[List[tuple]]
|
List of (lon, lat) tuples for GPS trace |
None
|
timestamps
|
Timestamps for each coordinate |
required | |
steps
|
Return route steps |
required | |
geometries
|
Geometry format |
required | |
overview
|
Overview detail |
required | |
annotations
|
Annotation types |
required | |
gaps
|
Gap handling: 'split' or 'ignore' |
required | |
tidy
|
Clean up trace |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Match result as dict |
Source code in osrm/http_client.py
Trip(coordinates=None, **kwargs)
Solve traveling salesman problem.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coordinates
|
Optional[List[tuple]]
|
List of (lon, lat) tuples |
None
|
roundtrip
|
Return to start point (default: True) |
required | |
source
|
Source constraint: 'any' or 'first' |
required | |
destination
|
Destination constraint: 'any' or 'last' |
required | |
steps
|
Return route steps |
required | |
geometries
|
Geometry format |
required | |
overview
|
Overview detail |
required | |
annotations
|
Annotation types |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Trip result as dict |
Source code in osrm/http_client.py
Tile(x, y, z)
Get vector tile data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
int
|
Tile X coordinate |
required |
y
|
int
|
Tile Y coordinate |
required |
z
|
int
|
Tile zoom level |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
Tile data as bytes |