3

我试图使用 getRow() 方法(在此处描述)

但是在运行我的网页时,我得到了"Uncaught TypeError: Object #<U> has no method 'getRow' ".

是否已弃用此功能?如果没有,我怎样才能确保我可以使用它?

这是我的代码:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
google.load('visualization', '1',{'packages': ['table']});

然后稍后(两者datadataToAdd都是DataTable()):

data.addRow(dataToAdd.getRow(0));   
4

3 回答 3

3

如果您阅读:https ://developers.google.com/chart/interactive/docs/reference#google.visualization.arraytodatatable

你会发现一个函数getValue(rowIndex, columnIndex)

在我的示例中,我有一个纬度/经度列表,我确保其中有效,然后渲染。单击纬度/经度后,我想对经度/经度做一些事情。向下滚动到底部查看 DataTable.getValue() 的用法

var dataTable = new google.visualization.DataTable();
dataTable.addColumn('number', 'Latitude');
dataTable.addColumn('number', 'Longitude');
dataTable.addColumn('string', 'Name');

$.each(data, function(i, o) {
    var lat = parseFloat(o.lat);
    var lon = parseFloat(o.lon);
    var name = o.name;
    if(LIB.Location.isLatLonValid([lat, lon])) {
        var row = [lat, lon, name];
        dataTable.addRow(row);
    }
});

var options = {
    width : 550
    ,height : 240
    ,region: country
    ,legend: 'none'
    ,showTip : false
    ,mapType : 'normal'
};

var chart = new google.visualization.Map(document.getElementById('location_pin_chart'));
chart.draw(dataTable, options);
// handle clicking on pin
google.visualization.events.addListener(chart,'select', function(e) {
    var selection = chart.getSelection();
    var lat = dataTable.getValue(selection[0].row, 0); // HERE is where I get the value!
    var lon = dataTable.getValue(selection[0].row, 1);
    alert(lat + ", " + lon);
});
于 2014-03-18T21:38:35.073 回答
1

我找到了一种解决方法

(dataToAdd.K).map(function tmp(x) {return(x["c"])})

这为您提供了dataToAddDataTable() 中的行数组。

于 2013-07-02T06:10:15.737 回答
0

Capo的答案是正确的,这里还有一个类似的方法

dataToAdd.fg

这也可以直接访问内部dataToAddDataTable() 数组

于 2021-02-19T03:23:42.960 回答