Roadmap_1.5

Rob Norris

[Category:Roadmap]

Main Ideas

This is a collection of ideas that hopefully will go into 1.5.

Layer Defaults

[ ]DONE

  • Via g_key_file method - originally based new code on preferences.c file but using g_key_file is a lot simpler.

Some layer options will now be changed:

  1. Map layer will now autoload by default.
  2. TrackWaypoint layer will have the Waypoint Fake Background GC off - since it is slows things down.

As now a user has the ability to restore the old behaviour if they desire it.

Internal Automatic Preferences

[ ]DONE

Via g_key_file_* stuff (rather than more complicated g_settings_*) Don't want to have to support in .vik files or have GUI visible preferences. Thus it also keeps the current number of visible preferences a manageable amount.

  • autosave last used values:
    • Size of the Main Window (including whether Maximized)
    • Acquire Settings
    • Save to Image File / Directory settings
    • Correlate images settings
    • Full Screen setting
    • Side Panel shown setting
    • Toolbar shown setting
    • Statusbar shown setting
    • Main Menu shown setting - [value not auto saved in case accidently turned off - this is a manual only setting]
    • Last viewport position + zoom
    • Convert some current compile time options into runtime options
    • Best if compile time options are only related to library dependencies. I don't think we need to worry too much about bloat...

StartUp Preferences

[ ]DONE

New preference tab.

Options to control start-up location / map / files.

First a combo box of options like:

  • Home Position
    • NB this is the 1.4 default
  • Last Position (includes zoom value from internal auto saved values above)
  • Automatic (attempt location lookup via http://www.hostip.info)
  • Startup File
    • Use the File specified in the 'StartUp' preference. It would be expected this is a Viking project file.

The 'Startup File' to load. Only used when Startup File mode is selected above.

A boolean option to autoload a default map (which would naturally use the default map layer as defined by the new user controlled layer defaults above). This will default to on. It won't add a map if Viking project file is specified to load.

A boolean option to control whether to use/restore the GUI window size and layout.

'Advanced' Settings

[ ]DONE

Another new preferences tab for miscellaneous settings:

  • Store Absolute vs Relative File Save setting for SF#2998555
  • Store Create Track Tooltip preference for SF#3608417

DataSource: OpenStreetBugs / OpenStreetNotes

[ ]DONE

DataSource: Any Remote File Provider

Anything that accepts a URL and returns a file that we can load (either directory or via GPSBabel conversion. For the UK here are some specifics:

  1. http://openplaques.org/plaques.kml?box=[55.0473,-1.757],[54.9161,-1.474]

  2. http://robert.mathmos.net/osm/postboxes/2/mapdata.cgi?lat=50.7956&lon=-1.07595&output=gpx

Make it extendible via XML configuration along the line of the extendible external_tools.xml method.

  • Need to handle up to 4 '%s' in a BLTR for ordering of bounding box values: Bottom, Left, Top, Right.
  • How to load the returned file - either directly or GPSBabel conversion (would then conversion detection details)
    • In example 2 above, only two values 'BL' needs specifying as then it's actually the centre

OpenStreetBugs can be made to work this way - originally coded as new datasource type (since it didn't take very long at all). However shouldn't be quite as much effort as I initially thought to reuse/extend the vikexttool/vikwebtool code.

Optimizes

[ ]DONE

Especially for handling lots of tracks. Think many thousands of trackpoints.

  • Store track's bounding box and then only attempt to draw it if the bounds intersects with the screen bounding box
    • Calculate bounding box on track load and on trackpoint edits - inserts, adds, deletes, track splits+combines etc...
  • Pre-calculate zoom related constants such as (65536.0 / 180.0) * 256.0 / zoomfactor.
    • Do this on zoom changes, rather than on a per trackpoint position to pixel conversion.
    • Maybe store width/2 and height/2 on screen resizes instead of recalculating in the conversion too...

Calendar View

  • A calendar mode for all tracks. Placed at bottom of treeview.
    • Dates with track starting on it would be highlighted. Clicking on such a date would select the first track of that day.

Multi Layer Analysis

[ ]DONE - [User:robbieonsea ]

  • Add Aggregate layer summary of TRW layer for tracks + waypoints
    • Tooltip quick summary numbers of tracks and waypoints
    • Click to open stato window 'Calculating...' (as this make take a little time when large numbers of layers processed)
    • Total distance, Total time, time range, maxspeed, overall average, high point, low point etc..
    • Reuse/modify code from CommandLineAnalysis mode

Undo

[ Work in Progress - [User:robbieonsea] ]

Currently considering a Memento Pattern saving memory contents as the Command pattern doesn't seem feasible with the current code. This is quite tricky...

  • For the MP - probably need to limit the undo size
  • Could also be related to exit warning solution

Online Routing

[ ]DONE - [User:guyou ]

Generalize current support for Google directions to be able to use other providers, eg Bing, OSRM, etc...

(see [Idea:GeneralizeRouting])

Improved Acquiring of Geocaches

[ [User:guyou] ]

Rework current usage with geo-* Bash scripts to use Geotoad

  • As it's a single program with cross platform support.

Merge all TrackWaypoint layers in an aggregate layer

Leave just one TRW layer. Consider when loading multiple GPXs...

Waypoint Symbols in Title Case

[ ]DONE

Switch to outputting Title Case Waypoint Symbols in GPX. Note the test data/code in GPSBabel seems to be in Title Case.

Patch already available.

May make it an option in Export/External preference to use Title Case or lower case.

Viking file format will use lower case.

GTK 2.14 Minimum

[ ]DONE

Layer Track List Dialog with Extended Properties

[ ]DONE

Have a simple column list view of properties:

  • Name
  • Date
  • Length (Distance)
  • Length (Time)
  • Max Speed
  • Average Speed
  • Maximum Altitude

Ensure columns are sortable, thus making it easy to compare them. I think this will take implementation precedence over the Calender view above.

Right click to gives a small selection of options. Able to invoke at an Aggregate level. A Tooltip shows the comment or description.

Anonymize Time of GPS Tracks

[ ]DONE (Tracks only)

An option on upload of a GPS trace to OSM or to apply to a specified track. Sets times relative to 01/01/1900

TODO Ideally would need to remove timestamps in Waypoints (both actual timestamps and time strings in the comment field) as well.


Related

Main Wiki: Main_Page