[Openstreetmap-dev] Data Primatives & schema

Andy Robinson Andy_J_Robinson at blueyonder.co.uk
Wed Dec 21 09:49:58 GMT 2005


Matt Amos wrote:

snip

>we have to be more explicit here, i think. the ways must consist of an
>ordered list of segments, where two adjacent segments must share one,
>but only one node and, apart from the first and last, each node must
>be used precisely twice.
>
>example (assume nodes 0-3 are already declared, segments 0-2 go from
>nth to n+1th node):
>
><way>
>  <segment uid="0" />
>  <segment uid="1" />
>  <segment uid="2" />
></way>
>
>is legal. however,
>
><way>
>  <segment uid="0" />
>  <segment uid="2" />
>  <segment uid="1" />
></way>
>
>is not, as segment 0 is nodes [0,1), segment 2 is nodes [2,3) and they
>don't share a node.

That definition assumes that the order of the segments in line is 0, 1, 2
when it could be 356, 5669, 358 because a SEGMENT was deleted and a new one
made. The only distinguishing attribute is the attached NODE uid's, should
it be the NODE uid's that are used for the sequence making up a section of
WAY?

I agree that ordering is required; however does the arrangement allow for
breaks in the continuity of the WAY. This was an important and previously
identified capability since many "street" ways are not contiguous over their
complete length. In a client the user would select appropriate SEGMENTs but
they may not be contiguous, so each section of WAY would presumably need to
be similar to a gpx track segment where each are separate? Both may have the
same name of course (eg Baker Street) but they each have a separate uid.

I'm also thinking about long WAY's here when editing is done by different
users at different times. For example, turning the hundreds if not thousands
of SEGMENT's making up the M6 motorway is not something that is likely to be
done in one shot, or even by a single user.

This brings me to a point you raised before about deleted NODE's. If someone
deletes a node (and assuming that a line segment was attached the segment
too), then how does this affect WAY's and ZONE's which have used the
original NODE (and SEGMENT if applicable). My feeling as an editor is that
you delete the node or line segment because it's no longer required. I
currently delete a lot only because there is no way to insert a new node by
breaking a SEGMENT, eg when a new street is drawn junctioning it. If we
assume that this "feature" is changed then this question may be somewhat
mute if a rule is adhered to. But what should the rule be and should it be
different between SEGMENTS, WAYS and ZONES's

>
>> - zones are represented by a clockwise enclose of the area. The
>> last node is not transfered (its implicit).
>
>also, the zone should have a single, non-self-intersecting boundary. i
>know POLYGON supports interior boundaries, but i don't think its
>something we're ready for yet ;-)
>
>> - Is the "keys are objects too" - idea already abandoned? If not,
>> you forgot the keys. ;-)
>>
>> > 3. Any comments on the nomenclature change of Street to WAY and
>> > Area to ZONE
>>
>> Fine to me.
>
>"street" and "area" are already implemented and being used, so it
>would be a hassle to change them unless there were a really good
>reason?

Is "street" being used already? I thought not. Anyway, what the name is on
the database does not need to be the name used for the discussion,
especially with respect to what end users want supported in their maps. The
data transport mechanism can always be the method of "mapping" one name to
another anyway. I originally picked WAY because it better fitted the many
polyline types present on a traditional map, at least a lot more than street
does. It also kept the concept of a streetmap rather than using a generic
"line" or "polyline", which I felt was better for map feature discussion
purposes.

As for Area or ZONE I really don't care. ZONE I think is used more generally
to describe different types of area and hence why I picked it. Using ZONE
for discussion would I hope generate additional ideas for map features not
seen on conventional maps. i.e. that a ZONE can describe any area on a map
as a specific layer. For example, on traditional maps a housing estate is
normally give a POI label, e.g. Baker Estate. Creating a ZONE for Baker
Estate which additionally encompasses the entire map features held within
its boundaries has some useful additional extension possibilities for OSM.

>
>cya,
>
>matt

Thanks for the input Matt.

Andy





More information about the dev mailing list