Meshviewer v11.0.0

Bei den Optionen ist mit aufgefallen, dass geo.option.style irgendwie die Optionen von L.circleMarker überschreibt.
Beim Tooltip hatte ich ziemliche Probleme dort eine HTML-Formatierung hineinzubekommen und habe es im Endeffekt erstmal gelassen.
Als kleine Unschönheit kommt außerdem noch hinzu, dass die eingefügte Daten (Marker, Polygone) auf den Ebenen wandern … erst sind sie ganz oben und rutschen dann mit den Nodedaten-Updates nach unten.

Kein Stress … ich hatte nur gerade Zeit und wollte das neue Feature mal ausprobieren.

Ich nutzte 1-2 mal Tooltips - schau dir am besten den Code an.

hier noch was - hab die Farbe anhand der Temperatur eingefärbt

geo: [
      {
        json: function () {
          var linkScale = require('d3-interpolate').interpolateHslLong('darkblue', 'darkred');

          return require('helper').getJSON('http://localhost:3000/test.json').then(function (result) {

            result.features.forEach(function (item) {
              var temp = ((item.properties.temperature ? item.properties.temperature.toString() : 0) + 20) / 55;
              item.color = linkScale(temp);
            });

            return result.features ? result.features : false;
          }, function () {
            return false;
          });
        },

        option: {
          pointToLayer: function (feature, latlng) {
            return L.circleMarker(latlng, {
              radius: 8,
              fillColor: feature.color,
              color: '#000',
              weight: 1,
              opacity: 1,
              fillOpacity: 0.8
            }).bindTooltip(feature.properties.temperature ? 'Temperatur: ' + feature.properties.temperature.toString() + 'C' : '');
          },
          pane: 'markerPane'
        }
      }
    ]

GitHub - d3/d3-interpolate: Interpolate numbers, colors, strings, arrays, objects, whatever! - Info zur Farbe

EDIT:

Sowas könnte via Pane klappen - hab keines nodes daher:
Hier gibt es verschiedene (vererbt von Layer Option):
https://leafletjs.com/reference-1.3.0.html#map-overlaypane

Breaking commit ist jetzt durch - Es benötigt einen aktuellen yanic der domain statt site zurück gibt. Site wurde jetzt nach X Diskussionen ganz weggelassen. v11 ist näher (hab aktuell viel anderes zu tun).

@anoymouserver so eingebaut und euer JSON mit als example aufgenommen
https://doc.meshviewer.org/examples/geo-json.html

@all - wenn es noch Ideen oder Probleme gibt - jetzt letzte Chance :slight_smile:

1 „Gefällt mir“

https://github.com/FreifunkBremen/yanic/issues/149

laut @genofire bräuchte es dazu eine Änderung am meshviewer, ich zitiere:

sobald im meshviewer NaN für Werte < 0 existiert

Äh, what? Unsere FW wirft den site_code als gluon_site_code raus, domain als site_code und domain_code, damit alte Tools happy sind:

	struct json_object *system = json_object_new_object();
	if (gluonutil_has_domains()) {
            json_object_object_add(system, "gluon_site_code", get_site_code());
            json_object_object_add(system, "site_code", get_domain_code());
            json_object_object_add(system, "domain_code", get_domain_code());
        } else {
 	    json_object_object_add(system, "site_code", get_site_code());
        }

site ganz unter den Tisch fallen zu lassen ist bäh, IMO :frowning:

1 „Gefällt mir“

@wusel Also mein Standpunkt war das es nie 2 verschiedene geben wird. Entweder eine oder andere bzw. beide als ein String. Soweit ich es in Erinnerung hab wird yanic das ummappen, wenn es noch kein doamin_code gibt. Rest kannst via Translation anpassen.

@rotanid also NaN ist schlecht usw. da sorting dann nicht mehr klappt, Farbberechnung der Linien usw. Würde das ganze mit 0 gleich setzten, also es besteht keine Verbindung/keine Info - Farbe ist dann rot.

Hmpft. Also doch wieder das alte fork&patch-Spiel. Naja, man gewöhnt sich dran.

@wusel Du kannst ja jederzeit eine ältere Version nutzten oder Naming ändern. Dazu brauchst kein großen fork. Das ist eine json Datei. Es ist logisch das man keine 2 Sachen Mitschleppen will bis irgendwann (sehr unterschiedlich die Pflege und Updatefreudigkeit). Letzte Lösung hat im IRC niemand gegen gesprochen, sondern immer dafür ausgesprochen.
Kannst es ja auch bei Domain belassen wenn es der site_code ist. Viele werden die Segmentierung nicht verstehen was der Wert bedeutet.
Kannst auch mit den anderen Reden ob man Statt Domain Segment schreibt und dann ist es egal ob da gerade Domain oder Site verwendet wird.

Das ist der übliche Weg: einen passablen Status Quo hinzustellen und das sollte dann 2-3 Jahre auch tun. Soviel JS kriege ich wohl hin, daß statt xxxy zzzx als Variable/Wert genommen wird: paßt schon. :wink:

Ehrlichgesagt hat mich das auch so ein bisschen gestört und ich hatte daher angeboten die config etwas zu externalisieren, d.h. dass sie nicht mittels gulp ins komprimierte js file mit reingeschrieben wird.
Dadurch ließe sich erzielen, dass man in einem ansonsten komplett „sauberen“ (d.h. git status liefert keine diffs) git checkout von meshviewer seine eigenen config daten anwenden könnte.

Ich hatte aber vorab im IRC gefragt ob diese Änderung eine chance darauf hätte upstream zu gelangen. Dies wurde verneint und daher habe ich von einer Implementierung abgesehen. Zumal ich dem @xaver und @genofire da nicht unbedingt dinge auferlegen will, die sie nicht selbst maintainen können oder wollen. Ich bin mehr als froh und dankbar, dass sich da welche gefunden haben, die dieses fundamental wichtige Projekt für unsere Freifunkgruppe vorantreiben.

Insofern habe ich mich auf Änderungen beschränkt, die ich völlig uneigennützig gemacht habe, damit mein eigener Knoten richtig auf der Karte dargestellt werden kann :wink:

2 „Gefällt mir“

Naja wie schon geschrieben. Ändern werden wir nichts. Git soll eine funktionierende config haben. Nächste beschwert sich das Repo nicht ohne Anpassung baut oder warum nirgends steht das sich die config geändert hat.
Genauso das 2-3 Jahre laufen soll, dann nimm anderes Release wie v10. Plane nicht für Features mehrere Versionen maintainen. Solang das heute baut passt es und wenn man dazu yanic updaten muss ist es auch OK.

Release v11.0.0 :tada:

Changelog via git-extras (Removed minor dependeny updates)

  • [TASK] Use Promises for GeoJSON
  • [TASK] Update packages & add SHA integrity
  • [TASK] Replace site with domain
  • [TASK] Libary updates gulp4
  • [TASK] Prevent XSS in tooltip
  • [TASK] Remove unnecessary moment
  • [TASK] Remove obsolete windows, rename macosx to osx
  • [TASK] Remove bithound
  • [TASK] Remove localStorage
  • [TASK] Add dynamic title to offline html and multiple metatags
  • [TASK] Add optional fullscreen mode
  • [TASK] Add GeoJSON support
  • [TASK] Improve night colors
  • [!!!][TASK] Indexable urls
  • [BUGFIX] URL router can fail at high load
  • [TASK] Update github issue templates
  • [TASK] Add nodejs 10 and remove 9 from travis
  • [TASK] Move to v8 promies polyfill & eslint5
  • [TASK] Add posibility for links DSGVO und natürlich auch andere
  • [TASK] Add OpenGraph, twitter card & Microdata
  • [TASK] Add simple offline service worker
  • [TASK] Add source/target address to link variables
  • [BUGFIX] Bar width max 100%
  • [BUGFIX] Allow negative coordinates
  • [BUGFIX] Correct filled loadavg bar with nproc > 1
  • [TASK] Show rectangle gateway in forcegraph
  • [TASK] Show offline nodes in forcegraph
  • [TASK] Upgrade to leaflet 1.3
  • [TASk] Upgrade to navigo 7
  • Multiple minor libary updates like d3js

Stats via git-extras

 active   : 272 days
 commits  : 47
 authors  : 
    42  Xaver Maierhofer  89.4%
     4  Geno              8.5%
     1  Felix Kaechele    2.1%

Doku update

Paar neue Sachen wie GeoJSON info und @rubo77 hat einiges am Text verbessert

3 „Gefällt mir“

funktionieren die bidirektionalen TQ-Werte inzwischen korrekt mit diesem Release?
Es wurde ja explizit gefragt ob noch was offen ist, da wäre es ja schön wenn das angesprochene dann auch gelöst wird :slight_smile:

Also der code im meshviewer passt. Meshviewer release ist ja kein yanic release. Yanic uebernimmt glaube bei nicht vorhanden wert aktuell den anderen anstatt 0 oder so