Das von @CHRlS genannte Projekt Panoptikum wird am Ende hoffentlich mal eine Dokumentation über eine Sammlung von Softwarekomponenten, mit denen man ein (Meta-)Community Freifunknetz beobachten kann. Alles, was es an Softwarekomponenten noch nicht gibt, soll nebenher entstehen und die Doku liefert dann entsprechend die Anforderungen an die Software.
Hier mal meine Idee zur Lösung dieses Problems (ein heute frisch entstandener erster Teil für die Doku). Ich hab dabei bewusst mal eine Alternative zum „Prefix“-Ansatz formuliert, der IMHO etwas besser passt:
Als Community wird ein Zusammenschluss lokaler Freifunker betrachtet. Jede Community pflegt Metadaten gemäß der Freifunk-API. Ein Pflichtfeld für eine Community in diesen Metadaten ist location
mit Informationen über den Ort, in dem eine Community aktiv ist. Enthält dieses Feld einen Eintrag in Form eines GeoJSON-Feature Objektes, so lässt folgendes Verhalten spezifizieren:
Feature: Filter für einzelne Communities
Als Mitglied einer Community möchte ich in einer Kartenansicht des Netzkwerks, die von mehreren Communities geteilt wird, möglichst schnell einen Überblick über alle Knoten in meiner Umgebung bekommen.
Die Community als ganzes sollte sich dafür auf einen bestimmten Ausschnitt aus der Karte einigen, innerhalb dessen alle Knoten als zur Community gehörig interpretiert werden. Alle Knoten, die nicht in diesen Bereich fallen, sollen herausgefiltern und nicht angezeigt werden. Dies erhöht die Performance aufgrund der verminderten Datenmenge und hilft eventuelle „Ausreißer“ (Knoten mit falsch eingetragenen Koordinaten) aus der Ansicht zu eliminieren.
Klingt das soweit sinnvoll? Mir ist bewusst, dass die derzeitige Fassung der Freifunk-API das so noch nicht hergibt, aber ich würde mich dann mal hinsetzen und die Spezifikation entsprechend erweitern.
Was ich technisch im Kopf habe ist folgendes:
{
…
location: {
"type": "Feature",
"bbox": [[7.6136, 51.4040], [7.3253, 51.3038]], <- Input für einen Community-Filter, wie oben beschrieben
"geometry": {
"type": "Point",
"coordinates": [7.4648, 51.3554]
},
"properties": {
… alles, was derzeit im location-Feld des API-File auftauchen kann …
}
…
}
Wenn eine Community sich auf einen bbox-Eintrag einigt, kann man einfach alle Knoten rauswerfen, die nicht in diesem Bereich liegen. Klar gibt es dann Überschneidungen zwischen benachbarten Communities, aber zumindest in der Kartenansicht ist das ja eventuell sogar wünschenswert. Um solche Randfälle zu dokumentieren würde ich dann das Feature um die entsprechenden Szenarien erweitern. Bisher werden dort nur Zielträger genannt und der Mehrwert, den dieses Feature bieten soll.
Comments?