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