[Xastir-Dev] some ideas for map speedups

Curt Mills, WE7U hacker at tc.fluke.com
Mon Jul 7 18:24:15 EDT 2003


On Mon, 7 Jul 2003, Alan Crosswell wrote:

> Wow!  Sounds like Curt was real busy last weekend while I was communing with
> nature in the Adirondacks ("Hey, pass me the can of insect repellent?"  "Does
> anybody have matches?" :-)
>
> I jotted down some ideas for improving vector map performance on the train this AM:
>
> - Insinuate an intermediate vector data structure layer between the map-specific
> file reading functions and the map display functions (instead of directly
> invoking X drawing functions).  This then canonicalizes all vector maps to a
> single Xastir internal data structure which captures the attributes we care about.
>
> - Cache these vectors into memory up to a certain configurable memory limit.
>
> - Sort the memory vector list by display_level:  Major features that display at
> level 8192 are earlier in the list, those that display at level 1 are last in
> the list.  When rendering, it becomes really easy to decide when to stop -- and
> the map draws in order of feature prominence.
>
> - Cache 25%(?) more than the current viewport to support quick panning and
> zooming out.
>
> - Use available idle cycles in a low-priority thread to continue filling out
> around the edges of the viewport and drilling down to more detailed vectors
> (remembering the above sorting).
>
> - Get really smart and use dead reckoning prediction when tracking a moving
> station to determine what to render/cache next.
>
> - Potentially allow writing this cache out to disk for faster reuse and to
> support "swapping."

Another:  For Shapefiles where we know the format, drop more
detailed shapes as we zoom out.  For instance, drop smaller creeks
and roads.  This would be a major speedup for the way I currently
use Xastir.  If the limits were set well I could leave more counties
selected than I do now.

Another:  If we were to have a method for guessing the Shapefile
format (or manually inputting more info) while indexing, we could
specify the label column, a size column (useful for the previous
idea), and perhaps other info.  This would allow us to remove the
"guessing" code from map_shp.c, speeding up the drawing of shapefile
maps.  It would also allow us to use shapefile maps that had the
labels in different columns than currently expected, like road maps
from other sources.

-- 
Curt Mills, WE7U                    hacker_NO_SPAM_ at tc.fluke.com
Senior Methods Engineer/SysAdmin
"Lotto:    A tax on people who are bad at math!"
"Windows:  Microsoft's tax on computer illiterates!" -- WE7U
"The world DOES revolve around me:  I picked the coordinate system!"



More information about the Xastir-dev mailing list