Wie kann ich POIs zu Gemeinden zuordnen?

Guten Tag!
Ich habe eine Frage an die werten Experten. Ich habe eine größere Liste von WGS84 Koordinaten, die ich möglichst einfach und automatisch der zugehörigen Gemeinde und dem Landkreis zuordnen möchte. Mir schwebt da etwa vor, eine Excel Liste mit diesen Koordinaten in ein Tool zu laden und diese fehlenden Informationen zu Gemeinden / Stadt in die Liste ergänzt zu bekommen. Ich habe schon länger gesucht aber leider bisher nichts gefunden. Vielen Dank für die Unterstützung.

Gemeindegrenzen besorgen, als Polygone in QGIS laden, deine Koordinaten dazu, und dann is_in-Abfrage.

Sobald diese Daten aus OSM stammen und es sich um einen substanziellen Auszug aus der OSM-Datenbank handelt (siehe Art. 1 der ODbL und die Substantial-Guideline, greift der Share-Alike auf deine POIs. Wenn du sie an Dritte weitergibst, muss das zu den Bedingungen der Open Database License geschehen (siehe Art. 4.4 der ODbL). (Interne Nutzung ist keine Weitergabe, solange du es nicht an Auftragnehmer oder Kunden weitergibst)

Wie gross? und wieoft willst du das machen?

Gruss
walter

Die gesuchte Funktion ist glaub ich auch unter dem Begriff “Batch Reverse Geocoding” bekannt.

Denn du hast ja schon die Koordinaten, und willst quasi die Adresse / Gemeinde / Landkreis dazu.

Geh mal auf https://help.openstreetmap.org und gibt dort “Batch Reverse Geocoding” oben in die Suchzeile ein.

Erfolg?

Guten Morgen!
Vielen Dank für eure Tipps und ich habe jetzt eine Lösung gefunden. Der Tipp mit dem Reverse Geocoding brachte mir den entscheidenden Hinweis. Die Abfrage erfolgt über das online Tool “Overpass Turbo”. Hier noch ein paar Anmerkungen zu euren Antworten:
@Abendstund, QGIS hab ich mir jetzt installiert und es scheint ein sehr mächtiges Tool zu sein. Leider ist es für den Einstieg und gelegentlichen Gebrauch etwas sperrig und ich habe keine entsprechenden Polygone. → Lösungsansatz verworfen
@Nakaner, ich verstehe nicht was hier zu beachten ist. Meinst du, ich muss bei jeder Analyse in der Auswertung ergänzen, dass ich Daten aus OSM benutzt habe? Wem soll das was bringen? Dem BUND oder dem Landesbund für Vogelschutz? Die Daten werden nicht öffentlich publiziert.
@wambacher, ich verstehe deine Frage so, dass du mir hier wohl einmalig ausgeholfen hättest. Die Daten sind zur statistischen Auswertung von diversen Vogelvorkommen und die Datenerhebung findet immer wieder mal statt. Ich brauche daher eine Lösung (die ich jetzt habe) die ich selbst durchführen kann. Danke für dein freundliches Angebot.
@stephan75, der Tipp war entscheidend. Nach dem Lesen von gefühlten 200 BLOGs hat es dann bei mir geklingelt.

Ich würde den QGIS-Gedanken, auch wenn es anfangs heftig erscheint, nicht aus den Augen lassen. Wenn nämlich in deiner Liste Spalten über die Vogel Art und/oder Anzahl vorhanden ist, kannst du in nullkommanix eine Deutschland Karte mit Kreisen (radius abhängig von der Anzahl, Farbe abhängig von der Art) darstellen.
Die Grenzen bis runter auf die Gemeinden bekommst du von wambachers webdienst, da wird er sich aber sicherlich noch seinen Senf ähm Link dazugeben :wink:

EDIT: du kannst auch in seiner Signatur gucken, Stichwort BoundariesMap

Oh, den weg kenne ich garnicht. Also Overpass Turbo kenne ich, klar. Aber wie man das zum reverse geocoding nutzt nicht.

Magst du kurz erklären (link reicht, wenn du nach einem anderen Tutorial vorgehst) wie du das machst?

Nein, da hast du mich nicht verstanden. An der Anzahl und Häufigkeit hätte ich ich sehen können, ob du das mit “unserem” GeoCoder Nominatim machen dürftest, einen externen GeoCoder verwenden oder gar einen eigenen Nominatim-Server aufsetzen solltest.

Mangels Infos kann ich dir leider nicht helfen.

Gruss
walter

Hallo
@gormo, sicher! Eine Hand wäscht die Andere. Der Prozess lässt sich sicherlich noch optimieren, aber für meine Zwecke ist er so völlig ausreichend.

Die Datenaufbereitung der Eingangsdaten und abschliessende Auswertung erfolgt bei mir über Excel auf das ich hier aber nicht näher eingehe. Anbei daher nur der angefragte Kernprozess für ein Beispiel von 3 WSG84 Koordinaten für “Reverse Geocoding” über Overpass Turbo

Eingangsdaten: N/E im Format hddd.ddddd
N49.48492 E11.73758
N49.49010 E11.97012
N49.25391 E12.02797

Abfrage für Overpass Turbo


// Reverse Geocoding Example
// with 3 locations

is_in(49.48492,11.73758);out meta;
is_in(49.49010,11.97012);out meta;
is_in(49.25391,12.02797);out meta;

Diese Abfrage in das Textfenster kopieren und ausführen

…warten

Die Informationen zu Landkreis finden sich dann in dem Datenfenster rechts unter:
(suchen nach string)
tag k=“admin_level” v=“8” für Gemeinden
tag k=“admin_level” v=“6” für Landkreise

und viele Infos mehr die ich aber gar nicht brauche (und nicht weiss wie ich sie abstelle)

Ich hoffe es ist verständlich und nachvollziehbar.

@wambacher, so oft erolgt das nicht, dass ich hier einen Sever(job) aufsetzen will. Die Erhebung findet meist nur zur Brutzeit statt und muss nicht tagesaktuell sein. Danke für deinen Vorschlag aber im Moment ist er wohl etwas oversized für meine Zwecke.

Mit dieser Änderung /Erweiterung erhältst Du nur noch Kreis und Gemeinde:

is_in(49.48492,11.73758) → .all;
(area.all[admin_level=6];area.all[admin_level=8]); out ;

Danke euch beiden!

Versuche doch bitte in meine Fragen keine “Aussage” hineinzuinterpretieren. Ich habe dir nichts konkretes vorgeschlagen, nur gefagt.
JETZT könnte ich das - aber das erspare ich mir.

Gruss
walter

Jetzt ist alles Überflüssige weg:

// Reverse Geocoding Example
// with 3 locations
// limited to admin_level 6 and 8
[out:csv(admin_level,“de:amtlicher_gemeindeschluessel”,name)];
is_in(49.48492,11.73758)->.all; (area.all[admin_level=6];area.all[admin_level=8]); out ;
is_in(49.49010,11.97012)->.all; (area.all[admin_level=6];area.all[admin_level=8]); out ;
is_in(49.25391,12.02797)->.all; (area.all[admin_level=6];area.all[admin_level=8]); out ;

ergibt:
admin_level de:amtlicher_gemeindeschluessel name
6 09371 Landkreis Amberg-Sulzbach
8 09371151 Sulzbach-Rosenberg
6 09371 Landkreis Amberg-Sulzbach
8 09371122 Freudenberg
6 09376 Landkreis Schwandorf
8 09376119 Burglengenfeld

Vielleicht weiß jemand, wie die ursprünglichen Koordinaten mit ausgegeben werden.

Guten Morgen!
@fx99, vielen Dank für deine sehr konstruktiven, inhaltlichen Ergänzungen! Die Abfrage wird von Tag zu Tag einfacher. Damit ist es ein Klax für mich die anfallenden Daten mit Excel schnell auszuwerten.

Guten Tag!
Weiss jemand, warum diese Abfrage nicht mehr geht?
// Reverse Geocoding Example
// with 3 locations
// limited to admin_level 6 and 8
[out:csv(admin_level,“de:amtlicher_gemeindeschluessel”,name)];
is_in(49.48492,11.73758)->.all; (area.all[admin_level=6];area.all[admin_level=8]); out ;
is_in(49.49010,11.97012)->.all; (area.all[admin_level=6];area.all[admin_level=8]); out ;
is_in(49.25391,12.02797)->.all; (area.all[admin_level=6];area.all[admin_level=8]); out ;

Ich bekomme nur noch
admin_level de:amtlicher_gemeindeschluessel name

Vielen Dank für einen Tipp.

Es handelt sich um einen Fehler in der neuen Version. Ich werde das reparieren.

Im Moment würde ich den Workaround empfehlen,

rel(pivot)

einzufügen:

[out:csv(admin_level,"de:amtlicher_gemeindeschluessel",name)];
is_in(49.49010,11.97012)->.all; (area.all[admin_level=6];area.all[admin_level=8]); rel(pivot); out ;
is_in(49.25391,12.02797)->.all; (area.all[admin_level=6];area.all[admin_level=8]); rel(pivot); out ;
is_in(49.48492,11.73758)->.all; (area.all[admin_level=6];area.all[admin_level=8]); rel(pivot); out ;

Für die Mitlesenden: der Fehler ist, dass das CSV-Format gerade keine Flächen verarbeitet.

Viele Grüße,

Roland

Prima, danke!

Übrigens: Ich hatte die Tage schon ein Ticket für out count; aufgemacht, das auch nicht mehr im CSV-Modus funktioniert. Ist aber im Grunde dasselbe Problem wie hier beschrieben.

https://github.com/drolbr/Overpass-API/issues/385

Guten Morgen!
Vielen Dank für den temporären Workaround. Damit komme ich bestimmt über die Brutzeit 2017 :slight_smile:

Guten Tag!
nach längerer Zeit habe ich heute versucht, die oben genannte Abfragen auszuführen. Auch der nachfolgend genannte Vorschlag liefert keine Ergebnisse sondern nur Fehlermeldungen. Wer kann mir bitte helfen?