[Talk-de] Polygone falsch sortiert

Peter Körner osm-lists at mazdermind.de
Mo Sep 6 15:16:50 UTC 2010


Am 06.09.2010 16:22, schrieb Tom Müller:
> Hallo,
>
> und noch eine Frage zu den Stadt und Stadtteil-Polygonen.
> Ich lese die der Reihe nach ein, aber wenn ich sie dann zeichne,
> überlappen sich die Grenzen kreuz und quer. Es scheint, als stünden die
> in beliebiger Reihenfolge in den Daten.
Es gibt in OSM keine definierte Reihenfolge von Objekten, außer deren 
Erstellungsreihenfolge.

Einigen Objekten wie Brücken oder Tunnels weisen wir über den layer-Tag 
eine explizite Reihenfolge zu, dies ist aber auch nicht mehr als ein 
Not-Behelf.

> Nun zunächst: stimmt das, oder lese ich falsch ein?
> und wenn es stimmt, gibt es da bereits einen Ansatz zu wie man die Daten
> sortiert bekommt?

Ich vermute, dass du den Maleralgorithmus [1] (painter's algorithm) 
implementiert hast. Damit du die Polygone einfach übereinander zeichnen 
kannst musst du sie, wie du bereits festgestellt hast, anhand eines 
Kriteriums vor-sortieren. Dafür würde sich bei boundary=administrative 
das admin_level eignen.

Zuerst werden grenzen mit admin_level=2 gezeichnet (Deutsche 
Außengrenze), danach admin_level=4 (Bundesland) usw.

Dies funktioniert aber nur, so lange du nur Grenzen zeichnen willst. Für 
andere Polygone musst du dir andere Eigenschaften überlegen, nach denen 
du diese sortieren willst. Eine universelle Möglichkeit wäre z.B. eine 
Sortierung nach Flächeninhalt.

Lg, Peter



[1] <http://de.wikipedia.org/wiki/Maleralgorithmus>




Mehr Informationen über die Mailingliste Talk-de