Saubere Linien der administrativen Grenzen

Hallo,

Ich schlage mich schon seit Tagen mit einem Problem rum, das ich bisher nicht lösen konnte.

Ich brauche einen “sauberen” Satz Linien mit den administrativen Grenzen. Importiert man die ways aus der osm2pgsq Datenbank sieht man dass da immer mehrere Linien übereinander liegen.

Mit “sauber” meine ich, dass da keine doppelten Linien übereinander liegen und die Linie den niedrigsten Adminlevel als Attribut hat. Beispiel: An der Deutsch-Franz. grenze liegen mindestens die Adminlevel 2,4 und 6 übereinander jeweils auch noch doppelt für das linke und rechte Gebiet. Daraus soll nun 1 einzige Linie werden mit dem Admin Level 2.

Warum: ich möchte gerne die Grenzlinien transparent zeichnen und bei den vielen Linien übereinander überlagert sich die Transparenz unschön. Außerdem möchte ich die Linien zur Generalisierung nutzen, also vereinfachen für größere Maßstäbe. Da die Vereinfachung bei jeder übereinander liegenden Linie etwas anders ausfällt, sieht man dann die verschiedenen Linien, was auch unschön ist.

Also möchte ich die Linien säubern, so dass nur noch eine Linie übrig bleibt. Das ganze soll möglichst automatisiert laufen, also am besten in der Postgis DB. Leider habe ich dafür noch keine Lösung gefunden.

Mit kommerziellen Programmen geht das recht einfach, z.B in ArcGis mit den ET Tools (clean double lines), mit freien Programmen habe ich das aber leider noch nicht hinbekommen. Hat sich damit schon mal jemand beschäftigt ?

Hi,

Nimm doch statt der Grenzpolygone nur die Grenzways.

In der osm2pgsql-Datenbank wären das die Grenzen mit osm_id>0. Das dürfte je Grenzabschnitt nur eine Linie sein.

Ich bin mit den Linien, die in planet_roads sind, glücklich geworden.

Gruß,
ajoessen

Ich nehme ja schon die Linien aus planet_osm_roads und nicht die Polygone

das mit der osm_id > 0 wusste ich bisher nicht, klappt auch ganz gut mit den Level 2 und 4 Grenzen

Allerding sind dann bei den Leveln immer noch Linien mehrmals übereinander.

Und bei Level 6 klappt das nicht

mit

select * from planet_osm_roads where admin_level = ‘6’ and osm_id > 0

fehlen doch viele Linien gegenüber

select * from planet_osm_roads where admin_level = ‘6’

Gut, wenn die Grenzangaben in den Ways nicht ordentlich gepflegt sind, hast du da natürlich Pech.
Ich hab da bei mir in der Ecke natürlich auch ein wenig “nachgeholfen” :wink:

Eventuell müsste man die admin_level der Relationen innerhalb deiner Datenbank an die Wegelemente pappen.

Aber wieso sind in den roads noch Wege (nicht Relationen) übereinander? Hast du mal ne Weg-ID, um das in josm nachvollziehen zu können?

Gruß,
ajoessen

Hast recht … irgendwie habe ich falsch gesehen … also Level 2 und 4 bekomme ich tatsächlich so sauber hin

Aber bei Level 6 sind die Linien dann nicht vollständig bei der osm_id > 0

Edit: Sorry da war ich wieder zu schnell, die fehlenden Linien sind ja die Level 5 Grenzen der Regierungsbezirke … klappt also alles mit osm_id > 0

Danke noch mal für den Tip.