Jump to content

Marble/OnlineRoutingImplementation: Difference between revisions

From KDE Community Wiki
Earthwings (talk | contribs)
Ochurlaud (talk | contribs)
m 18 revisions imported
 
(3 intermediate revisions by 2 users 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.


== Routing providers (done) ==
== Routing providers (done) ==
Line 16: Line 16:
* Paint layer is included in Marble's model
* Paint layer is included in Marble's model


== Route/Search UI (done) ==
== 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
* Default Search is pretty much the same, but has a "Add destination field" button which adds more search widgets (each representing one position to be included in the route)
* Search results are shown in the list view. The selected search result is kept track of and taken as the source/destination point.
* 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
* 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 osm nominatim
* Reverse geocoding via runner plugins
* Route instruction localization
* Route instruction localization
* Route preferences: By car, by bycyle, ... avoid highways, avoid toll roads
* Route preferences: By car, by bycyle, ... avoid highways, avoid toll roads


== 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


== Nice to have ==
== Nice to have ==
* Progress indicator for route download
* Support context menu in MarbleWidget
* Load routes via File -> Open Map
* Export routes to .gpx, .kml
* Support printing routes (map with waypoint layer and instructions)
* D-Bus interface
* D-Bus interface


Line 43: Line 35:
* route-instruction (Intermediate route point with turn instructions)
* route-instruction (Intermediate route point with turn instructions)
* route-select (Action to pick route point in the map)
* route-select (Action to pick route point in the map)
== Shipping ==
* Check which routing providers can be shipped / enabled by default
* OpenRouteService allows non-commercial usage. Exact definition todo
* Google Maps cannot be used at all (license terms)
* CloudMade can possibly not be used (cumbersome pricing model)
* YourNavigation is currently too limited (server often busy, routing data only for UK? No route instructions atm, only waypoints)

Latest revision as of 08:05, 21 October 2016

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

Routing providers (done)

Support data download from

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

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

Plugins (Marble Runners)

  • Reverse geocoding
  • Routing

Nice to have

  • D-Bus interface

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)