[
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