vertical reference line in google timeline-Visualisierung
Hallo, ich bin mit google visualization api zum zeichnen einer Zeitleiste in meiner website. Es funktioniert ganz gut. Aber es ist eine kleine Sache, die mich stört. Ich möchte die Anzeige einer vertikalen Linie im Diagramm Bereich um die Darstellung der aktuellen Datum. Bitte lassen Sie mich wissen, jede Art von Lösungen.
Mein code:
<script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1','packages':['timeline']}]}"></script>
<script type="text/javascript">
google.setOnLoadCallback(drawChart);
function drawChart() {
var container = document.getElementById('example3.1');
var chart = new google.visualization.Timeline(container);
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'string', id: 'Position' });
dataTable.addColumn({ type: 'string', id: 'Name' });
dataTable.addColumn({ type: 'date', id: 'Start' });
dataTable.addColumn({ type: 'date', id: 'End' });
dataTable.addRows([
[ 'President', 'George Washington', new Date(2014, 3, 29), new Date(2014, 4, 3)],
[ 'President', 'John Adams', new Date(2014, 2, 3), new Date(2014, 3, 3)],
[ 'President', 'Thomas Jefferson', new Date(2014, 2, 3), new Date(2014, 5, 3)],
[ 'Vice President', 'John Adams', new Date(2014, 3, 20), new Date(2014, 5, 3)],
[ 'Vice President', 'Thomas Jefferson', new Date(2014, 2, 3), new Date(2014, 6, 3)],
[ 'Vice President', 'Aaron Burr', new Date(2014, 2, 3), new Date(2014, 2, 3)],
[ 'Vice President', 'George Clinton', new Date(2014, 2, 3), new Date(2014, 2, 19)],
]);
chart.draw(dataTable);
}
</script>
<div id="example3.1" style="width: 1000px; height: 200px;"></div>
Beabsichtigte Ergebnis: Grüne Linie stellt aktuelle Datum
Edit:
Wenn dies nicht möglich ist, schlagen Sie bitte jede andere API, die das erreichen können.
- Danke u an alle für Eure wertvollen inputs auch nach 2 Jahren. Dies wird helfen, eine Menge Menschen in der langfristig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie eine erste Aufgabe darstellen Aktuelles Datum:
Erstellen Sie eine Funktion mit jQuery zu machen, dieser Aufgabe mehr:
Aufruf der Funktion:
Das Ergebnis:
Quelle: Viviendo en la Era de la Web 2.0
rect[fill="#A6373C"]{ height: 100%; }
zur Berechnung der Platzierung der Datums-marker
finden Sie die begin-und end-Termine der timeline
verwenden Sie Daten-Tabelle-Methode -->
getColumnRange()
dann teilen Sie die Breite des Diagramms, indem Sie die Differenz in Millisekunden
multiplizieren Sie das Ergebnis durch die Differenz von start-Datum und-Markierung Datum
den ersten
'path'
element ist die Linie, die die Zeilenbeschriftungen und die timelinedies kann verwendet werden, um offset die Breite der Zeile Etiketten
siehe folgende arbeiten snippet...
JS:
HTML:
Ich ein video gefunden, im September 2016 zum hinzufügen der vertikalen Linie in der Zeitleiste. https://www.youtube.com/watch?v=sG9tB04aaqE&t=416s
Es auch das Beispiel im video (https://jsfiddle.net/k5se146d/1/)
Aber die rote Linie kann verschwunden sein, wenn das mouseover-Ereignis ausgelöst. Ich versuchte, fügen Sie die folgende Zeile in der Funktion. Es scheint ein hacken auf der Zeitleiste, aber ich fand kein Ergebnis auf der google. Hoffe es kann jemand helfen müssen.
Verwenden Sie eine "Anmerkung" Spalte "Rolle" auf der Domäne (Datum) Spalte. In der Diagramm-Optionen, setzen Sie die
annotation.<annotation column index>.style
option'line'
:siehe Beispiel hier: http://jsfiddle.net/asgallant/r37uf/
Ich hatte das gleiche Problem selber nicht finden konnte im web nichts (obwohl es vielleicht nicht gibt) und ich habe eine Art gelöst, die Angelegenheit durch eine überlagerung einer schwebenden div-Element in der Form einer vertikalen Linie, die ist relativ positioniert, wie folgt:
Die Breite der Zeitleiste (minus die Reihe Etikettenbreite) bezieht sich auf die Differenz zwischen den min-max-Daten auf der Karte angezeigt. Unter der Annahme, dass das heutige Datum wird irgendwo zwischen der min-max-Daten, dann das Verhältnis
(today - min date)/(max date - min date)
entspricht dem Verhältnis(current date line position)/(chart width - label width)
.Der Haken ist, dass es sei denn, man kann irgendwie einstellen das die Etikettenbreite an eine bestimmte Nummer (die Sie dann verwenden können, um die Berechnung der effektiven chart-Breite) werden Sie am Ende mit einem "verschoben" heute-Linie.
Konnte ich nichts finden, wie man die Reihe Etikettenbreite (jede Hilfe zu diesem sehr geschätzt), so meine heutige line-position ist die Ungefähre... (aber konsistent, während die label-Breite bleibt unverändert)
Hoffe, das hilft,
Nikolas
hAxis.viewWindow.min
undhAxis.viewWindow.max
. Sie scheinen nicht zu funktionieren in diesen charts.