我正在使用谷歌图表API绘制区域图表。 该图表代表高度剖面,当我将鼠标移过该图表时,它会显示底层数据表的位置(lat和long)。google areachart无法访问数据表行
所以我创造了我的图表:
data = new google.visualization.DataTable(json);
chart = new google.visualization.AreaChart(document.getElementById("chart-output"));
,并绘制它:
chart.draw(data, options);
并添加处理鼠标悬停事件
当事件触发,我想要得到的来自底层数据源的行
if (event.row != null && event.column != null){
//data is the chart datasource
var o = data.D[event.row];
var sel_x = o.c[0]["coords"]["x"];
var sel_y = o.c[0]["coords"]["y"];
... //show x, y
}
问题是,去年项目首次发布时,一切正常,data.D
实际上包含了期望值。 但现在,我发现相同的属性是未定义的,行数组可以在属性data.tf
中找到。
我希望通过getter方法获得对数据源行的访问权限,但我找不到合适的。数据表方法ǵetRowProperties(rowIndex)
不提供任何内容。
我在做什么错?
感谢和问候
**编辑** 12/09
@Juvian 感谢答复年,但它是比这更复杂一些。 我的数据源是这样的:
{"cols":
[
{"id":"distance","label":"Distance","type":"number"},
{"id":"asfaltocemento","label":"Asphalt/Beton","type":"number"},
{"id":"rocciaghiaia","label":"Fels/Schotter","type":"number"},
{"id":"ghiaccio","label":"Eis","type":"number"},
{"id":"terraprato","label":"Erde/Wiese","type":"number"},
{"id":"sassolastricato","label":"Stein/Pflaster","type":"number"},
{"id":"sconosciuto","label":"Unbekannt","type":"number"}],
"rows":
[
{"c":[{"v":0,"coords": {"x":1296400.1245177952,"y":5885847.104437432,"z":1345.275458520788,"segment_no":0}},{},{"v":1345.275458520788},{},{},{},{}]},
{"c":[{"v":2.8740587294156668,"coords":{"x":1296395.9416741736,"y":5885847.412533606,"z":1345.4754191288682,"segment_no":0}},{},{"v":1345.4754191288682},{},{},{},{}]},
{"c":[{"v":17.583008965075226,"coords":{"x":1296374.532888888,"y":5885848.966197753,"z":1346.3169989102385,"segment_no":0}},{},{"v":1346.3169989102385},{},{},{},{}]},
{"c":[{"v":23.830815143830804,"coords":{"x":1296365.4205057025,"y":5885849.273363226,"z":1346.724445260275,"segment_no":0}}, {},{"v":1346.724445260275},{},{},{},{}]},
....
]}
当我从图形事件,我检索所需的值是这样的:
var o = data.tf[event.row];
var sel_x = o.c[0]["coords"]["x"];
var sel_y = o.c[0]["coords"]["y"];
我知道这不是财产使用一个很好的做法(TF ),我应该使用getValue()之类的访问器,但是使用getValue方法我无法访问'coords'对象及其子对象。
任何帮助将不胜感激