[Marble-devel] Review Request: Online-Routing using openrouteservice.org

Dennis Nienhüser earthwings at gentoo.org
Sun Feb 21 16:50:17 CET 2010


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/3034/
-----------------------------------------------------------

Review request for marble.


Summary
-------

Initial patch to support online routing in Marble. Currently uses openrouteservice.org, but support for other services is easy to add (yournavigation.org already included, but not used). It mainly consists of
- A QAbstractItemModel to store the current route
- An interactive paint layer that can show both placemarks (marble runner search results) and the current route. Input support for selecting route points containing instructions (shown as annotations), creating new via points (hover above current route, drag), moving start and destination. The paint layer behaves similar to a QAbstractItemView
- A manager to initiate route downloading and updating
- A widget providing input fields for routing trip points (using either MarbleRunnerManager to retrieve placemarks for search terms or picking locations from the map directly) and a list view to show route instructions or the marble runner result of the active input field

Some open todos are noted in the code, others in http://techbase.kde.org/Projects/Marble/OnlineRoutingImplementation .
The icons missing in this patch can be downloaded at http://nienhueser.de/misc/marble-routing-icons.tar They are taken from or based on oxygen icons except progress.mng which I converted from a gif file generated by http://www.ajaxload.info/. Site states "Generated gifs are totally free for use" but if you have a better resource, please tell me.


Diffs
-----

  /trunk/KDE/kdeedu/marble/data/bitmaps/progress.mng UNKNOWN 
  /trunk/KDE/kdeedu/marble/data/bitmaps/routing_destination.png UNKNOWN 
  /trunk/KDE/kdeedu/marble/data/bitmaps/routing_pick.png UNKNOWN 
  /trunk/KDE/kdeedu/marble/data/bitmaps/routing_select.png UNKNOWN 
  /trunk/KDE/kdeedu/marble/data/bitmaps/routing_start.png UNKNOWN 
  /trunk/KDE/kdeedu/marble/data/bitmaps/routing_step.png UNKNOWN 
  /trunk/KDE/kdeedu/marble/data/bitmaps/routing_via.png UNKNOWN 
  /trunk/KDE/kdeedu/marble/src/lib/CMakeLists.txt 1093759 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleControlBox.cpp 1093759 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleRunnerManager.h 1093759 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleRunnerManager.cpp 1093759 
  /trunk/KDE/kdeedu/marble/src/lib/libmarble.qrc 1093759 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleAbstractRoutingProvider.h PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleAbstractRoutingProvider.cpp PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingInputWidget.h PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingInputWidget.cpp PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingLayer.h PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingLayer.cpp PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingManager.h PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingManager.cpp PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingModel.h PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingModel.cpp PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingProxyModel.h PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingProxyModel.cpp PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingWidget.h PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingWidget.cpp PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/MarbleRoutingWidget.ui PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/OrsRoutingProvider.h PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/OrsRoutingProvider.cpp PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/YoursRoutingProvider.h PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/routing/YoursRoutingProvider.cpp PRE-CREATION 

Diff: http://reviewboard.kde.org/r/3034/diff


Testing
-------

Lots. Notice that you get an empty route when a) openrouteservice.org cannot be reached (network problems), b) a route trip point is not reachable (no streets nearby) or c) you're trying to retrieve a route outside of Europe.


Screenshots
-----------

marble-routing3.png
  http://reviewboard.kde.org/r/3034/s/320/


Thanks,

Dennis



More information about the Marble-devel mailing list