Re: MetApps ShapefileAdapter


Bill Hibbard wrote:

> If you are using a DisplayImplJ2D that will be much slower
> than a DisplayImplJ3D for zooming and I recommend switching
> to DisplayImplJ3D.

I concur with this, but even if you use a 3D display in 2D,
if there are a lot of lines, then the zooming can be painfully
slow.  We see this in our applications when we display something
like county lines over US.  One thing to consider is that if 
your shapefile covers a geographic region greater than the
region you want to display, you can use some of the ShapefileAdapter
constructors that allow subsetting of the data through region
or coarseness.  Also, you might take a look at some of the
McIDAS files (OUTL*) on the VisAD FTP server to see if they
meet your needs.  There is a world land/ocean border map (OUTLSUPW)
and a North America map (OUTLUSAM).  These are generally coarser
than the corresponding shapefiles, thus perform better.  They
were actually created from shapefiles.  SSEC might have others you
could use for your specific area.  You would need to contact the
McIDAS User's Group (mug@xxxxxxxxxxxxx).

> VisAD's zoom performance is determined by the performance
> of Java3D, which will be quite fast with a graphics
> accelerator like nVidea.

We don't see this to be much of an advantage on SunSPARC with
accelerated graphics cards when there are lots of lines in
the map.  It may be that a custom renderer for map lines 
needs to be created which automatically subsamples the
entire dataset depending on the range of ScalarMaps (i.e.
the view).  Otherwise, when zooming or panning, Java3D is
worrying about all points in the map data and thus is slow.
> The long term advantage of VisAD over other systems is the
> generality of its data model (it can handle any numerical
> data) and its generality for distributed computing.

Again I agree with Bill on this using the shapefiles as
an example.  Further, we have talked about developing an adapter
that fully models the data in a Shapefile using a VisAD 
FieldImpl.  The domain would be a UnionSet of the SampledSets
representing each shape and the range would be the attributes
associated with each shape.  So much to do, so little time. ;-)

But, for now, we're glad you find our software useful.