[OSM-dev] osmtools first release - nodeID

Hendrik Siedelmann hendrik.siedelmann at googlemail.com
Sun Apr 27 19:47:45 BST 2008


2008/4/27 Andy Allan <gravitystorm at gmail.com>:
>
> On Sun, Apr 27, 2008 at 4:58 PM, Hendrik Siedelmann
>  <hendrik.siedelmann at googlemail.com> wrote:
>  > 2008/4/27 Marcus Wolschon <Marcus at wolschon.biz>:
>  >
>  >
>  >  >  | Nodes can still be identified by their lat/lon coordinates. As nodes
>  >  >  | are not duplicated in the database this is possible. And routing still
>  >  >  | needs to find which ways reference a node, so routing from one way to
>  >  >  | another is still complicated. On the other hand checking if another
>  >  >  | way uses the same points is fast on a spatial database (I will at some
>  >  >  | time provide funktions provide routing)
>  >  ...
>  >  >  So the system cannot know the difference between 2 ways sharing the same
>  >  >  node and 2 ways with 2 nodes that just share the same coordinates?
>  >  >
>  >
>  >  Yes for the database it's the same. On the other hands if two nodes
>  >  share the same coordinates they should be joined (Thats what I read),
>  >  so there will never be two nodes at the same coordinates. (At least in
>  >  theory)
>
>  This is incorrect. In OpenStreetMap two nodes can share the same
>  coordinates, and each belong to a separate way. This does *not* imply
>  that the ways are connected - in fact, quite the opposite. This is why
>  ways reference nodes, not coordinates.
>
>  I think you've misunderstood a fundamental part of our data model!
>  What you are doing is fine for raster rendering (and is in fact how
>  osm2pgsql works, converting ways into Linestrings) where topology is
>  unimportant, but is completely incorrect for routing.
Ugh. Looks like it. Propably explains why the osm files from
osm_server seemed to work with osmarender.
I'll change the way nodes are handled. It' to bad, this will increase
database size. But at least it will then be in sync with the osm data
model.

A question: So when doing routing two ways can be considered connected
when they share a node. And restricitons in this connection (turn
restrictions ...) are embedded in the node they both reference,
correct?




More information about the dev mailing list