Und es soll ja nicht so aussehen, als würde ich mir deine Arbeit unter den Nagel reißen und in (größtenteils) mein Projekt einbauen.
Hmmm - habe ich an "open source" etwas flscha verstanden?
Ich hatte in deinem Repository etwas von "Mitarbeit erwünscht" gelesen und würde mich sehr freuen, wenn du den Slider integrierst.
Was man natürlich machen könnte: Deinen Slider auf der gleichen Webseite hosten (also nicht nur im Git verwalten, sondern in den Gitlab-Pages auch zur Verfügung stellen), aus dem VM-Grundwissen darauf verlinken, und da du die Quelldaten in einem JSON-Objekt gespeichert hast, dieses auch verwenden, um daraus passende Diagramme für das VM-Grundwissen zu erzeugen.
Genau so habe ich mir das vorgestellt. Insbesondere, weil ja auch die Daten regelmäßig gepflegt werden müssen. Dazu kann man (muss nicht unbedingt ich sein) noch eine Pflegemaske bauen.
Wo die Gemeinschaft wirklich noch gefragt ist, ist Datenpflege. Am besten pro Modell einen Datensatz - gerne hier und gerne unformatiert hineingeworfen. Muss nicht vollständig sein, aber viel hilft viel!
Die Datendefinition sieht für ungeübte Augen etwas kryptisch aus, aber ich denke, man kann sie trotzdem verstehen.
Falls noch etwas fehlt (Werte oder Größen), baue ich das gerne noch ein. Wichtig ist, dass es möglichst objektiv zu beurteilen ist. Das ist natürlich bei Einsatzzwecken (Stadt, Reise, Rennsport) oder Kurvenstabilität bzw. Seitenwindempfindlichkeit schwierig, aber ich denke, die Idee dahinter ist klar.
Folgende Werte hätte ich gerne:
'Gewicht'
'Länge'
'Breite'
'Höhe'
'Bodenfreiheit' (überfahren eines Hindernisses auf ebenem Gelände)
'min. Länge Fahrer'
'max. Länge Fahrer'
'min. X-Seam'
'max. X-Seam'
'max. Schulterbreite'
'Breite zwischen Radkästen'
'max. Schuhgröße' (bei großem Fahrer)
'Diagonalmaß Fahreröffnung' (größtmögliches Maß in der Einstiegsöffnung)
'Packvolumen' (Anzahl der 1l-Packungen, die man laden kann, ohne dass sie beim Fahrbetrieb stören)
'max. Reifenbreite vorne'
'max. Reifendurchmesser hinten' (Felgenmaß + 2 x Reifen-Querdurchmesser, z.B. bei 40-622 -> 622 + (2 x 40) = 702)
'Wendekreis bei 28mm'
'Wendekreis bei 40mm'
'min. Entfaltung' (rechnerisch aus größtem Kettenblatt, kleinstem Ritzel und Antriebsradmaß)
'max. Entfaltung' (rechnerisch aus größtem Kettenblatt, kleinstem Ritzel und Antriebsradmaß)
'Wohlfühlgeschwindigkeit' (dauerhafte Reisegeschwindigkeit nach der Beschleunigung auf gutem, ebenem Asphalt)
'Lenkung'
'Vorderräder'
'Haube'
'Haube transportierbar'
'Kette' (abgedeckt hinter der ersten Umlenkrolle)
'Wartbarkeit'
'mögliche Motorposition'
'Farcharakter' (Stadt: wendig, gute Rundumsicht. Reise: läuft mit Gepäck auf langen Strecken. Rennsport: für sportliche Runden oder auf der Rennbahn. Kann für jeden Zweck anders konfiguriert sein.)
'Seitenwind-Empfindlichkeit'
'Kurvenstabilität'
'Preis ab'
'gebaut ab'
'gebaut bis'
Technisch sieht die Datendefinition so aus:
var dataDef = {
// dimensions
'weight' : { title : 'Gewicht' , type : 'range' , unit : 'kg' , step : .5 , info : 'fahrbereit ab' },
'length' : { title : 'Länge' , type : 'range' , unit : 'cm' },
'width' : { title : 'Breite' , type : 'range' , unit : 'cm' },
'height' : { title : 'Höhe' , type : 'range' , unit : 'cm' },
'groundclearance' : { title : 'Bodenfreiheit' , type : 'range' , unit : 'cm' , info : 'überfahren eines Hindernisses auf ebenem Gelände'},
'minlengthdriver' : { title : 'min. Länge Fahrer' , type : 'range' , unit : 'cm' },
'maxlengthdriver' : { title : 'max. Länge Fahrer' , type : 'range' , unit : 'cm' },
'minxseam' : { title : 'min. X-Seam' , type : 'range' , unit : 'cm' },
'maxxseam' : { title : 'max. X-Seam' , type : 'range' , unit : 'cm' },
'maxshoulderwidth' : { title : 'max. Schulterbreite' , type : 'range' , unit : 'cm' },
'maxthighwidth' : { title : 'Breite zwischen Radkästen' , type : 'range' , unit : 'cm' },
'maxshoesize' : { title : 'max. Schuhgröße' , type : 'range' , info : 'bei großem Fahrer' },
'driversopeningdiameter' : { title : 'Diagonalmaß Fahreröffnung' , type : 'range' , unit : 'cm' , info : 'größtmögliches Maß in der Einstiegsöffnung' },
'luggagecapacity' : { title : 'Packvolumen' , type : 'range' , unit : 'l' , info : 'Anzahl der 1l-Packungen, die man laden kann, ohne dass sie beim Fahrbetrieb stören' },
'maxfrontwheelwidth' : { title : 'max. Reifenbreite vorne' , type : 'range' , unit : 'mm' },
'maxrearwheeldiameter' : { title : 'max. Reifendurchmesser hinten' , type : 'range' , unit : 'mm' , info : 'Felgenmaß + 2 x Reifen-Querdurchmesser, z.B. bei 40-622 -> 622 + (2 x 40) = 702' },
'turningcicle28mm' : { title : 'Wendekreis bei 18mm' , type : 'range' , unit : 'm' , step : .1 },
'turningcicle40mm' : { title : 'Wendekreis bei 40mm' , type : 'range' , unit : 'm' , step : .1 },
'mindevelopment' : { title : 'min. Entfaltung' , type : 'range' , unit : 'cm' , info : 'rechnerisch aus größtem Kettenblatt, kleinstem Ritzel und Antriebsradmaß' },
'maxdevelopment' : { title : 'max. Entfaltung' , type : 'range' , unit : 'cm' , info : 'rechnerisch aus größtem Kettenblatt, kleinstem Ritzel und Antriebsradmaß' },
'comfortablespeed' : { title : 'Wohlfühlgeschwindigkeit' , type : 'radio' , values : { 'low' : '< 32 km/h' , 'medium' : '32-36 km/h' , 'high' : '37-43 km/h' , 'speed' : '> 43 km/h' } , info : 'dauerhafte Reisegeschwindigkeit nach der Beschleunigung auf gutem, ebenem Asphalt' },
// configuration
'steering' : { title : 'Lenkung' , type : 'checkbox' , values : { 'tiller' : 'Tiller' , 'sidestick' : 'Panzerlenkung' }},
'frontwheels' : { title : 'Vorderräder' , type : 'radio' , values : { 'open' : 'offen' , 'covered' : 'geschlossen' }},
'hood' : { title : 'Haube' , type : 'checkbox' , values : { 'removablehood' : 'abnehmbare Haube' , 'foldinghood' : 'klappbare Haube' , 'foamcover' : 'Schaumdeckel' , 'tarp' : 'Plane' }},
'hoodtransport' : { title : 'Haube transportierbar' , type : 'checkbox' , values : { 'hoodyes' : 'Haube ja' , 'hoodno' : 'Haube nein' , 'foamcoveryes' : 'Schaumdeckel ja' , 'foamcoverno' : 'Schaumdeckel nein' }},
'openchain' : { title : 'Kette' , type : 'radio' , values : { 'open' : 'offen' , 'covered' : 'verkleidet' } , info : 'hinter der ersten Umlenkrolle' },
'maintenance' : { title : 'Wartbarkeit' , type : 'checkbox' , values : { 'maintenanchole' : 'Wartungsklappe' , 'removablefront' : 'abnehmbare Front', 'removableend' : 'abnehmbares Heck' , 'openend' : 'offenes Heck' }},
'motorizable' : { title : 'mögliche Motorposition' , type : 'checkbox' , values : { 'hub' : 'Nabe' , 'bottombracket' : 'Tretlager' , 'intermediate' : 'Zwischengetriebe' }},
// driving character
'overallcharacter' : { title : 'Farcharakter' , type : 'checkbox' , values : { 'city' : 'Stadt' , 'travel' : 'Reise' , 'race' : 'Rennsport'} , 'info' : 'Stadt: wendig, gute Rundumsicht. Reise: läuft mit Gepäck auf langen Strecken. Rennsport: für sportliche Runden oder auf der Rennbahn. Kann für jeden Zweck anders konfiguriert sein.' },
'sidewindsensitivity' : { title : 'Seitenwind-Empfindlichkeit', type : 'radio' , values : { 'high' : 'hoch' , 'medium' : 'mittel' , 'low' : 'niedrig'}},
'curvestability' : { title : 'Kurvenstabilität' , type : 'radio' , values : { 'low' : 'niedrig' , 'medium' : 'mittel' , 'high' : 'hoch'}},
//
'pricefrom' : { title : 'Preis ab' , type : 'range' , unit : '€' },
'builtfrom' : { title : 'gebaut ab' , type : 'range' },
'builtuntil' : { title : 'gebaut bis' , type : 'range' },
};
"range" bekommt in der Darstellung einen Slider und kann pro VM einen Wert in der angegebenen Einheit haben, bei "radio" kann es pro VM einen der vorgegebenen Werte geben, bei "checkbox" mehrere.
Bei "builtfrom" und "builtuntil" werde ich noch einbauen, dass ein VM, dass den ersten, aber nicht den zweiten Wert hat, als "wird noch aktuell gebaut" dargestellt wird.