[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| Re: [udig-devel] in memory layers, dynamic layers, table view, etc. | 
Hi Vince sorry about the delay in answering.
On 20-Mar-07, at 11:46 AM, Vince Darley wrote:
We've been developing in small ways with uDig in the past several  
months, but have recently put more effort in moving some older  
software across to use uDig as our primary platform for routing- 
style software.
As part of this we've written a variety of dynamic layers which are  
added to uDig's "Catalog" and can be dropped onto any map.  These  
layers listen to our routing solution views and update nicely to  
display the current solution.  This all works more or less ok at  
present.
However, we've run into a few issues:
1) Some of our layers would like to have more than one Geometry,  
with the user in some way able to select which geometry they'd like  
to view and/or configure their style differently.  For example a  
layer might contain details on both journeys that are made  
(LineString) and the points that are reached (Point) and might wish  
to colour each differently.  Of course we could split this into two  
layers, but then many of the attributes would be duplicated.
Is it possible/sensible for a layer to have more than one Geometry?
Ok here's the issue here.  Featuretypes can support multiple  
geometries.  And I believe the renderer has some support for  
rendering it.  Given a good SLD the renderer is supposed to be able  
to render the multiple geometries...  That said it is not well tested  
so be prepared for some debugging.  Also editing multiple geometries  
is not yet supported.
2) The Table View shows our data, which is nice, but doesn't seem  
to support any sorting, column-rearrangement, or filtering.  For  
example we'd like the user to be able to arrange the columns in the  
order they wish, and omit some columns, and sort them up or down by  
simple clicking on column headings.
Sorting right now is limited to sort by attribute (alphabetical)  
click on the headers to see that.  Also the selected items can be  
promoted to be on the top.  The Table View uses a class called the  
FeatureTableControl (I think) for displaying the features.  The  
FeatureTableControl has a method that sorts the features as dictated  
by a Comparable.  We can add a section to the view menu that displays  
the options for custom sorting and the sorters can be an extension  
point.
WRT filtering, the FeatureTableContentProvider is responsible for  
displaying the features.  It could be modified to filter out some  
features.  Although I'm not too eager about that idea.  It doesn't  
really follow the design of the view.  For that I'd almost suggest a  
different view based on the same FeatureTableControl.  The control  
takes a feature collection and displays everything in the  
collection.  So you couldhave your own view that shows filtered views  
of the layer.
Is any of this possible (at present or in future, or can you point  
us to the right way to dive in to this)?
3) Our current layers are 'dynamic' in the sense that they can be  
updated from time to time, but nothing more than that.
What support is there for genuinely animated layers (e.g. a truck  
moving around on the map)?
The MapGraphic can handle updating every second or so but it will  
really hurt the performance of other operations.  For example  
rendering a shapefile will be slower.  But you can experiment.  There  
are also IAnimation objects that are very light-weight and know  
nothing about projections but do have access to the map so they can  
be used to the the animations.  I would suggest this option even if  
it is slightly more work (it isn't very much more work though).  You  
start an animation by using the AnimationUpdater class.
thanks for any pointers!  It will be a great relief when we can  
throw away a bunch of horrible old code and stick with uDig 100%...
Vince.
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel