[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:
- Map layer will now autoload by default.
- 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:
-
http://openplaques.org/plaques.kml?box=[55.0473,-1.757],[54.9161,-1.474]
-
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.