[Xastir-Dev] Map Drawing Tweaks

Jack Twilley jmt at twilley.org
Tue Jun 17 16:46:03 EDT 2003


WARNING: Unsanitized content follows.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

>>>>> "Robert" == Robert Donnell <BobDonnell at arkalmus.com> writes:

Robert> Hi Everybody!  Here are some thought for improving the map
Robert> drawing process.  These are based on observations I had with a
Robert> sequence of events last night, driving on my way home from
Robert> SeaPac.

Robert> 1) When drawing vector maps, object that would render as
Robert> shorter than 0.5 pixels should be discarded.  Objects to be
Robert> rendered at less then 2 pixels should be rendered as a single
Robert> pixel.  If the length calculations for the object are done
Robert> early or first in the evaluation process, it should be easy to
Robert> toss out a lot of objects that "just don't count".  This is
Robert> significant when a large area of vector maps are available,
Robert> and the zoom level (range scale, too) is high.  In my case
Robert> (more below) it was trying to load all the available vector
Robert> maps (palm, pacific northwest Tiger, WinAPRS) on the hard
Robert> drive for a zoom window that grew to encompass the world.

This is an excellent idea, and it would go well with the suggestion I
made of providing minimum zoom levels for maps as part of the chooser.

Robert> 2) When an event that requires a map redraw occurs, read the
Robert> event queue to see if there are any other events that would
Robert> cause a subsequent immediate redraw.  Modify the parameters
Robert> for the redraw window to reflect the additional events, until
Robert> all such events are cleared from the queue.  This would reduce
Robert> the occurrence of redraw cycles occurring "endlessly" (and
Robert> killing performance) for acts like resizing the window, and
Robert> (what happened to me) having a page up/down or arrow key get
Robert> held down such that many (many!) events get queued.  Even
Robert> after using chmod to make the map directories unreadable, I
Robert> waited (and drove) for 90 more minutes before giving up and
Robert> killing X to end the session.  Using 'kill -9 <pid>' wouldn't
Robert> end the pain.  Granted, this is on a P150MMX, but it's a
Robert> computer I'm willing to leave in the car, and it handles all
Robert> of the other details of running Xastir sufficiently.

This may involve more artificial intelligence than is available for
the software to use.

Robert> I think the second item could be improved further by
Robert> implementing a short time delay from the last map-modifying
Robert> keystroke or mouse event until a redraw is started, with the
Robert> keystroke queue being checked to see if the next keystroke or
Robert> mouse event (if any) also modifies the map redraw window
Robert> parameters.  Curt suggested that the time delay could be
Robert> en/disabled as a setting.  We both decided that a slider bar
Robert> for the time delay is way over the top :-)

If a time delay is added, something more noticeable than a busy cursor
needs to be displayed to the user -- perhaps a "please wait..."
window, with a cancel button or something.

Robert> 73, Bob, KD7NM

Jack.
(yay, my server is back up.)
- -- 
Jack Twilley
jmt at twilley dot org
http colon slash slash www dot twilley dot org slash tilde jmt slash
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (FreeBSD)

iD8DBQE+734QGPFSfAB/ezgRAo9WAJkB11Ya0P56Wn+akwVGFGALRcx7JACgvdna
BbpezGhZxE8Gn36aVrp/udE=
=f6DI
-----END PGP SIGNATURE-----



More information about the Xastir-dev mailing list