我正在尝试使用Google Visualization App Geomap制作脚本。在Google Developers页面上的示例代码中,他们使用的是硬编码表。我想要做的是让代码使用连接到Google表单的Google电子表格中的数据。更具体地说,我想使用以下电子表格中的电子表格标签«countries»的数据:https://docs.google.com/spreadsheets/d/1l77TXctG6mgva1ggs3iR3eBNx949hzn9SiVjki1v59I/edit?usp=sharing。
不知怎的,这不起作用,我收到下面列出的错误消息。
如何以正确的格式从电子表格中收集数据?我试图使用此过程从电子表格中收集数据:https://google-developers.appspot.com/chart/interactive/docs/spreadsheets。
网页上的错误消息:
"Data table is not defined"
Safari控制台中的错误消息:
TypeError: undefined is not an object (evaluating 'new google.visualization.Query’)
drawChart help:113
(anonymous function) help:117
我的代码
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["geomap"]});
google.setOnLoadCallback(drawMap);
function drawMap() {
var opts = {sendMethod: 'auto'};
// ***My code***
var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1l77TXctG6mgva1ggs3iR3eBNx949hzn9SiVjki1v59I/edit#gid=957991050', 'sheet=countries', 'headers=1');
var data = query.send(handleQueryResponse);
var options = {};
options['dataMode'] = 'regions';
var container = document.getElementById('regions_div');
var geomap = new google.visualization.GeoMap(container);
geomap.draw(data, options);
};
function handleQueryResponse(response) {
if (response.isError()) {
alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
return;
}
return response.getDataTable();
}
</script>
希望有人可以帮助我(希望)不是那么艰巨的任务。非常感谢你提前! : - )
答案 0 :(得分:1)
您可以在回调函数data
handleQueryResponse
function handleQueryResponse(response) {
if (response.isError()) {
alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
} else {
var container = document.getElementById('regions_div');
var geomap = new google.visualization.GeoMap(container);
var data = response.getDataTable();
geomap.draw(data, options);
}
}
Google提供示例here。
同时检查您获得回复的格式,并使用方法google.visualization.arrayToDataTable
格式data
格式example,如果需要,因为格式应该正确。