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