Die touching inner rings behebe ich in dem ich einen eigenschaftslosen Weg um alle inneren Flächen als inner lege (natürlich mit den bestehenden nodes). Dann die bisherigen inner Flächen aus dem MP entfernen. Ich mache also erst mal das passende Loch in die Fläche (ein outer, ein inner) und dann zeichne ich beliebiges Zeug in das entstandene Loch ohne mich um irgentwelche MPs kümmern zu müssen.
Zum Thema Platzverschwendung: Da bin ich ganz anderer Meinung. Nehmen wir das Beispiel aus dem Wiki:

Zuerst einmal ist die Anzahl der Nodes bei beiden Verfahren gleich. Wenn zwei Wege einen node doppelt verwenden, ist die node trotzdem nur einmal in der DB (aber es gibt zwei Wege, die diese node referenzieren).
Die Anzahl der Wege sieht wie folgt aus:
Mit MPs “überall”:
20: Im Beispiel schön von 1 bis 20 durchnummeriert (wenn wir 19 und 20 als touching inner und outer akzeptieren, ansonsten sind es 4 mehr, wenn das Problem mit MPs gellst wird)
Die referenzieten nodes sind für die Wege 1 bis 20): 2 + 2 + 4 + 5 + 2 + 3 + 4 + 2 + 2 + 5 + 2 + 2 + 3 + 2 + 2 + 2 + 2 + 2 + 5 + 6 = 59
Wenn man das touching Problem mit MPs löst gibt es sogar zusätzliche Refferenzen: Weg 7: 6 statt 4, Weg 19: 6 statt 5, Weg 20: bleibt bei 5 (da jeweils die überlappenden Wege nur einmal definiert werden)
KISS (also möglichst wenige MPs):
7: Pro Fläche einen Weg (also für A , B, C, D, E, F und G). Referentzierte nodes: 9 + 5 + 4 + 5 + 7 + 6 + 5 = 41
1: boundary=administrative (statt der Teilwege 5, 6, 7 und 8). Referentzierte nodes: 8
1: highway=unclassified (statt Teilwege 9, 10 und 11). Referentzierte nodes: 7
2: highway=track (entweder 12-13-14 & 15 oder 12-13 & 14-15). Referentzierte nodes: 5 + 2 = 7
1: barrier=fence (Teilwege 16 + 17). Referentzierte nodes: 3
Total=11 also nur knapp die Hälfte!! Bei einer nur leicht auf 66 erhöhten Anzahl von node refferenzen.
Bei den Relationen sieht es ähnlich schlechter aus:
Mit MPs “überall”:
A (mit 4 outer, 2 inner)
B (mit 2 outer, 1 inner)
E (mit 4 outter, 2 inner) (+2 outer wenn touching problem behoben)
Total=3 ([Edit] +2 für F und G wenn touching problem behoben)
KISS:
A (mit 1 outer, 2 inner)
B (mit 1 outer, 1 inner)
Total=2
Wo ist da die Einsparung?
Ganz zu schweigen von dem Mehraufwand, den JEDE Applikation teiben muss, um beim Verarbeiten der Daten alle Teile zusammenzusuchen (CPU-Zeit und Speicher).
Ferner Fehleranfälligkeit und Frust bei (vor allem neuen) Mappern.
Nehmen wir nur die Boundary Relation, die es normalerweise gibt. Normal reichen 4 bis 6 Wegstücke aus um ein admin_level=8 zu beschreiben. In diesem Beispiel wird aber der way schon in 4 Teile geteilt und wenn man das auf eine komplette Grenze hochrechnet, kommt man leicht auf eine 3-stellige Anzahl von Ways dank der MP unterteilungen. Das selbe gilt für Relationen für Wanderwege, Radrouten, Strassen, etc.
Noch mal: das Agument der Ressourcenschonung kann ich - auch und gerade im weitesten Sinne (Frustation von Mappern) - nicht akzeptieren!
Grüsse
mdk