Aktuelle nodes.json - Wo?

Wo kann man frisch die jeweils aktuelleste nodes.json für Freifunk Rheinland erhalten? Am besten live. Also ohne eigene lokale Speicherung direkt abrufen/einbinden und verwenden.

Es gibt im Freifunk Rheinland 3 Domänen.

Ruhrgebiet
http://map.freifunk-ruhrgebiet.de/nodes.json

Rheinufer
http://ffmap.freifunk-rheinland.net/nodes.json

Möhne
http://moehne-vis.freifunk-rheinland.net/nodes.json

Welche der 3 meinst Du oder alle zusammen?
http://map.freifunk-rheinland.net/nodes.json

1 Like

In der zentralen nodes.json ist Wuppertal bereits enthalten, siehe ff-json-tools/nodes_merger.php at master · ffruhr/ff-json-tools · GitHub

Wuppertal einzeln:
http://map.freifunk-wuppertal.net/nodes.json

Genau die Links kenne ich schon. Die tun es aber nur bedingt.

Ich kann
http://ffmap.freifunk-rheinland.net/node.json

wunderbar im Browser abrufen. Tue ich das aber von unserem Webserver im Script „geomap_compiled.js“ oder von meinem lokalen Testsystem, dann erhalte ich folgenden Fehler:

XMLHttpRequest cannot load http://ffmap.freifunk-rheinland.net/nodes.json. Origin http://localhost:8383 is not allowed by Access-Control-Allow-Origin. (15:54:20:420 | error, javascript)
TypeError: ‚null‘ is not an object (evaluating ‚json.nodes‘) (15:54:20:420 | error, javascript)
at lib/geomap_compiled.js:66

Ausschnitt aus der .js Datei

var ffmapConfig = {
  // link to your main community site:
  url:       "http://www.freifunk-aachen.de",

  // visible link in the navigation:
  sitename:  "Freifunk Aachen",

  // initial gravity, friction, of the graph at pageload:
  gravity:   0.05,
  friction:  0.73,
  theta:     0.8,
  charge:    1.0,
  distance:  1.0,
  strength:  1.0,

  // path to the nodes.json
  
  // local:
 // nodes_json: "nodes.json",
  
  // live:
  nodes_json: "http://ffmap.freifunk-rheinland.net/nodes.json",

Liegt da ein Fehler vor oder ist es Absicht, dass man das nicht entfernt einbinden kann? Wie macht Ihr das?

Wie oft wird die Datei mit den Nodes bei Freifunk Rheinland.net aktualisiert?

Ehm… Kanns sein, dass hier der Schutz vor Cross-Site-Scripts zum tragen kommt, weshalb der Aufruf einer anderen Domain fehlschlägt?

Ja, sowas vermute ich auch.

Aber wie kommt man nun automagisch an diese Daten ohne wget oder Browsergedöns? Und wenn nur wget bleibt: wie oft bzw. wann sollte man die Daten dann abholen?

Mit diesem Problem hatte ich auch schon zu kämpfen, als ich die Statistiken für die Ruhrgebietsmap gebaut habe: http://map.freifunk-ruhrgebiet.de/alfred/stats.html

Google empfahl mir damals JSONP oder YQL (Yahoo Query Language) zu benutzen. JSONP sieht auf den ersten Blick einfacher aus. Habe die Sache noch nicht ausprobiert, aber hört sich erstmal so an, als könnte man hierdurch den an sich sinnvollen Schutz vor Cross-Site-Scripts austricksen: Code Inside Blog | JSONP mit jQuery am Beispiel der Stackoverflow API

Edit: Eine weitere möglichkeit scheint CORS zu sein. Dabei muss jedoch eine Einstellung auf dem jeweiligen Webserver vorgenommen werden um den HTTP-Header entsprechend anzupassen. Siehe hier: http://enable-cors.org/

Ihr meint dem Javascript ist es egal ob das eine Dateisystemoperation ist oder die live aus dem Internet geholt werden soll? Ich denke eher nicht…

Aber mal grundlegend - macht es nicht ohnehin für die Community Aachen mehr Sinn die nodes.json auf den Aaachener Raum klein zu filtern?

Domis Filterscript ruft automatisch aus dem Internet ab und legt die gefilterte nodes.json dann ins Verzeichnis des ffmap Webservers:

Ne denke ich auch nicht :smiley:

Ich wollte eher eine Lösung dafür. Filtern möchte ich auf der Karte nicht. Wenn das weiter wächst, würden wir gern die umliegenden Städte auch dort sehen wollen. Stichwort: Städteregion Aachen.

Filtern tun wir zur Zeit wohl die Tabelle (Liste) mit den Nodes nach „FFAC-“. Da macht das tatsächlich Sinn (s. Website)

Das Script sehe ich mir trotzdem mal an. Danke dafür!

Weitere Tipps? Gerne her damit!

$filter_arr ist ein Array, da kannste beliebig viele Filter für das gesamte Umland Komma getrennt rein knöpern, nur so btw.

Wenn Du wirklich die komplette nodes.json willst dann mach doch nen kleines Script in einen minütlichen cron, um die nodes.json per wget auf den lokalen ffmap Webserver zu holen?

1 Like

Genau so!
Die nodes_filter.php ereledigt das Abholen gleich mit, wenn man die nutzt.