2 ----------------------------
3 option 1) use gtkclipboard for pasting what we can; use internal clipboard
4 for viking data. viking data isn't useful to other programs.
6 option 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,
13 TODO till release 0.1.1:
17 check out bgitemcount stuff in background.c (hangs on clear!)
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)
21 g_dtostr instead of fprintf in the appropriate places
22 Debugging output shouldn't be printf'd but we g_print'd, and we should have a DEBUG flag
26 DND between VikWindows
27 ? Fix coord layer for various projections
28 selections (select area of waypoints, trackpoints, etc)
29 Clipboard done right -- GtkClipboard, between processes
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.)
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
40 tracks have their own colors, etc.
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!
52 "click to go there" elevation map: average out, not nearest trackpoint.
54 FEATURE WISHLIST (i.e. unlikely to get done):
56 Better annotation for tracks, etc. Fields, etc.
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)
63 import from data sources ( gpsbabel (gps device) / google / geocaching.com )
65 MISC 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
84 * Data sources: google, gpsbabel
85 * gpsbabel plugin -- wired up to get directions from google maps.
87 * direct GPS support (?)
88 GPS navigation (speed, etc, etc)
89 * advanced downloader?
92 whole list: length, max movement, icons. can make more. right click -> stops...
94 * draw by altitude, altitude side thingy.
100 * new UI & documentation
101 * internationalization
103 * TIGER data, vector maps
105 * altitude stuff, goodies
106 * major UI changes, direct manipulation
107 * sit down for a day or two and design the bestest bestest UI
111 * more sophisticated vector data, almost GIS stuff. garmin maps, whatever
114 --------------------------------
118 * square & track-based
119 * select everything in, everything out
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)
126 * some of the above optimizations
129 * delete dupes by name
130 * delete dupes by location; name & location
132 * track editing -- everything on that idea sheet on my desk.
134 * show list of pics in one location
135 * maybe track-by-elevation
137 * alphabetize waypoints & tracks
138 * d&d layers (not worth it?)
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?)
148 -> maybe get rid of post_read (use set_param to update gc's -- but maybe not...)
150 * due <= 2004-6-12 (1 yr after 0.0.3)
153 * do alpha _right_ (to see what I mean, try drawing a transparent PNG)
154 -----------------------
156 POSSIBLE MAP OPTIMIZATIONS:
157 save conglomerates of shrunken images [to disk]?
158 static cache.c shared between everything -- SHARE MAP CACHES BETWEEN LAYERS AND WINDOWS!!!
159 background loading thread
160 load zoomed out images into conglomerates
162 Sort images by some sort of checksum (maybe sum of all digits) into 10 groups
163 makes finding cached image 10 times faster
164 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.
165 better 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
168 pixmap (not pixbuf) cache?
169 vikmaplayer.c:520, don't run g_slist_length who-knows-howmany times (only noticable when shrinking cache)
170 stat images to make sure the size isn't zero (vs. trying to load them). then show errors for bad ones (?)
171 don't lookup IP each time (?)
173 ------------------------------
176 Then, focus on Lat/Lon and mapquest maps. (????)
177 Then, focus on Lat/Lon and mapquest maps.
179 0.0.9 "260 million maps... I can't hear you at all" release:
180 finalize pthread/map download UI.
181 export to image fix bug
182 viking running -> use this thread ( good luckers !!! )
185 0.1.0 "where we're going, we don't need roads" release (concept idea):
186 Select a waypoint, delete to delete it, real tools, a toolbar, etc.
188 alphabetatize waypoints & tracks
189 "area selections" -- select tool -> select waypoints in/outside area, download maps in area, etc. etc.
191 -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
193 0.1.0: the "fixes, patches, improvements, and goodies" release
194 "Where we're going, we don't need roads..."
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) (?)
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 ?
201 right click->new track here, new waypoint here. general TRWEdit tool with popup on vikviewport, it can be done.
202 general edit->delete to delete whatever is selected. ugly stuff ahead.
203 show human-readable timestamp
204 toolbar/toolbox, tool opts win (for tpwin) like in gimp (?)
205 Maybe fix "private" ref_count in clipboard.c (?)
206 clean up viktrwlayer.c, call track_realize() when adding track with add_track(), del dup. code, esp. in track_draw
207 move/edit by click for wp?
208 toolbar/toolbox, tool opts win (for tpwin) like in gimp (?)
209 only draw if in UTM zone !!!
210 Track color-by-elevation ( go all over an area, make tracks thicker/zoom out to create DEM color map ?! )
212 Thing to download lotsa maps (script or builtin -- ?)
213 Merge 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
217 picture layer, thumbnails and all...
218 move to gpsbabel default altitude, reflect it everywhere, include viking-remote
219 gpspoint.c -- use new easy gpsbabel code, abc, 123.
221 hard things to think about that need to be done sometime (mainly hard/impossible):
222 1) map downloader process / map download queue
223 2) if viking already running, use that process. cut and paste will work much better.
225 EVERYTHING ABOVE THIS LINE SHOULD BE IN 0.1.0! 0.2.0 WILL FOCUS ON LAT/LON AND STREET MAPS
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
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
244 * new viking -> not new process
247 * improve direct manipulation
249 * smart labeling so we can see 2 wp's (nearly) in the same place
255 * anything else possible, plausible and desirable.
256 * lots and lots of docs
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
265 * managing & organizing data
266 * creating maps and gps maps
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
275 * georeferenced raster layer:
277 - fix off-by-one-pixel bug (probably corner stuff) (?)
279 - tool (maybe BUTTON 4,5 thing), and maybe a better zoom tool. but for release it's OK.
281 ROTATION/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.
288 * fix coord layer, it is SO horribly broken for high zoom levels.
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
295 * copy and paste items
301 maybe "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
303 cleanup interface <---- IMPORTANT
308 has_altitude or NO_ALTITUDE -> 999999
314 dialog.c -> misc.c, viktrwlayer.c
315 export a layer from the file menu, some how. Export Layer -> choose layer. or Export Selected Layer (disabled as need be
319 RGN type and other type in something of its own, not name.
320 that way, we can use the same file for waypoints to gps and for maps.
322 solutions to this problem:
325 <R> Save current position
326 <R> Save this position:
335 (fixes + cleanups + scaling + rotation + ruler widgets (?) + topos & orthos in one (?) + copy&past items + merge layers) = 0.0.6
337 then 0.0.7, 0.0.8, 0.0.9 focus
339 things before "major" release:
340 direct manipulation (major feature/use)
341 use current viking (maybe)
343 to second "major" release:
344 libgpspoint2 and/or gpsd (show current pos)
346 analyzing stuff better, exact analyzing.
351 > Although almost all of these are on your todo list I thought I would add my thoughts.
353 > 1. Being able to choose the map units. The metric system still baffles
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.
363 file format + hig compliance + bug fixes + MAYBE track undo = 0.0.4
364 FF2 + ruler widget + topos&orthos in one +comment field + bugfixes = 0.0.5
365 if viking already running, use that process. + copy and paste layers + merge layers
366 + copy and paste items + bugfixes = 0.0.6
367 Direct manipulation, WYSIWYG moving + track connecting + etc = 0.0.7
368 track segment selection, deletion, track point deletion (create two segments or skip point) +
369 waypoint symbols + bugfixes = 0.0.8
370 toolbar + layer properties boxes changes, etc. + misc = 0.0.9
371 routes + misc + code cleanups = 0.0.10
372 map download ui + code cleanups + bugfixes = 0.0.11
373 other goodies, fixes, break release = 0.0.12
374 misc, etc. fixes, cleanups = 0.0.14
375 autotools, I18n + etc. = 0.0.15
378 (NOT IMPORTANT. FF2 will come.)
379 functions write_utm, read_utm to save space
380 sizeof(Waypoint) != sizeof(components)! try to save disk space
381 len of layer for each layer so older versions can skip over new layers
382 Make it so if layertype >= vik_layer_num_types, skip layer. (in aggregatelayer.c)
383 Use 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)
387 Viking 0.1.0 "It's been a long road..."
389 > 0.1.0: anylyzing speed and time, libgpspoint, misc goodies
390 > 0.2.0: garmap layers, utm zones, etc.
392 0.0.4 "Lame Duck Tape"
394 0.0.6 "Where we're going, we don't need roads..."
397 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?
398 more "Forgive the user" kind of stuff.
401 Acceptable chars in dialog.c & gpspoint.c
402 file check if it's a directory for load & save.
407 Do something similar with tools. layer_tools func in interface, then a tools structure, array, or add2menu func. humm
409 Track Colors -- PROBABLY.
411 viktrwlayer_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, ...
418 fix 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.
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?
431 Waypoint Symbols, get started. symbols.c where i have a Name->ID mapping, then an ID->icon mapping. Get Started on Icons.
434 Fix Some Bugs, Clean up Some Code.
435 Bulk Map Downloader (maybe another project)
436 renaming waypoints -- overwriting
439 And There's Your Release.
442 fix editing / move bug (ideas?)
443 copy & paste individual tracks & waypoints
444 tracks & waypoint ordering (?!)
445 don't forget about track SEGMENTs !!! (shoot for 0.0.5; should be in by 0.0.6)
446 vik_trw_layernew_track like waypoint. or maybe not (need starting point?)
447 I18N -- at least fake ( all strs _() ized)
449 maybe export all visible trw's (nah, merge)
450 select waypoint; break up a track
451 Coordlayer color chooser
453 trw_layer centerize: randompoints & average
454 maybe in item_add get visible and name from the layer / track / whatever itself.
455 ALSO, maybe chane set_name to update_name.
456 show tracks and waypoints (dynamic stuff)!! Copying between layers! YEAH
460 ---------------------------------------
462 ---------------------------------------
463 | "Not all those who wander are lost" |
464 ---------------------------------------
465 Track & Waypoint sorting
466 Convert to GLIB Gobjects for layers
470 select waypoints; select trackpoints; selet track segments; measuring track & segment length; analyzing trackpoint altitude
471 & time by selecting it; color by altitude/
472 Copy & Paste Layer (see below)
475 copying between layers: sublayer_add_menu_items () -> copy -> static pointer for layers panel, or whole process.
476 two ways of doing it: layer2copy & sublayer2copy, or general purpose "cliboard" var. on paste, layer / aggregate layer figures it out.
477 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.
478 then you need a duplicate function for each thing you want to copy. shouldn't be too bad.
482 0.0.6 "Where no man has gone before"
484 Map Download Background Thread
490 show different fields on side: altitude, time, etc. sort by these. maybe a layer edit dialog box.
501 make your own timestamp
502 CACHE MAP SERVER IP; RETURN ERROR FOR WHY DOESNT WORK
503 MAP DOWNLOAD PROGERESS (!)
504 more g_asserts ... lots more
507 ----------------------------------------
508 ========================================
509 ++++++++++++++++++++++++++++++++++++++++
510 fix tracks thing: STILL BUGS ! and clean up function maybe?
511 start noplace, when open file start in middle of there
512 clarification of new / open ( add to or what? maybe add to in layer; merge layer stuff )
513 status bar: don't overlap stuff
517 coordlayer -- ticks only
518 tick marks or lines for utm lines so you can tell where you are (TickLayer)
520 Intelligent Map Caching: knows which way you're going ... just something to think about.
525 choosable gcs including background
526 Maybe each track has it's own GC? Just a thought.
527 Tools, explore etc. tools menu. tools window / bar
529 status bar for track info, etc.
533 glist for routes (pointer directly to string used in ghashtable key? possible?) and tracks.
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?"
542 "The Viking Conquereth"
545 Viking "the fake GIS"
546 Viking "the wannabee GIS"
552 So Many Possibilities...
554 OTU can do Viking can't:
556 * instant GPS location (sorta)