Hood als Polygon: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „{{Vorlage:Menü: Hood}} <div style="padding:1em 1em 0.5em 1em;background-color:#ffb400;"><b>in Arbeit...</b></div> File:Polygon vertices.JPG|mini|300px|Hoo…“) |
SebaBe (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
(47 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Vorlage:Menü: Hood}} | {{Vorlage:Menü: Hood}} | ||
[[File:Polygon vertices.JPG|mini|300px|Hood als Polygon]] | [[File:Polygon vertices.JPG|mini|300px|Hood als Polygon]] | ||
Hoods | == Historie == | ||
Bisher werden die [[Hood|Hoods]] für [[KeyXchange|KeyXchange v1 und v2]] nach dem [[wikipedia:de:Voronoi-Interpolation|Voronoi-Algorithmus]] gebildet und als [[wikipedia:de:Voronoi-Diagramm|Voronoi-Diagramm]] auf der [https://monitoring.freifunk-franken.de/map Monitoring-Karte] dargestellt. Mit dem Voronoi-Algorithmus ist es aber nicht möglich, ein Gebiet exakt abzubilden. Daher wurde der keyxchange um die Polygon-Hood erweitert welcher "über" den Voronoi-Hoods liegt. | |||
== | == Hood als Polygon == | ||
[https://monitoring.freifunk-franken.de/map?mapcenter=49.46260,10.99418,14&source=1&layers=1,1,1,0,0,1,0 Beispiel: Fürth] | |||
Hoods nach nach selbst definierten Hood-Grenzen zu bilden, hat mehrere Vorteile. | |||
Hoods nach | |||
; Vorteile | ; Vorteile | ||
* | * Es können beliebig genaue Gebiete abgesteckt werden | ||
* | * Es können beliebig kleine bis grosse Gebiete abgesteckt werden | ||
; Aber | ; Aber | ||
* | * Meshen über Hoods hinweg ist weiterhin unmöglich <br> Bessere Alternative: [https://wiki.freifunk-franken.de/w/Dezentrale_Hood Dezentrale Hood] | ||
== Was ist ein Polygon? == | |||
[[Datei:Hood Schnaittachtal Polygon 11-2018.jpg|miniatur|Polygon "Schnaittachtal"]] | |||
Jede neue Hood wird als Polygon definiert. Also eine Fläche | Jede neue Hood wird als Polygon definiert. Also eine Fläche mit Grenzpunkten und Geraden dazwischen. Die einfachste Hood ist ein Dreieck. Die Hood kann sein: Rechteck, gleichseitiges Vieleck, Stern, oder ein Polygon mit beliebig vielen Ecken und Kanten. | ||
Beschrieben wird das Polygon durch die [[wikipedia:de:World Geodetic System 1984|Koordinaten]] | Beschrieben wird das Polygon durch die [[wikipedia:de:World Geodetic System 1984|Koordinaten der Eckpunkte]], in der Reihenfoge der aneinander gezeichneten Kanten. Diese Koordinaten werden im keyxchange gespeichert, der die Berechnung übernimmt und ein API z.b. für das Monitoring bereit stellt. | ||
Damit kann die ganze Welt abgebildet werden: <br> Alles was nicht als Polygon definiert ist, also das "Drumherum" oder das "Dazwischen", | Damit kann theoretisch die ganze Welt abgebildet werden: <br> Alles was nicht als Polygon definiert ist, also das "Drumherum" oder das "Dazwischen", landet in der daunterliegenden Voronoi-Hood. | ||
== So gehts == | == So gehts == | ||
* Zeichne ein Polygon um Dein Gebiet | * Zeichne ein Polygon um Dein Gebiet | ||
=== Regeln === | === Regeln === | ||
Es gelten folgende Regeln: | |||
# | # Zeichenrichtung ist egal | ||
# | # erster und letzter Punkt darf nicht identisch sein, sie werden im keyxchange automatisch verbunden (weniger fehleranfällig) | ||
# | # Alles was in keinen Polygon liegt, fällt in die darüber liegende voronoi Map | ||
# | # Polygon darf vorerst aus maximal 10 Ecken bestehen (Absprache unter keyxchange Admins, keine technische Einschränkung sondern erst mal zum Erfahrung sammeln eine Absprache, kann später u.U. erhöht werden) | ||
# | # verschiedene Polygone dürfen sich nicht überschneiden oder ein Polygon im anderen Polygon liegen. Abhängigkeiten zu voronoi bestehen nicht (voronoi dürfen überschnitten werden, es dürfen mehrere Polygone in einem voronoi liegen o.ä.) | ||
# Polygone dürfen sich nicht in sich selbst schneiden | |||
== Polygon Zeichen-Tool == | |||
Zum Zeichnen der Polygone braucht man ein Werkzeug. Dieses Werkzeug ist sowohl in Leaflet, als auch in OpenLayers bereits enthalten. Das Ergebnis bekommt einen passenden Hood-Namen (z.B. den Namen der zentralen Ortschaft) und wird als GeoJSON gespeichert. | |||
=== Online mit GeoJSON.io === | |||
Von GeoJSON gibt es das Online-Tool [http://geojson.io/#map=10/49.4860/11.0454 GeoJSON.io]. Damit kann man intuitiv Polygone zeichnen und als GeoJSON speichern. | |||
=== Offline mit JOSM === | |||
[[Datei:JOSM - Hood Schnaittachtal.png|miniatur|JOSM als Editor]] | |||
JOSM, der Java-Editor für OSM, kann Polygone als GeoJSON speichern. | |||
[https://josm.openstreetmap.de/wiki/De%3AWikiStart Installiere JOSM.] | |||
# Lade über '''Menü "Hintergrundbild"''' den Hintergrund '''"OpenStreetMap Carto"'''. | |||
# Zoome zu dem Bereich, wo Du das Polygon zeichenen willst. | |||
# Öffne über '''"Menü > Neue Ebene"''' eine neue leere Zeichenebene. | |||
# Wähle in der linken Leiste das '''Zeichenwerkzeug "Punkte setzen"''' (3. Icon von oben) <br> und zeichne durch setzen von Punkten das '''Poplygon als geschlossene Linie'''. | |||
# Mit dem '''Werkzeug "Objekte auswählen"''' (1. Icon von oben) kannst Du: <br> die Punkte anschliessend jederzeit verschieben, <br> durch ziehen an den Kreuzen zwischen zwei Punkten neue Punkte einfügen, <br> mit "Entf" Punkte löschen. | |||
# Speichere das Polygon über '''Menü "Datei > Speichern unter"''' als GeoJSON. <br> Gib der Datei den Namen der Hood, und wähle als '''Dateityp "GeoJSON Dateien"'''. | |||
== Keyxchange == | |||
Neuer Ablauf im keychange: | |||
=== alt === | |||
# Router sendet Koordinaten an den keyxchange | |||
# Keyxchange prüft über voronoi welche Koordinaten am nächsten liegen und gibt dazu die Hoodfile aus | |||
# Router konfiguriert sich nach der Hoodfile | |||
=== neu === | |||
# Router sendet Koordinaten an den keyxchange | |||
... | # keyxchange prüft der Reihe nach durch in welchen Polygon der Router liegt, wenn er eins trifft gibt er direkt von dem Polygon die Hoodfile aus und wir gehen direkt zu Punkt 4), trifft kein gespeichertes Polygon in der Datenbank zu geht es weiter mit... | ||
# ...Keyxchange prüft über voronoi welche Koordinaten am nähesten liegen und gibt dazu die Hoodfile aus | |||
# Router konfiguriert sich nach der Hoodfile | |||
=== | === Cache === | ||
Ein Cache, siehe [[Hood_als_Polygon/Ideen#Idee_mit_Cache_(Michael)|Hood_als_Polygon/Ideen#Idee_mit_Cache]], wurde zum aktuellen Zeitpunkt nicht implementiert. Wir wollen erstmal Erfahrung sammeln wie sich das ganze verhält und wie das System angenommen wird. | |||
[[Kategorie:Hood]] | |||
[[Kategorie:Polygon]] |
Aktuelle Version vom 26. Juli 2019, 10:27 Uhr
Hood
|
Historie
Bisher werden die Hoods für KeyXchange v1 und v2 nach dem Voronoi-Algorithmus gebildet und als Voronoi-Diagramm auf der Monitoring-Karte dargestellt. Mit dem Voronoi-Algorithmus ist es aber nicht möglich, ein Gebiet exakt abzubilden. Daher wurde der keyxchange um die Polygon-Hood erweitert welcher "über" den Voronoi-Hoods liegt.
Hood als Polygon
Hoods nach nach selbst definierten Hood-Grenzen zu bilden, hat mehrere Vorteile.
- Vorteile
- Es können beliebig genaue Gebiete abgesteckt werden
- Es können beliebig kleine bis grosse Gebiete abgesteckt werden
- Aber
- Meshen über Hoods hinweg ist weiterhin unmöglich
Bessere Alternative: Dezentrale Hood
Was ist ein Polygon?
Jede neue Hood wird als Polygon definiert. Also eine Fläche mit Grenzpunkten und Geraden dazwischen. Die einfachste Hood ist ein Dreieck. Die Hood kann sein: Rechteck, gleichseitiges Vieleck, Stern, oder ein Polygon mit beliebig vielen Ecken und Kanten.
Beschrieben wird das Polygon durch die Koordinaten der Eckpunkte, in der Reihenfoge der aneinander gezeichneten Kanten. Diese Koordinaten werden im keyxchange gespeichert, der die Berechnung übernimmt und ein API z.b. für das Monitoring bereit stellt.
Damit kann theoretisch die ganze Welt abgebildet werden:
Alles was nicht als Polygon definiert ist, also das "Drumherum" oder das "Dazwischen", landet in der daunterliegenden Voronoi-Hood.
So gehts
- Zeichne ein Polygon um Dein Gebiet
Regeln
Es gelten folgende Regeln:
- Zeichenrichtung ist egal
- erster und letzter Punkt darf nicht identisch sein, sie werden im keyxchange automatisch verbunden (weniger fehleranfällig)
- Alles was in keinen Polygon liegt, fällt in die darüber liegende voronoi Map
- Polygon darf vorerst aus maximal 10 Ecken bestehen (Absprache unter keyxchange Admins, keine technische Einschränkung sondern erst mal zum Erfahrung sammeln eine Absprache, kann später u.U. erhöht werden)
- verschiedene Polygone dürfen sich nicht überschneiden oder ein Polygon im anderen Polygon liegen. Abhängigkeiten zu voronoi bestehen nicht (voronoi dürfen überschnitten werden, es dürfen mehrere Polygone in einem voronoi liegen o.ä.)
- Polygone dürfen sich nicht in sich selbst schneiden
Polygon Zeichen-Tool
Zum Zeichnen der Polygone braucht man ein Werkzeug. Dieses Werkzeug ist sowohl in Leaflet, als auch in OpenLayers bereits enthalten. Das Ergebnis bekommt einen passenden Hood-Namen (z.B. den Namen der zentralen Ortschaft) und wird als GeoJSON gespeichert.
Online mit GeoJSON.io
Von GeoJSON gibt es das Online-Tool GeoJSON.io. Damit kann man intuitiv Polygone zeichnen und als GeoJSON speichern.
Offline mit JOSM
JOSM, der Java-Editor für OSM, kann Polygone als GeoJSON speichern.
- Lade über Menü "Hintergrundbild" den Hintergrund "OpenStreetMap Carto".
- Zoome zu dem Bereich, wo Du das Polygon zeichenen willst.
- Öffne über "Menü > Neue Ebene" eine neue leere Zeichenebene.
- Wähle in der linken Leiste das Zeichenwerkzeug "Punkte setzen" (3. Icon von oben)
und zeichne durch setzen von Punkten das Poplygon als geschlossene Linie. - Mit dem Werkzeug "Objekte auswählen" (1. Icon von oben) kannst Du:
die Punkte anschliessend jederzeit verschieben,
durch ziehen an den Kreuzen zwischen zwei Punkten neue Punkte einfügen,
mit "Entf" Punkte löschen. - Speichere das Polygon über Menü "Datei > Speichern unter" als GeoJSON.
Gib der Datei den Namen der Hood, und wähle als Dateityp "GeoJSON Dateien".
Keyxchange
Neuer Ablauf im keychange:
alt
- Router sendet Koordinaten an den keyxchange
- Keyxchange prüft über voronoi welche Koordinaten am nächsten liegen und gibt dazu die Hoodfile aus
- Router konfiguriert sich nach der Hoodfile
neu
- Router sendet Koordinaten an den keyxchange
- keyxchange prüft der Reihe nach durch in welchen Polygon der Router liegt, wenn er eins trifft gibt er direkt von dem Polygon die Hoodfile aus und wir gehen direkt zu Punkt 4), trifft kein gespeichertes Polygon in der Datenbank zu geht es weiter mit...
- ...Keyxchange prüft über voronoi welche Koordinaten am nähesten liegen und gibt dazu die Hoodfile aus
- Router konfiguriert sich nach der Hoodfile
Cache
Ein Cache, siehe Hood_als_Polygon/Ideen#Idee_mit_Cache, wurde zum aktuellen Zeitpunkt nicht implementiert. Wir wollen erstmal Erfahrung sammeln wie sich das ganze verhält und wie das System angenommen wird.