[Talk-de] Entities (war: Re: Hierachien)

Gabriel Ebner ge at gabrielebner.at
Fr Aug 10 18:05:36 UTC 2007


On Wed, Aug 08, 2007 at 10:35:11AM +0200, Frederik Ramm wrote:
> Ich habe ja schon erzaehlt, dass ich da gerade am basteln bin. Ich habe auf
> 
> http://openstreetmap.gryph.de/entities/
> 
> einen Vorschlag vorbereitet, wie man durch Einfuehrung eines neuen 
> Datentyps ("entity"), der Beziehungen zu anderen Objekten haben kann, 
> diesen ganzen Krempel erschlaegt, inklusive Superways. Die Dokumentation 
> ist noch nicht vollstaendig (und auch komplett englisch), und ich will 
> das ganze erst mal im kleinen Kreis diskutieren, bevor ich es auf die 
> englische Mailingliste blase. Wer sich's mal anschauen und es 
> kommentieren will, ist herzlich willkommen - es gibt da auch eine 
> spezielle JOSM-Version zum Runterladen und einen laufenden OSM-Server 
> mit echten Daten, den man zum Testen benutzen kann.

Tolle Idee.  Im Hinblick auf den kommenden TIGER- und AND-Import wäre es
vielleicht gut, entities schnell einzuführen, da sie ja kaum etwas verändern;
und ich stelle es mir grausig vor, Abbiegeverbote, Hausnummern, etc. im
Nachhinein einzufügen.

Ad Abbiegeverbote:  IMHO sollten 'from' und 'to' nicht auf Wege zeigen,
sondern auf Nodes.


          Maierstraße

               C
	       |
	       |
	       |
	       |
     D---------E-----------B    Müllerstraße
	       | /->
	       | | 
	       |
	       |
	       *
	       A

<entity id="...">
  <tag k="type" v="turn_restriction"/>
  <member role="at" type="node" id="[E]"/>
  <member role="from" type="way" id="[Maierstraße]"/>
  <member role="to" type="way" id="[Müllerstraße]"/>
</entity>

Wenn nur Wege referenziert werden, kann man nicht wissen, ob C->E->B oder
A->E->D oder C->E->D oder A->E->B verboten sind.

Außerdem glaube ich, dass ich einen (oder gleich zwei) Bugs gefunden habe:
Der Server gibt bei einem PUT auf /osm/0.5/entities/3 immer HTTP 500 zurück.
Siehe Zeile 63 und 96 in api/app/controllers/entity_controller.rb:

            entity.segs = new_entity.segs
[...]
          entity.segs = []

Müsste das nicht entity.members heißen?

  Gabriel.





Mehr Informationen über die Mailingliste Talk-de