[
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. | 
I hope this helps.  It is just an over view to get you in the correct  
direction.  Feel free to ask more questions as you encounter them.
Jesse
On 22-Mar-07, at 2:03 PM, Jesse Eichar wrote:
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
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel