Hi Landon,

1 - I prefer STRtree which is faster than quad tree. But you're right,
STRtree is not updatable and may not fit all use cases.

2 - If I correctly understood Jukka's use case, I think it would me much more easy to union geometries with same attribute(s), then to explode the multi-geometry.
Maybe you can save computation time by indexing geometries and computing
topology relation before unioning, but my feeling is that it will be hard to get
better performance as union has already been optimized by MD.

4 - I have been willing to test MapDB for a long time. If you do so, I'm interested
to get feedback.

5 - There are many plugins which benefit spatial indexing (ex. plugins performing geometric joins, matching, queries...). In these plugins, a STRtree index is generally
computed during plugin execution. As far as I know, the cpu used by STRtree
calculation is generally quite les than the feature processing, but of course, it may depend on what the plugin does exactly. Creating layers using a QuadTree
index may be useful but you should consider the following points :
- you'll have a small penalty every time you add/remove/paste... a feature
(probably a very small penalty though)
- you must check that the index will be aware of any geometry change
- for plugins using an index, you must make check that making many queries on a pre-built quadtree is not slower than building a STRtree as needed and making
the same queries on this index.

My 2 cents,

Michaƫl

I've been working a bit on Jukka's idea for a dual attribute merge plug-in that considers topology. As a first step, I wanted to whip up a FeatureCollection implementation that features spatial indexing and storage of some adjacency topology.

Here are a few questions for the group:

1) I noted that we already have an IndexedFeatureCollection class, but that it is read-only. However, the QuadTree class in JTS appears to support removal of indexed geometry...so we should be able to have a read/write indexed feature collection. Any comments on this idea?

2) I'm going to write some code that will calculate and store (in-memory) polygon adjacency. Does anyone already have code like this (for JTS geometries) they can share?

4) I'll want to store the spatial index and adjacency topology on-disk. Has anyone tackled these problems yet? I'm thinking about using simple text files or maybe using Java MapDB (http://www.mapdb.org/). What do you think?

5) I figure I'll integrate this indexed feature collection into the OpenJUMP API with a plug-in. The user can execute the plug-in to duplicate the currently selected layer to create an indexed feature collection. Then there will be a set of plug-ins that only work on these type of feature collections. Any comments on this plan?

Thanks for sharing your thoughts, or any code. I've got part of the dual merge plug-in GUI written, and I've started on the code for the indexed feature collection (with topology). All of that code will live in my SVN. As soon as I have something of substance, I will post a link.

Thanks.

Landon


------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk


_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to