[postgis-users] Increasing granularity and Index Usage for 4d dataset while Mimimizing performance hit
David William Bitner
david.bitner at gmail.com
Mon Jul 10 12:24:46 PDT 2006
I am working with 4d flight track data that I use for display in MapServer
and many analyses using PostGIS.
Flight track data is not able to make good use of spatial indices for any
types of analyses (usually crosses() or intersects()) due to the fact that
the track geometry tends to be so much larger than the feature being
compared to (bounding box for almost all lines will overlap with just about
any feature you could come up with within the area of interest). As such,
based on advice from the list, in a restructuring of our db, I am looking at
storing our track data as a single segment per record tied together with an
id. This will allow for very accurate use of the spatial index.
In addition, this will allow for better indexing and granularity for the
time dimension as well as rather than storing a T coordinate with each
point, I could make use of the fact that each record only has two points to
store a start time and an end time per record. This would let me only show
the _parts_ of a line within a period of time with (currently, I use a time
overlap and if a flight is in the air at any point in time during the
window, the entire line is shown. This should, I am guessing, be faster
than using the LRS locate_between_measures() function.
Can anyone see any options that I am missing here? Does anyone have an
inkling if, for display in MapServer, I should collect and or simplify the
data before sending it to MapServer? I am likely to be frequently dealing
with hundreds of lines with at the very least dozens of segments a piece.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the postgis-users