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