Landesgrenzen finden?

Hallo,

ich habe einen laufenden Server mit Mapnik, Overpass, postgresql und Nominatim.

Ich möchte die Admingrenzen ( wenns geht alle Stufen ) aus den OSM Daten extrahieren. Ein Wenig habe ich schon geschafft nur mein Problem sind die See und Landrenzen der Länder.

Wie finde ich die Landgrenzen bis jetzt sieht Deutschland unnmöglich aus weil nur die Seegrenzen zu sehen sind.

https://nominatim.openstreetmap.org/search.php?q=germany&polygon_geojson=1&viewbox=

Oder Chile:

https://nominatim.openstreetmap.org/search.php?q=chile&polygon_geojson=1&viewbox=

Oder Kanada:

https://nominatim.openstreetmap.org/search.php?q=kanada&polygon_geojson=1&viewbox=

Gibt es vielleicht ein Script das das bewältigen kann?

Danke

Bei mir natürlich :wink:

Allerdings war das nicht mit einem Script getan. Ich clippe in PostGIS alle Admingrenzen gegen die Wasserpolygone von Jochen Topf. Dazu habe ich noch Wasserpolygone von grossen Seen verwendet, die in OSM kein natural=coastline besitzen. Der Aufwand ist teilweise wahnsinnig: Canada braucht als extremstes Beispiel ca 15 Stunden Berechnungszeit.

Nicht einfach, nicht portierbar - aber machbar.

Gruss
walter

Hallo Wambacher,

wie genau gehe ich da vor? Kann Kanada nach den 15h einfach mit den Landesgrenzen geladen werden?

Danke :slight_smile:

wie meinst du das? Downloaden oder selber berechnen?

Hallo Wambacher,

selber berechnen. wie hast du genau die Landmasse gegen die Wasserpolygone berechnet? Wird das Ergebnis in der Datenbank abgelegt.

Bietest du das Ergebnis vielleicht als Download an, zum Importieren in meine postgresql Datenbank?

Danke Dir

so


select into tGeom st_multi(st_difference(way, st_union(geom)))
                   from collected_admin_boundaries,
                        water_polygons 
                  where id = aId
                    and (ST_Touches(cab,geom) or ST_Intersects(cab,geom)) 
                  group by way;

Ja, aber nicht weltweit mit ALLEN Admin-Levels. Das sprengt meine Kapazitäten. Und (noch) nur als Shp bzw GeoJson.

siehe unten Boundaries Map.

Danke dir. Das hilft bestimmt weiter.

Ich habe mal versucht Kanada auf deiner Seite zu laden. Dauert ein wenig. Kann man den Detailgrad der Admingrenzen definieren damit die Karte nicht so viele Megabyte hat?

Und, kann das:

select into tGeom st_multi(st_difference(way, st_union(geom)))
from collected_admin_boundaries,
water_polygons
where id = aId
and (ST_Touches(cab,geom) or ST_Intersects(cab,geom))
group by way;

für den kompletten Planeten in einem Rutsch ( Tage, Wochen etc. :slight_smile: ) erledigt werden? Oder muss ich für jedes Land einzeln mit der Berechnung starten?

Danke

Noch nicht. Ich bastel da schon seit Monaten dran rum (nicht nur ;)), aber das ist ein sehr komplexes Thema:

https://spatialdbadvisor.com/oracle_spatial_tips_tricks/272/topological-vs-non-topological-simplification-of-area-geometies-in-oracle
Bild1: Ausgangslage, Bild2: einfache aber falsche Lösung, Bild3: richtige aber komplexe Lösung.

naja, kommt auf die “Tiefe” an. für al2,3,4 dürften einige Tage reichen. Planet: Wochen.

Was willst du eigentlich machen? Und für wen? Privat, Eig. Firma?, Kunde?

Also dann starte ich den Job und warte Wochen bis alles durch ist.

vielen Dank Dir Wambacher

das wars? na denn mal viel Glück.

Hallo Wachmacher,

was meinst du? ich habe noch keine Ahnung was mich nun genau erwartet und ob das die Lösung ist die ich benötige. Aber du hast mich schon einige Schritte vorran gebracht.
Danke dir nochmal dafür.