[josm-dev] [PATCH 1/2] QuadBuckets (using quad tiling) for node storage in JOSM
Petr Nejedlý
petr at nejedli.cz
Sat Sep 12 20:04:12 BST 2009
Karl Guggisberg napsal(a):
> Hi,
>
> what about JOSM-NG?
> http://svn.openstreetmap.org/applications/editors/josm-ng/
>
> Here's their Quadtree implementation:
>
> http://svn.openstreetmap.org/applications/editors/josm-ng/src/org/openstreet
> map/josmng/view/osm/QTree.java
>
> Is there still somebody around who has worked on JOSM-NG?
Im still here though mostly in listen-only mode and with little time to
spare...
Dave Hansen napsal(a):
> Ooh, I forgot about josm-ng. That one looks very usable. If mine
> doesn't pan out, I'll certainly look at that one.
Well, the QTree in josm-ng is similar to yours in the way it distributes
the content, though I did pay quite some attention to memory usage
(hint: e.g. LinkedList is not the collection you'd like to use unless
you have specific reason to) and support also 2d entities (node is
zero-d). The problem with importing it directly into josm is that it
uses (in -ng) the projected (and integer) coordinates. While it doesn't
care whether the coordinates are projected or not, it hugely benefit
from their signed integer nature.
Dave Hansen napsal(a):
> QuadBuckets also happen to implement Collection<Node>. So, we can
> just plug it in for Collection like in the DataSet class.
I have not looked at the josm codebase for a while, but as long as
Node has publicly mutable coordinates, you can't honestly do it.
If anything moves a node, it has no way to automatically jump into the
new bucket. And it makes no sense to try patching all the places which
can move a node (MoveCommand is not the only one).
Regards,
Petr Nejedlý
More information about the josm-dev
mailing list