Проблема с созданием ColumnChart из таблиц Fusion
Я пытаюсь создать столбчатую диаграмму данных из двух строк (POTENTIAL_ и TOTAL_ROOF) на основе клика (используя мой google.maps.event.addListener()).
Таким образом, в основном одна строка данных будет отображаться на графике - в зависимости от клика пользователя.
Может ли кто-нибудь помочь мне избавиться от сорняков? ....
моя таблица слияния находится здесь: https://www.google.com/fusiontables/DataSource?docid=1DGswslbC5ijqWHPJvOH1NH7vltkZIPURJun_L5I
JS функция 1:
google.load('visualization', '1', {packages: ['corechart']});
function drawVisualization() {
var queryText = encodeURIComponent("SELECT POTENTIAL_, TOTAL_ROOF, BLDG_ID FROM 1DGswslbC5ijqWHPJvOH1NH7vltkZIPURJun_L5I");
google.visualization.drawChart({
"containerId" : "visualization_div",
"dataSourceUrl" : 'https://www.google.com/fusiontables/DataSource?docid=',
"query" : "SELECT POTENTIAL_, TOTAL_ROOF FROM 1DGswslbC5ijqWHPJvOH1NH7vltkZIPURJun_L5I",
"chartType" : "ColumnChart"
})};
JS функция 2:
// Function call: Click Listener on layer using jquery
google.maps.event.addListener(layer, 'click', function(e, drawVisualization) {
$("#roof-panel-area").html(
'<p><strong>Total Roof Area (sqft)</strong>: ' + ' ' + Math.round(e.row['TOTAL_ROOF'].value) +
'<br><strong> Potential Roof Area (sqft)</strong>:' + ' ' + Math.round(e.row['POTENTIAL_'].value) +
'<br><strong> Pitched or Flat Roof (?)</strong>:'+ ' ' + e.row['PITCHED_OR'].value +
'<br><strong> # of Panels per Roof Area :</strong>' + ' ' + Math.round(e.row['NUMBER_OF_'].value) + '</p>');
});
layer.setMap(map);
HTML:
<div id="sidebar-content-area" style="padding:5px;">
<div id="intro" style="text-align: center; margin-top: 20px; display: none;">
<p><i>Buildings are symbolized according to roof size, and the possibility of increased panel placement.</i><p>
</div>
<div id="overview" style:"">
<h3>Building Overview:</h3>
<p id ="roof-panel-area"></p>
<div id = "visualization_div"></div>
</div>
2 ответа
Потрясающие. Спасибо! Это ответ:
JS функция 1:
function drawVisualization(e) {
var data = google.visualization.arrayToDataTable([
['Area', 'Potential', 'Total'],
['Building', Math.round(e.row['POTENTIAL_'].value), Math.round(e.row['TOTAL_ROOF'].value)],
]);
var options = {
title: 'Company Performance',
hAxis: {title: 'Year', titleTextStyle: {color: 'red'}}
};
var chart = new google.visualization.ColumnChart(document.getElementById('visualization_div'));
chart.draw(data, options);
};
JS функция 2:
google.maps.event.addListener(layer, 'click', function(e) {
$("#roof-panel-area").html(
'<p><strong>Total Roof Area (sqft)</strong>: ' + ' ' + Math.round(e.row['TOTAL_ROOF'].value) +
'<br><strong> Potential Roof Area (sqft)</strong>:' + ' ' + Math.round(e.row['POTENTIAL_'].value) +
'<br><strong> Pitched or Flat Roof (?)</strong>:'+ ' ' + e.row['PITCHED_OR'].value +
'<br><strong> # of Panels per Roof Area :</strong>' + ' ' + Math.round(e.row['NUMBER_OF_'].value) +
'</p>');
drawVisualization(e);
});
layer.setMap(map);
}
HTML
<div id="overview" style:"">
<h3>Building Overview:</h3>
<p id ="roof-panel-area"></p>
<div id = "visualization_div" style="align: center; width: 230px; height: 260px;"></div>
</div>
Ваш dataSourceUrl использует неверную конечную точку.
Если я использую " http://www.google.com/fusiontables/gvizdata?tq=" (вместо " https://www.google.com/fusiontables/DataSource?docid="), я по крайней мере получу диаграмму.
Информация Fusion Tables о создании диаграммы из данных FusionTables