Hallo, Tobias Wendorff wrote: > Das verstehe ich nicht. Wieso kann eine Relation nicht partiell > editiert werden?
[...] > Wenn ich nun den Node 135 verschiebe, ist es doch vollkommen egal, > ob der in einer Relation ist oder nicht. Es ist doch in der > Datenbank nur ein Hinweis, dass Node 135 sich in der Relation > "test" befindet. Das stimmt, das Verschieben des Nodes aendert die Relation nicht. Aber das Hinzufuegen eines Nodes zu einer Relation aendert die ganze Relation und bedingt einen Neu-Upload. > Wenn ich einen neuen Node in eine Relation packe, sagen wir > Node 839, wieso wird dieser dann nicht einfach - wie bei Ways > auch - hinten in die Relation drangepackt? Mir scheint, dass Du stark im Potlatch-Datenmodell denkst. Potlatch stellt es dem User so dar, als ob "befindet sich in Relation xyz" eine Eigenschaft eines Nodes waere. In Wahrheit ist aber "enthaelt den Node xyz" eine Eigenschaft der Relation! (Bei Ways ist es genauso.) Das Entfernen eines Nodes aus einer Relation aendert also die Relation (und nicht den Node), waehrend das Verschieben desselben Nodes an eine andere Position den Node aendert (und nicht die Relation). Unser ganzes Datenmodell kann nicht mit differenziellen Aenderungen umgehen. Das faengt bei der History an. Wenn Du eine Relation "Bushaltestellen in Dortmund" anlegst und dieser in Potlatch Schritt für Schritt 2.500 Bushaltestellen hinzufügst, dann hat die Relation am Ende bereits 2500 Versionen in der Datenbank mit insgesamt (in allen historischen Versionen zusammen) 1+2+3+...+2500 = rund 3,1 Millionen Mitgliedern. Wenn jemand nun also die History dieser Relation abfragt, erhält er ein XML-Dokument mit gut und gerne 50 MB an Daten. (Die Erstellung der Relation in JOSM ist etwas weniger schmerzhaft, weil man i.d.R. nicht nach jedem Hinzufügen hochlaedt.) Auch ohne Betrachtung der History hat das XML-Dokument zu Deiner 2500-Node-Relation bereits rund 100 KB. Dieses Dokument muss jeder herunterladen, der sich in einem Bbox-Request einen der Bushaltestellen-Nodes einfaengt, und jeder, der eine Bushaltestelle hinzufuegen will, muss das ganze Dokument wieder hochladen. Je groesser die Relation, desto groesser auch die Gefahr, dass mehrere Leute gleichzeitig daran arbeiten und sich gegenseitig stoeren... und und und. Man koennte das alles besser machen, keine Frage; insbesondere koennte man Methoden vorsehen, mit denen man nur einen Teil eines Ways oder einer Relation von der API laden und spaeter wieder hochladen kann. Das ist aber alles nicht ganz trivial und braucht jemanden, der es - in API und Edtioren - implementiert. Vielleicht kommt es in API 0.7 ;-) Bye Frederik _______________________________________________ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de