Skip to main content

Repository Banner

A Python package to generate a random route with a specified length.

Utilizes the openrouteservice API to generate the routing and the Overpass API for picking a random location.

Installation

Random-Route-Generator releases are available as wheel packages for macOS, Windows and Linux on PyPI. Install it using pip:

pip install random-route-generator

Example

This script generates a random route which is maximum 25km long and starts at the coordinate (51.846812, 6.242033). It uses mountain-biking route generation and utilizes 4 random points. The route also avoids ferries and steps and is self-contained.

from randomRouteGenerator.route_generator import RouteGenerator
from randomRouteGenerator.coordinate import Coordinate

generator = RouteGenerator()

#Manually set the openrouteservice API key
generator.api_key = ""

#OR read the API key from a file
#generator.read_api_key("ors_api.key")


#What type of route generation should be used? (See README)
generator.routing_profile = "cycling-mountain"

#How many random points should be generated?"
generator.point_amount = 4

#How should the origin and end point be handled (See RouteGenerator.ROUTE_MODE)?
generator.route_mode = generator.ROUTE_MODE.START_END_ORIGIN

#Which features should be avoided in the route?
generator.avoids = ["ferries", "steps"]

#Generate the route with the given origin point and maximum length
p = generator.generate_route(Coordinate(51.846812, 6.242033), 25000)


length = p.get_length()
duration = p.get_duration()
elevation = p.get_elevation()

#Retrieve information about the road-types in the route i.e. gravel, paved, ...
print(p.get_way_info())

#Print all routing points (all points generated by the routing)
for x in p.routing_points:
	print(x)



#Print all way-points (ONLY the random points whose amount is specified in generator.point_amount)
for x in p.points:
	print(x)


#Generate a GPX file containing the route
p.generate_gpx_file(filename="out.gpx")

Profiles

  • driving-car (Regular car routing)
  • driving-hgv (Routing for heavy-trucks)
  • cycling-regular (Routing for regular cycling)
  • cycling-road (Routing for road bikes)
  • cycling-mountain (Routing for mountain bikes, prefers offroad tracks)
  • cycling-electric (Routing for E-bikes)

Credits

  • openrouteservice - Used to generate the routing between the points
  • Overpass-API - Used for picking a random location
  • gpxpy - Used for exporting to a GPX file
  • overpy - Used for communicating with the Overpass-API
  • haversine - Used for coordinate calculations

License

GPL v3.0

Metadata

Release files for random-route-generator 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for random-route-generator 1.0.3
File Size Uploaded
random-route-generator-1.0.3.tar.gz 20.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for random-route-generator 1.0.3
File Interpreter ABI Platform
random_route_generator-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 40.7 kB

Release files / random-route-generator-1.0.3.tar.gz

Download URL random-route-generator-1.0.3.tar.gz
Size 20.1 kB
Tags Source
SHA-256 checksum
How to use checksums
209b2d6ed8060b428f656c865b52ccfdd25993e1761cab359118310b62eed44e
BLAKE2b-256 checksum
How to use checksums
858a6336d8c2592796a070355a4eb7b4be08744da7c8f4c8e7dc50b4f8f43497
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release files / random_route_generator-1.0.3-py3-none-any.whl

Download URL random_route_generator-1.0.3-py3-none-any.whl
Size 20.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2282534fbfcc5b82237f70383d9d167184a6974ca63be720762adb78bd84810f
BLAKE2b-256 checksum
How to use checksums
3054d073f6bb377f69d7c69e09a65448d3fe9afc07a25d897291ff93f4946b8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page