Skip to content

Sources for generating data for displaying our map of members on luki.org using OpenStreetMap

License

Notifications You must be signed in to change notification settings

luki-ev/membermap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LUKi Member Map

Dieses Projekt enthält Skripte zum Erstellen von KML-Dateien für Karten zur Darstellung der Mitglieder von LUKi - Linux User im Bereich der Kirchen e.V. Hierbei gibt es zwei Varianten:

  • Öffentlich: Anzahl der Mitglieder an einem Ort wird angezeigt. Mitglieder mit Ja in der Spalte Onlinekarte Öffentlich werden berücksichtigt.
  • Intern: Mit Vor- und Nachnamen. Mitglieder mit Ja in Spalte Onlinekarte Intern werden berücksichtigt.

Zum Einsatz kommen die beiden Skripte extract-data.py und csv2kml.py. Ersteres extrahiert die nötigen Daten aus der ODS-Mitgliederliste und gibt sie als CSV auf STDOUT aus. Dieses CSV dient als Eingabe für csv2kml.py, welches für die PLZs mit dem zugehörigen Ländercode Geo-Lookups durchführt und eine KML-Datei auf STDOUT ausgibt. Damit bei erneuter Ausführung nicht die gleichen Geo-Lookups durchgeführt werden müssen, werden die Koordinaten in der Datei geolookup-cache.csv im Arbeitsverzeichnis gespeichert.

Nutzung

Alle Abhängigkeiten sind im Pipfile eingetragen. Zur Installation der Abhängigkeiten empfiehlt sich pipenv.

$ pipenv install
$ pipenv shell

Anschließend können die KML-Dateien wie folgt erstellt werden: Öffentlich:

$ ./extract-data.py --public Mitglieder.ods | ./csv2kml.py - >luki_public.kml

Intern:

$ ./extract-data.py --internal Mitglieder.ods | ./csv2kml.py - >luki_internal.kml

csv2kml.py erwartet als Eingabe eine oder mehrere CSV-Dateien mit den Feldern country_code, zip, name, und style. Weitere Felder werden ignoriert. country_code ist ein zweistelliger Ländercode nach ISO-3166-1. Für style kann mitglied oder treffen verwendet werden. Wird für name der Wert Mitglied verwendet, erscheint bei mehrfachem Auftreten an einem Ort nicht mehrfach Mitglied, sondern n Mitglieder, wobei n die Anzahl ist.

Als Datei kann - angegeben werden, um von STDIN zu lesen. Sind beispielsweise die LUKi-Treffen in der Datei Treffen.csv und sollen mit den Mitgliedern kombiniert werden, kann folgendes Kommando verwendet werden:

$ ./extract-data.py --public Mitglieder.ods | ./csv2kml.py - Treffen.csv >luki_public.kml

Kommt es dabei zu einer Überschneidung (Mitglied und Treffen haben gleiche PLZ), wird das Treffen leicht nach Südwesten verschoben (Höhen- und Breitengrad werden um jeweils 0,01 verringert).

About

Sources for generating data for displaying our map of members on luki.org using OpenStreetMap

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published