Difference between revisions of "Projects/Marble/OnlineRoutingImplementation"

Jump to: navigation, search
(Remove outdated stuff)
 
(14 intermediate revisions by one user not shown)
Line 1: Line 1:
This page lists more concrete steps to integrate online routing support. Code is currently available at http://nienhueser.de/git/marble.git
+
This page lists more concrete steps to integrate online routing support.
  
== Step 1: Basic workflow (done) ==
+
== Routing providers (done) ==
* UI to select source and destination via map clicks
+
Support data download from
* UI to select source and destination via runners (esp. OSM namefinder)
+
* openrouteservice.org
* UI to display routing instructions
+
* yournavigation.com
* Implement a routing provider base
+
* Google Maps
* Implement routing provider for CloudMade, parse resulting gpx and feed to routing display
+
* CloudMade
 +
* Eventually http://permalink.gmane.org/gmane.comp.gis.openstreetmap.routing/849
  
== Step 2: Marble Widget Layer (in progress) ==
+
== Marble Widget Paint Layer (done) ==
* Make a custom routing paint layer which displays routing points: Start, destination, intermediate points. Waypoints, possibly connected. Routing instructions.
+
* A custom paint layer which displays routing points: Start, destination, intermediate points. Waypoints, connected.
* Bonus points for
+
** Paint layer reuses the selection model of the routing instruction list view
** Making the paint layer a QAbstractItemView working on the same model as the routing instructions list view and sharing the selection model with it
+
** Source, destination and via points are movable in the map
** Make source/destination points movable directly in the map
+
** Instructions are shown in the mapping when clicking on the corresponding waypoint
** Provide tooltips / unfolding for routing instructions
+
* Paint layer is included in Marble's model
* Integrate the paint layer with MarbleWidget/MarbleMap. Eventually extend LayerManager to support adding layers not via plugins.
+
  
== Step 3: Integrate with search UI ==
+
== Route/Search UI ==
* Merge UI in MarbleControlBox: Search via runners and routing can be done from the same widget similar to how Google Maps does it
+
* Search results are shown in the list view. The selected search result is kept track of and taken as the source/destination point.
* Default Search is pretty much the same, but has a "Routing mode" button which adds a second search widget (likely more to support intermediate targets)
+
* Search results are shown in the list view as before. The selected search result is kept track of and taken as the source/destination point.
+
 
* Once all routing points are known (user selected a search result or clicked on the map for both routing source and destination and intermediate points, if any), the "Get Directions" button can be used to fetch routing instructions from the current routing provider
 
* Once all routing points are known (user selected a search result or clicked on the map for both routing source and destination and intermediate points, if any), the "Get Directions" button can be used to fetch routing instructions from the current routing provider
 
* Routing results are shown in the same list view as marble runner search results
 
* Routing results are shown in the same list view as marble runner search results
 +
* Reverse geocoding via runner plugins
 +
* Route instruction localization
 +
* Route preferences: By car, by bycyle, ... avoid highways, avoid toll roads
  
== Step 4: Plugins ==
+
== Plugins (Marble Runners) ==
* Refactor marble runners to be plugins
+
* Reverse geocoding
* Refactor routing providers to be plugins
+
* Routing
* Routing providers and marble runners share a common base
+
  
== Step 5: Configuration ==
+
== Nice to have ==
* Support routing customization: By car, by bycyle, ...
+
* D-Bus interface
  
== Step 6: More routing providers ==
+
== Artwork ==
* Integrate openrouteservice.org (permission to use in Marble kindly granted by them)
+
Ask the oxygen guys if they can help out with some icons:
* Integrate yournavigation.com
+
* route-instruction (Intermediate route point with turn instructions)
* Implement scoring, auto-choose the best provider/result
+
* route-select (Action to pick route point in the map)
* Google Maps can not be integrated due to its terms of service
+

Latest revision as of 21:58, 28 January 2011

This page lists more concrete steps to integrate online routing support.

Contents

[edit] Routing providers (done)

Support data download from

[edit] Marble Widget Paint Layer (done)

  • A custom paint layer which displays routing points: Start, destination, intermediate points. Waypoints, connected.
    • Paint layer reuses the selection model of the routing instruction list view
    • Source, destination and via points are movable in the map
    • Instructions are shown in the mapping when clicking on the corresponding waypoint
  • Paint layer is included in Marble's model

[edit] Route/Search UI

  • Search results are shown in the list view. The selected search result is kept track of and taken as the source/destination point.
  • Once all routing points are known (user selected a search result or clicked on the map for both routing source and destination and intermediate points, if any), the "Get Directions" button can be used to fetch routing instructions from the current routing provider
  • Routing results are shown in the same list view as marble runner search results
  • Reverse geocoding via runner plugins
  • Route instruction localization
  • Route preferences: By car, by bycyle, ... avoid highways, avoid toll roads

[edit] Plugins (Marble Runners)

  • Reverse geocoding
  • Routing

[edit] Nice to have

  • D-Bus interface

[edit] Artwork

Ask the oxygen guys if they can help out with some icons:

  • route-instruction (Intermediate route point with turn instructions)
  • route-select (Action to pick route point in the map)

This page was last modified on 28 January 2011, at 21:58. This page has been accessed 3,329 times. Content is available under Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal