]> git.street.me.uk Git - andy/viking.git/blame - TODO
added GPX symbols
[andy/viking.git] / TODO
CommitLineData
7c1cf1b5 1TODO till release 0.1.1:
0912fc7e 2IMPORTANT STUFF:
42c2ac3e 3X GPX symbols
7c1cf1b5
EB
4 Option as to whether or not to show waypoint symbols (we may want to show 'x's or something, and may have a lot of wpt_dot icons)
5 Option as to whether or not to show unit scale (esp for exporting images)
6 fix save file thing
10aae26b 7 check out bgitemcount stuff in background.c (hangs on clear!)
a5e51d35 8 g_dtostr instead of fprintf in the appropriate places
70a23263 9X DND: make it an interface, so we don't mention VikTrwLayer in viktreeview.c
e673b75f 10X DND: when moving layers, take into account the layer we're moving onto
0912fc7e 11 and move it above.
70a23263 12X (DND?) fix "(viking:3671): Gtk-CRITICAL **: gtk_tree_model_get_iter: assertion `path->depth > 0' failed"
0912fc7e 13 Debugging output shouldn't be printf'd but we g_print'd, and we should have a DEBUG flag
0912fc7e 14
10aae26b 15BIG THINGS:
bc82cb58 16 Fix coord layer for various projections
10aae26b
EB
17 selections (select area of waypoints, trackpoints, etc)
18 Clipboard done right -- GtkClipboard, between processes
19 direct GPS support
20 combine layers
21 OR copy & paste >1 item (better! not too hard?)
22 funky gpsbabel filter stuff (data sources -- think about, i want something innovative in this release.)
23 bug fixes, UI fixes
24 elevation plotting is not so pretty if you're moving north, as it overlays stuff uglily. discussion?
25 arrows to show track direction
26 bicycle runs your track (animation) that tilts depending on slope
50a14534 27
10aae26b
EB
28RATHER HARD FIXES:
29 tracks have their own colors, etc.
30 replace HTTP code!!!
31 relative photo pathnames (relative to GPS data file)
32 Optimizations (compare to 0.0.5)
33 SETTABLE OPTIONS: map cache size, alphabetized waypoints/tracks, picture viewer, webbrowser
34 Speed up waypoint drawing; option for faster drawing.
35 what if try to REDOWLOAD while RE/DOWNLOADing?
36 Redraw when becomes available, somehow? Also, show maps in progress a different color.
37 map loading/memory caching in the background? (for zoom out)
38 WHITE UNDER TRACKS! DONE FASTER! CLEAN THIS UP!
2ab9b480 39
10aae26b
EB
40EASY FIXES:
41 "click to go there" elevation map: average out, not nearest trackpoint.
bb71de8b 42
10aae26b
EB
43FEATURE WISHLIST (i.e. unlikely to get done):
44 hover over pic
45 Better annotation for tracks, etc. Fields, etc.
46 Filled polygons
47 New UI: "Track Tool" => just analyze/pick out, right click or button to edit
48 right click to do new track
49 or "Track/Waypoint Tool"
50 I18N (das mundo ne parle pas agglika)
51 Drag & Drop Layers
52 import from data sources ( gpsbabel (gps device) / google / geocaching.com )
50a14534 53
10aae26b
EB
54MISC FIXES (i.e. will never get done):
55 Reid's 23, including waypoints, GPX/XML Viking files.
56 modular plotting styles? just an idea...
57 optimize Lat/Lon performance with its own CE1, CE2 etc.
58 make ce1, cn2 etc for lat/lon & utm; maybe get out the checking code in vik_viewport (see draw_rectange for instance)
59 Progressive Loading (GdkPixbufLoader)
60 CACHING WHOLE CHUNKS? (USEFUL FOR MAP ZOOM TOO!) RELOAD BUTTON?
61 * instead of using "emit"s in tools, do this:
62 * "add-only" return value -- only redraw this layer and layers above it.
63 OR maybe even more advanced -- only redraw certain portions of screen.
64 what about ALPHA??? uh oh...
65 "always redraw" return value -- if layer is visible or not -- e.g. goto wp
66 "redraw if visible" return value
67 settable defaults for layers (sigh...) OR at least config.h stuff
2ab9b480 68
10aae26b 69--------------
50a14534 70
10aae26b 71ROADMAP (old)
50a14534
EB
720.1.2
73 * Data sources: google, gpsbabel
74 * gpsbabel plugin -- wired up to get directions from google maps.
75 * address plugin.
76 * direct GPS support (?)
77 GPS navigation (speed, etc, etc)
78 * advanced downloader?
790.1.3
80 * stops
81 whole list: length, max movement, icons. can make more. right click -> stops...
82 * symbols
83 * draw by altitude, altitude side thingy.
840.1.4
85 * selections (?)
86 * NASA crazhy maps
87 * scale
880.1.6
89 * new UI & documentation
90 * internationalization
910.2.0
92 * TIGER data, vector maps
930.3.0
94 * altitude stuff, goodies
95 * major UI changes, direct manipulation
96 * sit down for a day or two and design the bestest bestest UI
97 * threads, etc
98 * docs, lots of docs
991.0
100 * more sophisticated vector data, almost GIS stuff. garmin maps, whatever
101 * party
102
103--------------------------------
104
1050.0.9 / 0.1.0
106 SELECTIONS (?)
107 * square & track-based
108 * select everything in, everything out
109 * download maps in
110 WAYPOINTS
111 * pango for text; text background with settable colors & options
112 * move & edit waypoints!!! auto-select for that
113 * maybe an option to turn on auto-select: off, on, only for same layer (default)
114 MAPS
115 * some of the above optimizations
116 MERGE TRW
117 * auto-rename dupes
118 * delete dupes by name
119 * delete dupes by location; name & location
120 TRACKS
121 * track editing -- everything on that idea sheet on my desk.
122 * insert into track
123 * show list of pics in one location
124 * maybe track-by-elevation
125 MISC
126 * alphabetize waypoints & tracks
127 * d&d layers (not worth it?)
128 FIXES
129 * crazhy-crazhy auto-switch UTM?
130 * figure out save image in background stuff, sigh...
131 * "widget properties set value param data"
132 -> check if has properties params
133 -> in layer_prop_fact: hold value's check if changed.
134 -> return TRUE only if value affects look
135 -> beautify dynamic properties boxes (checkboxes please?)
136 -> groups
137 -> maybe get rid of post_read (use set_param to update gc's -- but maybe not...)
138 * TODOs & FIXMEs
139 * due <= 2004-6-12 (1 yr after 0.0.3)
140
141DONE:
142 * do alpha _right_ (to see what I mean, try drawing a transparent PNG)
143-----------------------
144
145POSSIBLE MAP OPTIMIZATIONS:
146save conglomerates of shrunken images [to disk]?
147static cache.c shared between everything -- SHARE MAP CACHES BETWEEN LAYERS AND WINDOWS!!!
148background loading thread
149load zoomed out images into conglomerates
150 -or-
151Sort images by some sort of checksum (maybe sum of all digits) into 10 groups
152makes finding cached image 10 times faster
153if we somehow know we're not going to have enough room to store all maps for 1 redraw in cache, don't cache at all.
154better cache management -- maybe every map in memory?
155--> cache should fit more small maps than big ones!!!
156 maybe number for cache_size, keep track of it manuall, calculate from shrinkfactor? <-- good idea
157pixmap (not pixbuf) cache?
158vikmaplayer.c:520, don't run g_slist_length who-knows-howmany times (only noticable when shrinking cache)
159stat images to make sure the size isn't zero (vs. trying to load them). then show errors for bad ones (?)
160don't lookup IP each time (?)
161
162------------------------------
163
164
165 Then, focus on Lat/Lon and mapquest maps. (????)
166 Then, focus on Lat/Lon and mapquest maps.
167
1680.0.9 "260 million maps... I can't hear you at all" release:
169finalize pthread/map download UI.
170export to image fix bug
171viking running -> use this thread ( good luckers !!! )
172merge trw layers
173
1740.1.0 "where we're going, we don't need roads" release (concept idea):
175Select a waypoint, delete to delete it, real tools, a toolbar, etc.
176Drag and drop layers
177alphabetatize waypoints & tracks
178"area selections" -- select tool -> select waypoints in/outside area, download maps in area, etc. etc.
179
180-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
181
1820.1.0: the "fixes, patches, improvements, and goodies" release
183 "Where we're going, we don't need roads..."
184
185 * move a_dialog_new_track to viktrwlayer.c. Clean up VikTrwLayer, separating into several more-managable functions.
186 * get rids of pass_along, layer_and_vlp junk, just use update signal and track_iters (maybe make waypoint_iters) (?)
187 * TODO longones
188 * general cleanups, what you have time for (vik_trackpoint_free etc, draw_track, etc.)
189 * do we really have to have all those global funcs in vik_trw_layer ?
190right click->new track here, new waypoint here. general TRWEdit tool with popup on vikviewport, it can be done.
191general edit->delete to delete whatever is selected. ugly stuff ahead.
192show human-readable timestamp
193toolbar/toolbox, tool opts win (for tpwin) like in gimp (?)
194Maybe fix "private" ref_count in clipboard.c (?)
195clean up viktrwlayer.c, call track_realize() when adding track with add_track(), del dup. code, esp. in track_draw
196move/edit by click for wp?
197toolbar/toolbox, tool opts win (for tpwin) like in gimp (?)
198only draw if in UTM zone !!!
199Track color-by-elevation ( go all over an area, make tracks thicker/zoom out to create DEM color map ?! )
200maps zoomed out
201Thing to download lotsa maps (script or builtin -- ?)
202Merge layers (what a say we have 2 layers, one with wp's, one with tracks)
203 merge: auto rename (everything begins with "layer name: ")
204 right click agg -> merge trw children -> super trw
205 or multiple slect/copy & paste
206picture layer, thumbnails and all...
207move to gpsbabel default altitude, reflect it everywhere, include viking-remote
208gpspoint.c -- use new easy gpsbabel code, abc, 123.
209
210hard things to think about that need to be done sometime (mainly hard/impossible):
2111) map downloader process / map download queue
2122) if viking already running, use that process. cut and paste will work much better.
213
214EVERYTHING ABOVE THIS LINE SHOULD BE IN 0.1.0! 0.2.0 WILL FOCUS ON LAT/LON AND STREET MAPS
215
216-----
217
2180.2.0
219* Plot as lat/lon
220 For mapquest & georef maps: vikviewport "mode" to draw in (utm or straightened lat/lon), check before drawing, convert for TP, etc.
221* full georef support, release minnesota/manganese
222* mapquest maps
223* smart drawing -- determine if line segment passes thru area, fancy math...
224* map downloading manager, smarter ways -- e.g. "download maps within polygon"
225* maybe a gpsbabel plug-in
226* topos zoomed out if it didn't make it into 0.1.0
227* maybe better wp drawing
228* wp's alphabetically (good luckers) or at least when loading
229* wp editing
230* direct gps support
231
2320.3.0 (still here?)
233* new viking -> not new process
234* wp icons
235* routes
236* improve direct manipulation
237* bugfixes
238* smart labeling so we can see 2 wp's (nearly) in the same place
239* UTM zones (?)
240
2411.0
242* DEM maps
243* mapsource files
244* anything else possible, plausible and desirable.
245* lots and lots of docs
246* UI cleanups
247
248Uses:
249* planning
250* viewing -- showing places/tracks on topo or street maps or scanned maps
251* map download & printing -- your own, TOPO-thomas guides or city thomas guies
252* adding coord lines to scanning maps -- print 'em out or see where they are
253* editing tracks
254* managing & organizing data
255* creating maps and gps maps
256
257SCALING:
258* maybe downn scaling of higher-quality topos to accommodate odd zoom resolutions. this would also be useful for downloading _only_ high
259 quality topos, or zooming out and seeing what topos we are missing, or downloading LOTS more topos at once (w/ download all on screen)
260 again, we will have to see how good GTK scaling is.
261* maybe scaling of weird-scale (georeferenced) maps
262
263Other
264* georeferenced raster layer:
265 Optional:
266 - fix off-by-one-pixel bug (probably corner stuff) (?)
267 - utm zones (?)
268 - tool (maybe BUTTON 4,5 thing), and maybe a better zoom tool. but for release it's OK.
269
270ROTATION/MESSED UP MAPS:
271* Track/Waypoint Plotting as Lat/Lon (or artificial rotation, maybe preferred) for those kind of maps
272 and/or rotation of maps (not as good)
273* maybe option "draw as lat long -- UTM center +- 1000 or something to find degrees/pixel (or use some other formula a la odu)
274* or just rotation in screen_to_utm and utm_to_screen
275* "anchoring down" one part of a georeferenced map for rotation and scaling.
276
277* fix coord layer, it is SO horribly broken for high zoom levels.
278
279* Investigate "chunk already freed"
280* investigate if layer type doesnt have icon wont start bug
281* Cleanups and fixes until 0.0.5-final:
282* at least two of these things
283 * Merge TRW Layers
284 * copy and paste items
285 * MapBlast
286
287These Cleanups:
288
289-> These Cleanups
290maybe "max size" thing for each param
291--> maybe address within layer (struct offset) so wwe can just do away with set_param (in most cases). put stuff in realize or after_read
292cleanup interface <---- IMPORTANT
293
294-> cleanups below
295
296-> sometime:
297 has_altitude or NO_ALTITUDE -> 999999
298
299-> 0.0.6
300
301C*L*E*A*N*U*P*S
302
303dialog.c -> misc.c, viktrwlayer.c
304export a layer from the file menu, some how. Export Layer -> choose layer. or Export Selected Layer (disabled as need be
305---
306*MAYBE*
307
308RGN type and other type in something of its own, not name.
309that way, we can use the same file for waypoints to gps and for maps.
310
311solutions to this problem:
312File->Properties:
313 Position:
314 <R> Save current position
315 <R> Save this position:
316 UTM/LATLON ZOOM
317 <R> Save no position
318
319-------
320-------
321-------
322-------
323
324(fixes + cleanups + scaling + rotation + ruler widgets (?) + topos & orthos in one (?) + copy&past items + merge layers) = 0.0.6
325
326then 0.0.7, 0.0.8, 0.0.9 focus
327
328things before "major" release:
329direct manipulation (major feature/use)
330use current viking (maybe)
331
332to second "major" release:
333libgpspoint2 and/or gpsd (show current pos)
334map ui (rough edge)
335analyzing stuff better, exact analyzing.
336
337to 1.0
338UTM ZONE!!!
339
340> Although almost all of these are on your todo list I thought I would add my thoughts.
341>
342> 1. Being able to choose the map units. The metric system still baffles
343> some of us.
344> 2. Modular set up for map sources. The urls tend to change/disapear
345> when companies get bought up by micro$oft (mapblast). The ability to
346> import/export georefrenced maps.
347> 3. Manipulations of track data...distance, altitude etc.
348> 4. Export/printing of maps.
349> 5. Eyecandy. Colors and symbols for tracks, waypoints and routes. Shade
350> topo maps with DEM data.
351
352file format + hig compliance + bug fixes + MAYBE track undo = 0.0.4
353FF2 + ruler widget + topos&orthos in one +comment field + bugfixes = 0.0.5
354if viking already running, use that process. + copy and paste layers + merge layers
355 + copy and paste items + bugfixes = 0.0.6
356Direct manipulation, WYSIWYG moving + track connecting + etc = 0.0.7
357track segment selection, deletion, track point deletion (create two segments or skip point) +
358 waypoint symbols + bugfixes = 0.0.8
359toolbar + layer properties boxes changes, etc. + misc = 0.0.9
360routes + misc + code cleanups = 0.0.10
361map download ui + code cleanups + bugfixes = 0.0.11
362other goodies, fixes, break release = 0.0.12
363misc, etc. fixes, cleanups = 0.0.14
364autotools, I18n + etc. = 0.0.15
365fixes = 0.1.0
366
367(NOT IMPORTANT. FF2 will come.)
368functions write_utm, read_utm to save space
369sizeof(Waypoint) != sizeof(components)! try to save disk space
370len of layer for each layer so older versions can skip over new layers
371Make it so if layertype >= vik_layer_num_types, skip layer. (in aggregatelayer.c)
372Use magic numbers, and lengths to better prevent version messing ups (len of layer data, if extra,
373 rest skip, if not enough, ignore, etc.) 9in layer file themselves)
374---
375
376Viking 0.1.0 "It's been a long road..."
377
378> 0.1.0: anylyzing speed and time, libgpspoint, misc goodies
379> 0.2.0: garmap layers, utm zones, etc.
380
3810.0.4 "Lame Duck Tape"
382--------------------
3830.0.6 "Where we're going, we don't need roads..."
384--------------------
385--Definitely:
386UNDO DELETE LAYER!!! Or ask, maybe? For now, ask: later, maybe an undo "stack of commands" where things at the bottom of the stack are done only as new things push them down?
387more "Forgive the user" kind of stuff.
388
389FIXES:
390 Acceptable chars in dialog.c & gpspoint.c
391 file check if it's a directory for load & save.
392
393Route support!
394
395Toolbar
396Do something similar with tools. layer_tools func in interface, then a tools structure, array, or add2menu func. humm
397
398Track Colors -- PROBABLY.
399
400viktrwlayer_dialog.c -- we MUST do this one.
401 No, even better Idea. framework where properties are stored as RESOURCES for each type of layer.
402 Each type of layer defines it's own resources and the viking layer dialog builder picks it up and draws the dialog.
403 Comments? Format? Fields?
404 Type: check, double/spin (including range, and all other params), string, double/entry, int/entry
405 And then subdivisions (tabs) of that. Track drawing, track colors, waypoints. or Drawing, Colors, ...
406
407fix layers_menu_add_layers
408 I've made a mess of the add menu stuff. The add submeny is bad.
409 maybe a itemfactory thing in layer interface (for now, it's OK... but...) at the very least a serializedicon thing in
410 interface so I don't have to serialize it every time... draining resources.
411
412 -- what if i have one menu with the icons and everything already made, and both vlp and wikwindow adds that? no, then i
413 could't have custom callback data. what if all layer types' itemfactory items were modeled as "Add Layer/TRW Layer" Then
414 I'd have an add layer menu in each?
415 -- think about it.
416
417
418MAYBE:
419 MOVE A WAYPOINT
420 Waypoint Symbols, get started. symbols.c where i have a Name->ID mapping, then an ID->icon mapping. Get Started on Icons.
421 Merge 2 TRW Layer
422 Better CoordLayer.
423 Fix Some Bugs, Clean up Some Code.
424 Bulk Map Downloader (maybe another project)
425 renaming waypoints -- overwriting
426
427
428And There's Your Release.
429
430Other Ideas:
431fix editing / move bug (ideas?)
432copy & paste individual tracks & waypoints
433tracks & waypoint ordering (?!)
434don't forget about track SEGMENTs !!! (shoot for 0.0.5; should be in by 0.0.6)
435vik_trw_layernew_track like waypoint. or maybe not (need starting point?)
436I18N -- at least fake ( all strs _() ized)
437HIG compliance...
438maybe export all visible trw's (nah, merge)
439select waypoint; break up a track
440Coordlayer color chooser
441Coordlayer: UTM
442trw_layer centerize: randompoints & average
443maybe in item_add get visible and name from the layer / track / whatever itself.
444ALSO, maybe chane set_name to update_name.
445show tracks and waypoints (dynamic stuff)!! Copying between layers! YEAH
446
447do some TODOs
448
449---------------------------------------
450| 0.0.5 |
451---------------------------------------
452| "Not all those who wander are lost" |
453---------------------------------------
454Track & Waypoint sorting
455Convert to GLIB Gobjects for layers
456I18N
457AutoTools
458Track Colors
459select waypoints; select trackpoints; selet track segments; measuring track & segment length; analyzing trackpoint altitude
460& time by selecting it; color by altitude/
461Copy & Paste Layer (see below)
462legend (length)
463
464copying between layers: sublayer_add_menu_items () -> copy -> static pointer for layers panel, or whole process.
465two ways of doing it: layer2copy & sublayer2copy, or general purpose "cliboard" var. on paste, layer / aggregate layer figures it out.
466I vote for "layer2copy" and "sublayer2copy". That way, each layer can check if it can paste the sublayer and paste layer will always be there.
467then you need a duplicate function for each thing you want to copy. shouldn't be too bad.
468
469
470~-~-~-~-~-~-~-~
4710.0.6 "Where no man has gone before"
472---------------
50a14534
EB
473Map Download Background Thread
474LibGpsPoint
475Settabl eFonts
476UTM zones
477Waypoint Symbols
478Edit Timestamps
479show different fields on side: altitude, time, etc. sort by these. maybe a layer edit dialog box.
480
481------
4820.1.0
483------
484Garmap Layer!
485
486
487Other:
488--------------
489waypoint symbols
490make your own timestamp
491CACHE MAP SERVER IP; RETURN ERROR FOR WHY DOESNT WORK
492MAP DOWNLOAD PROGERESS (!)
493more g_asserts ... lots more
494UTM zones, aye...
495
496----------------------------------------
497========================================
498++++++++++++++++++++++++++++++++++++++++
499fix tracks thing: STILL BUGS ! and clean up function maybe?
500start noplace, when open file start in middle of there
501clarification of new / open ( add to or what? maybe add to in layer; merge layer stuff )
502status bar: don't overlap stuff
503
504i18n!!!
505
506coordlayer -- ticks only
507tick marks or lines for utm lines so you can tell where you are (TickLayer)
508
509Intelligent Map Caching: knows which way you're going ... just something to think about.
510
511Download all maps
512
513routes
514choosable gcs including background
515Maybe each track has it's own GC? Just a thought.
516Tools, explore etc. tools menu. tools window / bar
517save stuff
518status bar for track info, etc.
519
520+TODO from otu ...
521
522glist for routes (pointer directly to string used in ghashtable key? possible?) and tracks.
523
524"Viking -- can you handle the power?"
525"Viking -- where do you want to go today?"
526"Viking -- where have you been today?"
527"Viking -- where did you go today?"
528
529"Vikingis Conqueris"
530
531"The Viking Conquereth"
532Viking 0.0.1pre15
533
534Viking "the fake GIS"
535Viking "the wannabee GIS"
536Viking "CasiGIS"
537
538Viking QuasiGIS (tm)
539
540GPX support, loc.gz
541So Many Possibilities...
542
543OTU can do Viking can't:
544 * routes
545 * instant GPS location (sorta)