[josm-dev] How to present results of my conflation analysis

Josh Doe josh at joshdoe.com
Thu Apr 28 23:14:57 BST 2011


I've implemented the algorithmic part of a conflation tool in a JOSM
plugin, pretty much following what I wrote down here:
http://wiki.openstreetmap.org/wiki/Conflation/Nodes

Right now I'm just using the Euclidean distance in the cost function,
but we can of course add other costs like dissimilarity between key
values.

My big question now is how to present the results to the user, and to
allow them to manually confirm/reject matches. All I've done so far is
to create a new layer which draws arrows connecting the matched
nodes/ways. However that's only a useful visualization tool but
doesn't manage the actual conflation process. You can see the option
dialog and arrow layer here:
http://tinypic.com/r/23sw0u8/7
http://tinypic.com/r/jhd3j7/7

The first question is whether this tool should only merge data from
one layer to another, or if it should allow syncing (i.e.
bidirectional merging) between layers.

The former is of course easier, and can possibly take advantage of
existing functionality in JOSM, namely the conflict resolution tools.
In fact I've added conflicts which appear in the conflict dialog when
the "Conflation" layer is selected. Some things that are missing with
that approach is to highlight the arrow connecting the matched nodes,
and being able to select the arrow to conflate/resolve the pair of
primitives.

Also this conflation approach is slightly different from conflict
resolution since I'm mostly concerned about resolving tags, and
possibly center locations. Right now the conflict tools only support
"resolving" conflicts between like primitives, i.e. Node->Node,
however I need to allow any combination of Node, Way, or Relation. In
other words I may want to match a GNIS feature node (from a fresh GNIS
data set) to an existing feature in OSM that may be a node, area, or
multipolygon. I'm not so much concerned about the geometry but rather
the tags. Conflating geometry is much more complicated and is a future
project. :)

Any ideas would be much appreciated!
-Josh



More information about the josm-dev mailing list