Google DataTable的getRow()方法是否已被弃用?

时间:2013-07-02 03:23:47

标签: datatable google-api google-visualization google-datatable

我试图使用getRow()方法(描述为here

但是在运行我的网页时,我得到"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));   

3 个答案:

答案 0 :(得分:3)

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

您会找到一个函数getValue(rowIndex, columnIndex)

在我的例子中,我有一个lat / lons列表,我确保有效,然后渲染。点击一个纬度/经度我想用lat / lons做点什么。向下滚动到底部以查看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);
});

答案 1 :(得分:0)

我找到了使用

的解决方法
(dataToAdd.K).map(function tmp(x) {return(x["c"])})

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

答案 2 :(得分:0)

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

dataToAdd.fg

这也提供了对内部 dataToAdd DataTable() 数组的直接访问