[Category:Blueprint] [Category:Ideas]
Curent routing feature is only based on a single provider: Google. Nevertheless, many other providers are able to offer such service.
- OpenRouteService (ticket)
- Open MapQuest
[TOC]
Current features
- MagicScissors (upto v1.2) - Renamed RouteFinder in git HEAD.
- Dialog from/to
Current design
src/datasource_google.c
Ideas
Services
http://wiki.openstreetmap.org/wiki/Routing
OpenRouteService
- http://openrouteservice.org/
- Options
- Vehicle
- car (fastest)
- car (shortest)
- pedestrian (shortest)
- cycle (shortest)
- mountainbike
- cycle racer
- safest
- prefered
- Language
- motorway: yes/no
- tollways: yes/no
- avoid area
- API
- start, via, end
- couple of lat,lon
CloudMade
http://developers.cloudmade.com/projects/routing-http-api/examples/find-route
Exemple : http://routes.cloudmade.com/8ee2a50541944fb9bcedded5165f09d9/api/0.3/47.25976,9.58423,47.26117,9.59882/car/shortest.gpx
YOURS
Google Maps
Map24
Offline since 2011 (https://en.wikipedia.org/wiki/Map24)
ViaMichelin
Falk
OpenMapQuest
CycleStreets
Offline
MapsForge
http://code.google.com/p/mapsforge/
Navit
OSRM
Open Source Routing Machine
Multiple waypoints/stages
Many routing services propose to set some intermediate waypoints, between start and end points.
Dialog
Simplest solution: improve the dialog to allow adding some intermediate waypoints.
Should the dialog expect geocoding? Or should we set raw position? Perhaps Raw position is not really usefull for end user.
TRW layer
Add a menu on TRW in order to compute a route going throw all waypoints, in a specified order.
New design
Simplistic solution: callback functions
- Reuse Google direction acquire feature
- Add a new structure to define the supported feature
- id: the unique identifier of service (internal use, configuration)
- label: the label of service
- get_route_with_directions(char from, char to);
- get_route_with_directionsv(char **waypoints);
- get_route_with_waypoints(LatLon from, LatLon to);
- get_route_with_waypointsv(LatLon **waypoints);
Class hierarchie
- vik_routing_engine module: base class for routing engines
- vik_routing module: main module
- register routing engines
- manage preferences
- facility functions for default engine (vik_routing_default_find...)
Topics
- Generalize Route finder tool: DONE
- Generalize Google Direction: InReview
- Add a way to Refine Track/Route with routing engine: InProgress
See also