NEWS
maps mit Streckendarstellung
-
@bahnuhr traccar ist ein client auf dem handy und ein server im netzwerk (free) für geolocation
das script enthält alle meine coordinaten - und ist schnell zusammengebastelt und war nicht zur verbreitung gedacht
falls du es gerne hättest - gerne über email (dann im chat angeben)
-
alles klar
mich würde insbesondere die Punkte:
Kreis, Blitzer, Temp
interssieren.Hast PN. Danke vorab.
-
ok - die blitzer sind hier gemacht: https://forum.iobroker.net/post/512330
temperatur ist einmal ein sonoff mit messung daheim - und netatmo-crawler - adapter
das blockly ist in einem ganzen system integriert - ich schreibe alle routen in jsons um die zur abrechnung (fahrkosten) zu haben - daher nur als bild - darin wird auf eine distance von 500 meter die koordinaten in ein json gspeichert, welches dann die html datei mit den circles erzeugt
die funktion leaflet-writing schreibt ein fortlaufendes json für all dir koordinaten
die funktion leaflet-draw macht das eigentliche html file und speichert das
hier zum download - kenntwort schicke ich dir
am besten du öffnest es mit notepad++ , damit alle zeichen richtig übersetzt werden -
-
das beste, was ich bis jetzt gefunden habe, um text darzustellen - mit transparenten hintergrund
im style tag:
.my-label { @charset "utf-8"; position: absolute; width:150px; font-size:35px; background:transparent; }
einbinden im script tag:
var marker = new L.marker([50.539, 11.99], { opacity: 0.01 }); //opacity may be set to zero marker.bindTooltip('17 °C', {permanent: true, className: "my-label", offset: [0, 50] }); marker.addTo(map);
-
@liv-in-sky Mit Begeisterung lese ich grad diesen Beitrag. Könnte ich auch das Password bekommen?
-
da sind viele daten drin - habe ein paar geändert - das kennwort ist im chat
-
Hi,
ich habe heute endlich den Bosch-ebike-Adapter zum Laufen bekommen.
Danach wollte ich auf deine Erfahrungen zurückgreifen und habe dein Script und die View importiert.
Das bekomme ich leider nicht zum Laufen, ich denke, da fehlt irgend etwas.
Wie werden die Objekte/Variablen unter javascript.0 gefüllt?
Ich denke, irgend etwas fehlt mir auch in der View? -
@kanumouse
Da fehlt gar nix.
Läuft einwandfrei.Bitte alles genau anschauen und versuchen zu verstehen..
-
@bahnuhr
Ich habe mir schon den Kopf zerbrochen, komme aber leider nicht weiter.
Du hast sicherlich recht, dass ich irgend etwas nicht verstehe. -
@bahnuhr
Hast du vielleicht einen Tipp für mich?
Wenn ich das richtig verstehe, ist mir nicht klar wie die javascript.0.Geräte.Fahrrad.Touren-Variable als JSON gefüllt wird???
Ich weiß nicht, wie die Daten der Trips aus der ebike-Instanz als Ausgangsdaten für den Script verwendet werden, sehe ich offensichtlich nicht durch. -
@kanumouse sagte in maps mit Streckendarstellung:
ist mir nicht klar wie die javascript.0.Geräte.Fahrrad.Touren-Variable als JSON gefüllt wird???
Das ist nicht wichtig, bzw. bei jedem ja anders.
Du musst selber wissen wo deine lat und lon liegen.
Und diese musst du dann per script poly zuweisen.
Um danach eine html zu erzeugen.// GPS einlesen und der Variablen poly zuweisen if (trip < 10) trip = "0" + trip; // DP bei den Objekten der eingelesen werden soll: bosch-ebike.0.trips.xx.details var obj = JSON.parse(getState("bosch-ebike.0.trips." + trip + ".details").val); var end = obj.activityData.length - 1; for (var x=0; x<=end; x++) { if (obj.activityData[x].lat > 1 && obj.activityData[x].lon > 1) { poly = poly + "["+obj.activityData[x].lat+", "+obj.activityData[x].lon+"]" if (x < end) poly = poly + "," } } if (logging) log (poly); // html erzeugen und speichern in /vis.0/xxx.html var string = '<!DOCTYPE html>\n<html>\n<head>\n<title>Simple Leaflet Map</title>\n<meta charset="utf-8" />\n' string = string + '<link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css"integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ=="crossorigin=""/></head>\n' string = string + '<body>\n<div id="map" style="width: 980px; height: 530px"></div>\n<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew=="crossorigin=""></script>\n<script>\n' string = string + "var map = L.map('map').setView([" + center_gps + "], " + zoom + ");\n" string = string + "mapLink = '<a href=" + '"http://openstreetmap.org"' + ">OpenStreetMap</a>';\n" string = string + "L.tileLayer( 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {attribution: '© ' + mapLink + ' Contributors', maxZoom: 18,}).addTo(map);\n" string = string + 'var polyline = L.polyline([ \n' + poly + '\n], { color: "blue", weight: 3, opacity: .7, lineJoin: "round" } ).addTo(map);\n' string = string + '</script>\n</body>\n</html>' writeFile("vis.0", "/Routen/" + pfad + trip +".html", string, (error) => { if (logging) log('Datei "route.html" gespeichert!'); }); setState("javascript.0.Geräte.Fahrrad.Routen.Datei","/vis.0/Routen/" + pfad + trip + ".html");
-
@bahnuhr
Danke für den Hinweis.
Aber jetzt bin ich richtig verwirrt und ich glaube zu blöd dazu.
Meine lat und lon habe ich in deinem Script an meinem Standort angepasst. Aber mit dem Rest bin ich überfordert, da sich meine AKenntnisse in der Programmierung im Anfangstadium befinden. -
@bahnuhr
Zur ERgänzung, so sieht meine importierte View aus.
-
@kanumouse
Ok, ich bin jetzt raus.
Ich glaube ohne intensive Einarbeitung deinerseits wird das nix. -
@bahnuhr
Kann ich verstehen, trotzdem schade!
Ich weiß nicht so richtig, wo ich im Moment anfangen soll.
Ich glaube mein Problem ist, wie ich aus der Instanz die Touren auslese und abspeichere??? -
Ich habe hier mal ein versuch gestartet das etwas einfacher zu machen.
Du musst halt JSON können, ist aber auch nicht so schwer
https://forum.iobroker.net/topic/82214/test-iobroker-mapwidgets -
Ich habe jetzt im ersten Schritt alles hinbekommen und es funktioniert soweit. Einige kleinere Verbesserungen stehen noch an.
Nun habe ich eine dynamische Zuweisung des Kartenmittelpunktes eingefügt, die aber leider in der Anzeige nicht funktioniert.
In der html-Datei ist immer die richtige Mittelpunktzuweisung enthalten, nur angezeigt wird immer nur eine Karte mit dem erstmalig angezeigten Mittelpunkt.
Die Touren werden aber je nach Auswahl immer richtig in der Karte angezeigt. Nur man muss die Karte dann immer verschieben, da die Touren an unterschiedlichen Orten stattfanden.
Ich habe schon den Cache des Browers (Firefox) gelöscht und auch Chrome benutzt - immer dasselbe Ergebnis.
Jetzt weiß ich erst einmal nicht mehr weiter.
Hat Jemand einen Tipp für mich?
-
Also, wenn es um den neuen Adapter geht, wäre es mir recht, wenn wir die Diskussion im anderen thread weiterführen.
Hier geht es ja, um individuellem Java Skript und hat mit dem Adapter nichts zu tun.Eventuell hilft dir die seit gestern verfügbare Option fitBounds.
Ansonsten musst du mit etwas mehr Details schreiben. Am besten Widget Export plus Inhalt des Datenpunkts. Dann kann man sich besser vorstellen, was du machst. -
@kanumouse sagte in maps mit Streckendarstellung:
In der html-Datei ist immer die richtige Mittelpunktzuweisung enthalten, nur angezeigt wird immer nur eine Karte mit dem erstmalig angezeigten Mittelpunkt.
Das Widget in VIS wird aktualisiert in der Anzeige, wenn sich der DP Eintrag ändert (oder du F5 drückst). Es reicht hier nicht die html zu ändern.
Folglich:
Ändere nicht nur die html sondern auch den html Namen. Und dieser musst du neu eintragen im DP.