Menu

Idea:GeneralizeRouting

Guilhem BONNEFILLE Rob Norris

[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/

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